Commit 55ff2d1e authored by Takashi Iwai's avatar Takashi Iwai

ALSA: sb: Fix PCM format bit calculation

The PCM format type in snd_pcm_format_t can't be treated as integer
implicitly since it's with __bitwise.  We have already a helper
function to get the bit index of the given type, and use it in each
place instead.

This fixes sparse warnings like:
  sound/isa/sb/sb16_main.c:61:44: warning: restricted snd_pcm_format_t degrades to integer
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 6be9a60e
...@@ -49,6 +49,9 @@ MODULE_AUTHOR("Jaroslav Kysela <perex@perex.cz>"); ...@@ -49,6 +49,9 @@ MODULE_AUTHOR("Jaroslav Kysela <perex@perex.cz>");
MODULE_DESCRIPTION("Routines for control of 16-bit SoundBlaster cards and clones"); MODULE_DESCRIPTION("Routines for control of 16-bit SoundBlaster cards and clones");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
#define runtime_format_bits(runtime) \
((unsigned int)pcm_format_to_bits((runtime)->format))
#ifdef CONFIG_SND_SB16_CSP #ifdef CONFIG_SND_SB16_CSP
static void snd_sb16_csp_playback_prepare(struct snd_sb *chip, struct snd_pcm_runtime *runtime) static void snd_sb16_csp_playback_prepare(struct snd_sb *chip, struct snd_pcm_runtime *runtime)
{ {
...@@ -58,7 +61,7 @@ static void snd_sb16_csp_playback_prepare(struct snd_sb *chip, struct snd_pcm_ru ...@@ -58,7 +61,7 @@ static void snd_sb16_csp_playback_prepare(struct snd_sb *chip, struct snd_pcm_ru
if (csp->running & SNDRV_SB_CSP_ST_LOADED) { if (csp->running & SNDRV_SB_CSP_ST_LOADED) {
/* manually loaded codec */ /* manually loaded codec */
if ((csp->mode & SNDRV_SB_CSP_MODE_DSP_WRITE) && if ((csp->mode & SNDRV_SB_CSP_MODE_DSP_WRITE) &&
((1U << runtime->format) == csp->acc_format)) { (runtime_format_bits(runtime) == csp->acc_format)) {
/* Supported runtime PCM format for playback */ /* Supported runtime PCM format for playback */
if (csp->ops.csp_use(csp) == 0) { if (csp->ops.csp_use(csp) == 0) {
/* If CSP was successfully acquired */ /* If CSP was successfully acquired */
...@@ -66,7 +69,7 @@ static void snd_sb16_csp_playback_prepare(struct snd_sb *chip, struct snd_pcm_ru ...@@ -66,7 +69,7 @@ static void snd_sb16_csp_playback_prepare(struct snd_sb *chip, struct snd_pcm_ru
} }
} else if ((csp->mode & SNDRV_SB_CSP_MODE_QSOUND) && (csp->q_enabled)) { } else if ((csp->mode & SNDRV_SB_CSP_MODE_QSOUND) && (csp->q_enabled)) {
/* QSound decoder is loaded and enabled */ /* QSound decoder is loaded and enabled */
if ((1 << runtime->format) & (SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_U8 | if (runtime_format_bits(runtime) & (SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_U8 |
SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_U16_LE)) { SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_U16_LE)) {
/* Only for simple PCM formats */ /* Only for simple PCM formats */
if (csp->ops.csp_use(csp) == 0) { if (csp->ops.csp_use(csp) == 0) {
...@@ -106,7 +109,7 @@ static void snd_sb16_csp_capture_prepare(struct snd_sb *chip, struct snd_pcm_run ...@@ -106,7 +109,7 @@ static void snd_sb16_csp_capture_prepare(struct snd_sb *chip, struct snd_pcm_run
if (csp->running & SNDRV_SB_CSP_ST_LOADED) { if (csp->running & SNDRV_SB_CSP_ST_LOADED) {
/* manually loaded codec */ /* manually loaded codec */
if ((csp->mode & SNDRV_SB_CSP_MODE_DSP_READ) && if ((csp->mode & SNDRV_SB_CSP_MODE_DSP_READ) &&
((1U << runtime->format) == csp->acc_format)) { (runtime_format_bits(runtime) == csp->acc_format)) {
/* Supported runtime PCM format for capture */ /* Supported runtime PCM format for capture */
if (csp->ops.csp_use(csp) == 0) { if (csp->ops.csp_use(csp) == 0) {
/* If CSP was successfully acquired */ /* If CSP was successfully acquired */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment