• K
    ALSA: fix incorrect rounding direction in snd_interval_ratnum() · 40962d7c
    Krzysztof Helt 提交于
    The direction of rounding is incorrect in the snd_interval_ratnum()
    It was detected with following parameters (sb8 driver playing
    8kHz stereo file):
     - num is always 1000000
     - requested frequency rate is from 7999 to 7999 (single frequency)
    
    The first loop calculates div_down(num, freq->min) which is 125.
    Thus, a frequency range's minimum value is 1000000 / 125 = 8000 Hz.
    The second loop calculates div_up(num, freq->max) which is 126
    The frequency range's maximum value is 1000000 / 126 = 7936 Hz.
    The range maximum is lower than the range minimum so the function
    fails due to empty result range.
    Signed-off-by: NKrzysztof Helt <krzysztof.h1@wp.pl>
    Signed-off-by: NTakashi Iwai <tiwai@suse.de>
    40962d7c
pcm_lib.c 57.0 KB