Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d44c39ac authored by Clemens Ladisch's avatar Clemens Ladisch Committed by Jaroslav Kysela
Browse files

[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: default avatarClemens Ladisch <clemens@ladisch.de>
parent 87ef7779
Loading
Loading
Loading
Loading
+4 −6
Original line number Original line Diff line number Diff line
@@ -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,