Unverified Commit ed92bc52 authored by Christophe JAILLET's avatar Christophe JAILLET Committed by Mark Brown
Browse files

ASoC: codecs: wm0010: Fix error handling path in wm0010_spi_probe()



Free some resources in the error handling path of the probe, as already
done in the remove function.

Fixes: e3523e01 ("ASoC: wm0010: Add initial wm0010 DSP driver")
Fixes: fd8b9657 ("ASoC: wm0010: Clear IRQ as wake source and include missing header")
Signed-off-by: default avatarChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Reviewed-by: default avatarCharles Keepax <ckeepax@opensource.cirrus.com>
Link: https://patch.msgid.link/5139ba1ab8c4c157ce04e56096a0f54a1683195c.1741549792.git.christophe.jaillet@wanadoo.fr


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 247fba13
Loading
Loading
Loading
Loading
+11 −2
Original line number Diff line number Diff line
@@ -920,7 +920,7 @@ static int wm0010_spi_probe(struct spi_device *spi)
	if (ret) {
		dev_err(wm0010->dev, "Failed to set IRQ %d as wake source: %d\n",
			irq, ret);
		return ret;
		goto free_irq;
	}

	if (spi->max_speed_hz)
@@ -932,9 +932,18 @@ static int wm0010_spi_probe(struct spi_device *spi)
				     &soc_component_dev_wm0010, wm0010_dai,
				     ARRAY_SIZE(wm0010_dai));
	if (ret < 0)
		return ret;
		goto disable_irq_wake;

	return 0;

disable_irq_wake:
	irq_set_irq_wake(wm0010->irq, 0);

free_irq:
	if (wm0010->irq)
		free_irq(wm0010->irq, wm0010);

	return ret;
}

static void wm0010_spi_remove(struct spi_device *spi)