summaryrefslogtreecommitdiffstats
path: root/sound/pci/ice1712
diff options
context:
space:
mode:
authorPavel Hofman <dustin@seznam.cz>2007-12-03 12:37:17 +0100
committerJaroslav Kysela <perex@perex.cz>2008-01-31 17:29:30 +0100
commitacec30ffffe1eee07e3202cff03e7ca8350d250f (patch)
treed5ab718a21d0237202ec87543ed438ded72c120e /sound/pci/ice1712
parent[ALSA] sound/isa: kill pnp_resource_change (diff)
downloadlinux-acec30ffffe1eee07e3202cff03e7ca8350d250f.tar.xz
linux-acec30ffffe1eee07e3202cff03e7ca8350d250f.zip
[ALSA] I2C fix for ice1724
adding i2c busy wait before sending device address to prevent reading bogus data. Signed-off-by: Pavel Hofman <dustin@seznam.cz> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Diffstat (limited to 'sound/pci/ice1712')
-rw-r--r--sound/pci/ice1712/ice1724.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sound/pci/ice1712/ice1724.c b/sound/pci/ice1712/ice1724.c
index 357bdbe21c8f..b7a1d93cf002 100644
--- a/sound/pci/ice1712/ice1724.c
+++ b/sound/pci/ice1712/ice1724.c
@@ -1958,6 +1958,7 @@ unsigned char snd_vt1724_read_i2c(struct snd_ice1712 *ice,
unsigned char val;
mutex_lock(&ice->i2c_mutex);
+ wait_i2c_busy(ice);
outb(addr, ICEREG1724(ice, I2C_BYTE_ADDR));
outb(dev & ~VT1724_I2C_WRITE, ICEREG1724(ice, I2C_DEV_ADDR));
wait_i2c_busy(ice);