mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 12:28:41 +08:00
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: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
6be9a60efb
commit
55ff2d1ea5
@ -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
|
|||||||
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
|
|||||||
}
|
}
|
||||||
} 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
|
|||||||
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 */
|
||||||
|
Loading…
Reference in New Issue
Block a user