aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/ymfpci
diff options
context:
space:
mode:
Diffstat (limited to 'sound/pci/ymfpci')
-rw-r--r--sound/pci/ymfpci/ymfpci_main.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/sound/pci/ymfpci/ymfpci_main.c b/sound/pci/ymfpci/ymfpci_main.c
index c0aaade772d4..d27f3b56b513 100644
--- a/sound/pci/ymfpci/ymfpci_main.c
+++ b/sound/pci/ymfpci/ymfpci_main.c
@@ -1851,9 +1851,7 @@ static int snd_ymfpci_timer_start(snd_timer_t *timer)
1851 unsigned int count; 1851 unsigned int count;
1852 1852
1853 chip = snd_timer_chip(timer); 1853 chip = snd_timer_chip(timer);
1854 count = timer->sticks - 1; 1854 count = (timer->sticks << 1) - 1;
1855 if (count == 0) /* minimum time is 20.8 us */
1856 count = 1;
1857 spin_lock_irqsave(&chip->reg_lock, flags); 1855 spin_lock_irqsave(&chip->reg_lock, flags);
1858 snd_ymfpci_writew(chip, YDSXGR_TIMERCOUNT, count); 1856 snd_ymfpci_writew(chip, YDSXGR_TIMERCOUNT, count);
1859 snd_ymfpci_writeb(chip, YDSXGR_TIMERCTRL, 0x03); 1857 snd_ymfpci_writeb(chip, YDSXGR_TIMERCTRL, 0x03);
@@ -1877,14 +1875,14 @@ static int snd_ymfpci_timer_precise_resolution(snd_timer_t *timer,
1877 unsigned long *num, unsigned long *den) 1875 unsigned long *num, unsigned long *den)
1878{ 1876{
1879 *num = 1; 1877 *num = 1;
1880 *den = 96000; 1878 *den = 48000;
1881 return 0; 1879 return 0;
1882} 1880}
1883 1881
1884static struct _snd_timer_hardware snd_ymfpci_timer_hw = { 1882static struct _snd_timer_hardware snd_ymfpci_timer_hw = {
1885 .flags = SNDRV_TIMER_HW_AUTO, 1883 .flags = SNDRV_TIMER_HW_AUTO,
1886 .resolution = 10417, /* 1/2fs = 10.41666...us */ 1884 .resolution = 20833, /* 1/fs = 20.8333...us */
1887 .ticks = 65536, 1885 .ticks = 0x8000,
1888 .start = snd_ymfpci_timer_start, 1886 .start = snd_ymfpci_timer_start,
1889 .stop = snd_ymfpci_timer_stop, 1887 .stop = snd_ymfpci_timer_stop,
1890 .precise_resolution = snd_ymfpci_timer_precise_resolution, 1888 .precise_resolution = snd_ymfpci_timer_precise_resolution,