Messages in this thread Patch in this message | | | Date | Fri, 03 Mar 2006 16:09:51 +0000 | From | David Vrabel <> | Subject | [PATCH] ALSA: CS5535: shorter delays when accessing AC'97 codec registers |
| |
The 10 ms sleeps while waiting for AC'97 codec register reads/writes to complete are excessive given the maxmium time is one AC'97 frame (~21 us).
With AC'97 codecs with integrated touchscreens (like the UCB1400) this improves the interactive performance of the touchscreen.
David Vrabel -- David Vrabel, Design Engineer
Arcom, Clifton Road Tel: +44 (0)1223 411200 ext. 3233 Cambridge CB1 7EA, UK Web: http://www.arcom.com/ ALSA: CS5535: shorter delays when accessing AC'97 codec registers
The 10 ms sleeps while waiting for AC'97 codec register reads/writes to complete are excessive given the maxmium time is one AC'97 frame (~21 us).
With AC'97 codecs with integrated touchscreens (like the UCB1400) this improves the interactive performance of the touchscreen.
Signed-off-by: David Vrabel <dvrabel@arcom.com>
Index: linux-2.6-working/sound/pci/cs5535audio/cs5535audio.c =================================================================== --- linux-2.6-working.orig/sound/pci/cs5535audio/cs5535audio.c 2006-03-02 16:12:52.000000000 +0000 +++ linux-2.6-working/sound/pci/cs5535audio/cs5535audio.c 2006-03-03 15:47:30.000000000 +0000 @@ -62,7 +62,7 @@ tmp = cs_readl(cs5535au, ACC_CODEC_CNTL); if (!(tmp & CMD_NEW)) break; - msleep(10); + udelay(1); } while (--timeout); if (!timeout) snd_printk(KERN_ERR "Failure writing to cs5535 codec\n"); @@ -80,14 +80,14 @@ regdata |= CMD_NEW; cs_writel(cs5535au, ACC_CODEC_CNTL, regdata); - wait_till_cmd_acked(cs5535au, 500); + wait_till_cmd_acked(cs5535au, 50); timeout = 50; do { val = cs_readl(cs5535au, ACC_CODEC_STATUS); if ((val & STS_NEW) && reg == (val >> 24)) break; - msleep(10); + udelay(1); } while (--timeout); if (!timeout) snd_printk(KERN_ERR "Failure reading cs5535 codec\n"); | |