[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: Clemens Ladisch <clemens@ladisch.de>
This commit is contained in:
parent
87ef7779be
commit
d44c39acaf
1 changed files with 4 additions and 6 deletions
|
@ -1851,9 +1851,7 @@ static int snd_ymfpci_timer_start(snd_timer_t *timer)
|
||||||
unsigned int count;
|
unsigned int count;
|
||||||
|
|
||||||
chip = snd_timer_chip(timer);
|
chip = snd_timer_chip(timer);
|
||||||
count = timer->sticks - 1;
|
count = (timer->sticks << 1) - 1;
|
||||||
if (count == 0) /* minimum time is 20.8 us */
|
|
||||||
count = 1;
|
|
||||||
spin_lock_irqsave(&chip->reg_lock, flags);
|
spin_lock_irqsave(&chip->reg_lock, flags);
|
||||||
snd_ymfpci_writew(chip, YDSXGR_TIMERCOUNT, count);
|
snd_ymfpci_writew(chip, YDSXGR_TIMERCOUNT, count);
|
||||||
snd_ymfpci_writeb(chip, YDSXGR_TIMERCTRL, 0x03);
|
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)
|
unsigned long *num, unsigned long *den)
|
||||||
{
|
{
|
||||||
*num = 1;
|
*num = 1;
|
||||||
*den = 96000;
|
*den = 48000;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct _snd_timer_hardware snd_ymfpci_timer_hw = {
|
static struct _snd_timer_hardware snd_ymfpci_timer_hw = {
|
||||||
.flags = SNDRV_TIMER_HW_AUTO,
|
.flags = SNDRV_TIMER_HW_AUTO,
|
||||||
.resolution = 10417, /* 1/2fs = 10.41666...us */
|
.resolution = 20833, /* 1/fs = 20.8333...us */
|
||||||
.ticks = 65536,
|
.ticks = 0x8000,
|
||||||
.start = snd_ymfpci_timer_start,
|
.start = snd_ymfpci_timer_start,
|
||||||
.stop = snd_ymfpci_timer_stop,
|
.stop = snd_ymfpci_timer_stop,
|
||||||
.precise_resolution = snd_ymfpci_timer_precise_resolution,
|
.precise_resolution = snd_ymfpci_timer_precise_resolution,
|
||||||
|
|
Loading…
Reference in a new issue