From 4f3714afdb840d8a41b3a9ee145e38dfcddd23dd Mon Sep 17 00:00:00 2001 From: Peter Ujfalusi Date: Fri, 22 Oct 2010 15:11:20 +0300 Subject: [PATCH] --- yaml --- r: 216657 b: refs/heads/master c: 84eae18c867fcb7ce43d5830e23377ed33e45df9 h: refs/heads/master i: 216655: b44d3fd102e5062fd66d944be9a3c51ba0384c37 v: v3 --- [refs] | 2 +- trunk/sound/soc/codecs/tlv320dac33.c | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index fa19293a4fe1..2e58176fadd6 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 872a64d7e73f0e4dc435295da393db25332172b8 +refs/heads/master: 84eae18c867fcb7ce43d5830e23377ed33e45df9 diff --git a/trunk/sound/soc/codecs/tlv320dac33.c b/trunk/sound/soc/codecs/tlv320dac33.c index 58349dcd1a6e..d251ff54a2d3 100644 --- a/trunk/sound/soc/codecs/tlv320dac33.c +++ b/trunk/sound/soc/codecs/tlv320dac33.c @@ -669,6 +669,7 @@ static int dac33_set_bias_level(struct snd_soc_codec *codec, static inline void dac33_prefill_handler(struct tlv320dac33_priv *dac33) { struct snd_soc_codec *codec = dac33->codec; + unsigned int delay; switch (dac33->fifo_mode) { case DAC33_FIFO_MODE1: @@ -684,8 +685,9 @@ static inline void dac33_prefill_handler(struct tlv320dac33_priv *dac33) dac33_write16(codec, DAC33_PREFILL_MSB, DAC33_THRREG(dac33->alarm_threshold)); /* Enable Alarm Threshold IRQ with a delay */ - udelay(SAMPLES_TO_US(dac33->burst_rate, - dac33->alarm_threshold)); + delay = SAMPLES_TO_US(dac33->burst_rate, + dac33->alarm_threshold) + 1000; + usleep_range(delay, delay + 500); dac33_write(codec, DAC33_FIFO_IRQ_MASK, DAC33_MAT); break; case DAC33_FIFO_MODE7: @@ -785,11 +787,11 @@ static irqreturn_t dac33_interrupt_handler(int irq, void *dev) static void dac33_oscwait(struct snd_soc_codec *codec) { - int timeout = 20; + int timeout = 60; u8 reg; do { - msleep(1); + usleep_range(1000, 2000); dac33_read(codec, DAC33_INT_OSC_STATUS, ®); } while (((reg & 0x03) != DAC33_OSCSTATUS_NORMAL) && timeout--); if ((reg & 0x03) != DAC33_OSCSTATUS_NORMAL)