aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2009-09-10 09:32:59 -0400
committerTakashi Iwai <tiwai@suse.de>2009-09-10 09:32:59 -0400
commit05a33e3d6fdca6ae3f645cc7bca9c11a4476e84c (patch)
treee0477cf734f93da64564a4457a45ab563f70f5d1 /sound
parentfa285190025d0b9a35ed0f6233bfaa721281e0f4 (diff)
parentf1bc07af9a9edc5c1d4bdd971f7099316ed2e405 (diff)
Merge branch 'topic/oxygen' into for-linus
* topic/oxygen: sound: oxygen: work around MCE when changing volume
Diffstat (limited to 'sound')
-rw-r--r--sound/pci/oxygen/oxygen_io.c11
1 files changed, 1 insertions, 10 deletions
diff --git a/sound/pci/oxygen/oxygen_io.c b/sound/pci/oxygen/oxygen_io.c
index c1eb923f2ac9..09b2b2a36df5 100644
--- a/sound/pci/oxygen/oxygen_io.c
+++ b/sound/pci/oxygen/oxygen_io.c
@@ -215,17 +215,8 @@ EXPORT_SYMBOL(oxygen_write_spi);
215 215
216void oxygen_write_i2c(struct oxygen *chip, u8 device, u8 map, u8 data) 216void oxygen_write_i2c(struct oxygen *chip, u8 device, u8 map, u8 data)
217{ 217{
218 unsigned long timeout;
219
220 /* should not need more than about 300 us */ 218 /* should not need more than about 300 us */
221 timeout = jiffies + msecs_to_jiffies(1); 219 msleep(1);
222 do {
223 if (!(oxygen_read16(chip, OXYGEN_2WIRE_BUS_STATUS)
224 & OXYGEN_2WIRE_BUSY))
225 break;
226 udelay(1);
227 cond_resched();
228 } while (time_after_eq(timeout, jiffies));
229 220
230 oxygen_write8(chip, OXYGEN_2WIRE_MAP, map); 221 oxygen_write8(chip, OXYGEN_2WIRE_MAP, map);
231 oxygen_write8(chip, OXYGEN_2WIRE_DATA, data); 222 oxygen_write8(chip, OXYGEN_2WIRE_DATA, data);