提交 d44c39ac 编写于 作者: C Clemens Ladisch 提交者: Jaroslav Kysela

[ALSA] ymfpci: change timer resolution to 48 kHz

Modules: YMFPCI driver

We better pretend that the ymfpci timer runs at 48 kHz because the
interrupt frequency cannot be higher, and clients that would try to
use 96 kHz would run at half their desired speed.
Signed-off-by: NClemens Ladisch <clemens@ladisch.de>
上级 87ef7779
......@@ -1851,9 +1851,7 @@ static int snd_ymfpci_timer_start(snd_timer_t *timer)
unsigned int count;
chip = snd_timer_chip(timer);
count = timer->sticks - 1;
if (count == 0) /* minimum time is 20.8 us */
count = 1;
count = (timer->sticks << 1) - 1;
spin_lock_irqsave(&chip->reg_lock, flags);
snd_ymfpci_writew(chip, YDSXGR_TIMERCOUNT, count);
snd_ymfpci_writeb(chip, YDSXGR_TIMERCTRL, 0x03);
......@@ -1877,14 +1875,14 @@ static int snd_ymfpci_timer_precise_resolution(snd_timer_t *timer,
unsigned long *num, unsigned long *den)
{
*num = 1;
*den = 96000;
*den = 48000;
return 0;
}
static struct _snd_timer_hardware snd_ymfpci_timer_hw = {
.flags = SNDRV_TIMER_HW_AUTO,
.resolution = 10417, /* 1/2fs = 10.41666...us */
.ticks = 65536,
.resolution = 20833, /* 1/fs = 20.8333...us */
.ticks = 0x8000,
.start = snd_ymfpci_timer_start,
.stop = snd_ymfpci_timer_stop,
.precise_resolution = snd_ymfpci_timer_precise_resolution,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册