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>
This commit is contained in:
parent
cd9978f1d3
commit
599ee3291a
|
@ -92,7 +92,7 @@ static inline unsigned int snd_mask_min(const struct snd_mask *mask)
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < SNDRV_MASK_SIZE; i++) {
|
for (i = 0; i < SNDRV_MASK_SIZE; i++) {
|
||||||
if (mask->bits[i])
|
if (mask->bits[i])
|
||||||
return ffs(mask->bits[i]) - 1 + (i << 5);
|
return __ffs(mask->bits[i]) + (i << 5);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue