[ALSA] I2C fix for ice1724
authorPavel Hofman <dustin@seznam.cz>
Mon, 3 Dec 2007 11:37:17 +0000 (12:37 +0100)
committerJaroslav Kysela <perex@perex.cz>
Thu, 31 Jan 2008 16:29:30 +0000 (17:29 +0100)
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>
sound/pci/ice1712/ice1724.c

index 357bdbe21c8fb490da8d67838d3bcf6ce60b419a..b7a1d93cf0022b26d3798bf2fc4258a72cb77e2f 100644 (file)
@@ -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);