diff options
author | Lars-Peter Clausen <lars@metafoo.de> | 2014-12-29 13:41:44 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2014-12-30 10:41:55 -0500 |
commit | 599ee3291ae88700749e2910a11d1c0f0532355e (patch) | |
tree | 5ac39478682e3aa5d33d47bc871726c7d4578822 | |
parent | cd9978f1d3dbb9596a7ab9c652cb0d9b355489b5 (diff) |
ALSA: pcm: Use __ffs() instead of ffs() in snd_mask_min()
The difference between __ffs and ffs is that ffs will return a one based
index whereas __ffs will return a zero based index. Furthermore ffs will
check if the passed value is zero and return zero in that case, whereas
__ffs behavior is undefined if the passed parameter is 0.
Since we already check if the mask is 0 before calling ffs and also subtract
1 from the result __ffs is the better choice.
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r-- | include/sound/pcm_params.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/sound/pcm_params.h b/include/sound/pcm_params.h index 042049bab0b9..c99e20b0c4c9 100644 --- a/include/sound/pcm_params.h +++ b/include/sound/pcm_params.h | |||
@@ -92,7 +92,7 @@ static inline unsigned int snd_mask_min(const struct snd_mask *mask) | |||
92 | int i; | 92 | int i; |
93 | for (i = 0; i < SNDRV_MASK_SIZE; i++) { | 93 | for (i = 0; i < SNDRV_MASK_SIZE; i++) { |
94 | if (mask->bits[i]) | 94 | if (mask->bits[i]) |
95 | return ffs(mask->bits[i]) - 1 + (i << 5); | 95 | return __ffs(mask->bits[i]) + (i << 5); |
96 | } | 96 | } |
97 | return 0; | 97 | return 0; |
98 | } | 98 | } |