Skip to content

Commit

Permalink
ASoC: Log WM8994 FIFO errors from the interrupt
Browse files Browse the repository at this point in the history
We should spot them anyway on state changes but logging them gives us
better time information about when the misconfiguration happened.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
  • Loading branch information
Mark Brown committed Jul 14, 2011
1 parent b3d7615 commit 3b1af3f
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions sound/soc/codecs/wm8994.c
Original file line number Diff line number Diff line change
Expand Up @@ -2874,6 +2874,15 @@ static irqreturn_t wm8958_mic_irq(int irq, void *data)
return IRQ_HANDLED;
}

static irqreturn_t wm8994_fifo_error(int irq, void *data)
{
struct snd_soc_codec *codec = data;

dev_err(codec->dev, "FIFO error\n");

return IRQ_HANDLED;
}

static int wm8994_codec_probe(struct snd_soc_codec *codec)
{
struct wm8994 *control;
Expand Down Expand Up @@ -2948,6 +2957,9 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)
break;
}

wm8994_request_irq(codec->control_data, WM8994_IRQ_FIFOS_ERR,
wm8994_fifo_error, "FIFO error", codec);

ret = wm8994_request_irq(codec->control_data, WM8994_IRQ_DCS_DONE,
wm_hubs_dcs_done, "DC servo done",
&wm8994->hubs);
Expand Down Expand Up @@ -3210,6 +3222,7 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)
&wm8994->fll_locked[i]);
wm8994_free_irq(codec->control_data, WM8994_IRQ_DCS_DONE,
&wm8994->hubs);
wm8994_free_irq(codec->control_data, WM8994_IRQ_FIFOS_ERR, codec);
err:
kfree(wm8994);
return ret;
Expand All @@ -3231,6 +3244,7 @@ static int wm8994_codec_remove(struct snd_soc_codec *codec)

wm8994_free_irq(codec->control_data, WM8994_IRQ_DCS_DONE,
&wm8994->hubs);
wm8994_free_irq(codec->control_data, WM8994_IRQ_FIFOS_ERR, codec);

switch (control->type) {
case WM8994:
Expand Down

0 comments on commit 3b1af3f

Please sign in to comment.