Skip to content

Commit

Permalink
[ALSA] CS5535: shorter delays when accessing AC'97 codec registers
Browse files Browse the repository at this point in the history
Modules: CS5535 driver

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>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
  • Loading branch information
David Vrabel authored and Jaroslav Kysela committed Mar 22, 2006
1 parent ae6b813 commit 1037593
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions sound/pci/cs5535audio/cs5535audio.c
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ static void wait_till_cmd_acked(struct cs5535audio *cs5535au, unsigned long time
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");
Expand All @@ -80,14 +80,14 @@ static unsigned short snd_cs5535audio_codec_read(struct cs5535audio *cs5535au,
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");
Expand Down

0 comments on commit 1037593

Please sign in to comment.