Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 701172dc authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Mark Brown
Browse files

ASoC: rsnd: don't use devm_request_irq() for SSI



SSI will use DMA mode, and migh be fallback to PIO mode.
Using devm_request_irq() makes its operation more complex when
it fallbacks to PIO mode.
Let's use manual request_irq()/free_irq()

Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent b99305d2
Loading
Loading
Loading
Loading
+9 −8
Original line number Diff line number Diff line
@@ -644,7 +644,11 @@ static int rsnd_ssi_common_probe(struct rsnd_mod *mod,
	if (ret < 0)
		return ret;

	ret = devm_request_irq(dev, ssi->irq,
	/*
	 * SSI might be called again as PIO fallback
	 * It is easy to manual handling for IRQ request/free
	 */
	ret = request_irq(ssi->irq,
			  rsnd_ssi_interrupt,
			  IRQF_SHARED,
			  dev_name(dev), mod);
@@ -693,12 +697,9 @@ static int rsnd_ssi_dma_remove(struct rsnd_mod *mod,
			       struct rsnd_priv *priv)
{
	struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod);
	struct device *dev = rsnd_priv_to_dev(priv);
	int irq = ssi->irq;

	/* PIO will request IRQ again */
	if (ssi->dma)
		devm_free_irq(dev, irq, mod);
	free_irq(ssi->irq, mod);

	rsnd_dma_detach(mod, &ssi->dma);