ASoC: twl6040: Drop using devm_request_threaded_irq()
We need to free the irq at twl6040_remove() which is called when the machine driver has been removed (the card has been removed). If we fail to do that, next time when the machine driver is loaded the codec's probe will fail since the irq has been already requested. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@linaro.org>
This commit is contained in:
parent
9e895ace5d
commit
f60596d61f
|
@ -1143,7 +1143,7 @@ static int twl6040_probe(struct snd_soc_codec *codec)
|
|||
|
||||
mutex_init(&priv->mutex);
|
||||
|
||||
ret = devm_request_threaded_irq(codec->dev, priv->plug_irq, NULL,
|
||||
ret = request_threaded_irq(priv->plug_irq, NULL,
|
||||
twl6040_audio_handler, IRQF_NO_SUSPEND,
|
||||
"twl6040_irq_plug", codec);
|
||||
if (ret) {
|
||||
|
@ -1159,6 +1159,9 @@ static int twl6040_probe(struct snd_soc_codec *codec)
|
|||
|
||||
static int twl6040_remove(struct snd_soc_codec *codec)
|
||||
{
|
||||
struct twl6040_data *priv = snd_soc_codec_get_drvdata(codec);
|
||||
|
||||
free_irq(priv->plug_irq, codec);
|
||||
twl6040_set_bias_level(codec, SND_SOC_BIAS_OFF);
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue