diff options
-rw-r--r-- | sound/pci/ymfpci/ymfpci_main.c | 10 |
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 | ||
1884 | static struct _snd_timer_hardware snd_ymfpci_timer_hw = { | 1882 | static 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, |