All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
To: cip-dev@lists.cip-project.org,
	Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp>,
	Pavel Machek <pavel@denx.de>
Cc: Biju Das <biju.das.jz@bp.renesas.com>
Subject: [PATCH 5.10.y-cip 08/24] ASoC: sh: rz-ssi: Improve error handling in rz_ssi_dma_request function
Date: Wed, 20 Apr 2022 22:34:08 +0100	[thread overview]
Message-ID: <20220420213424.27837-9-prabhakar.mahadev-lad.rj@bp.renesas.com> (raw)
In-Reply-To: <20220420213424.27837-1-prabhakar.mahadev-lad.rj@bp.renesas.com>

From: Biju Das <biju.das.jz@bp.renesas.com>

commit 4b14f17912052a6963580dfba04781cfe6ccba02 upstream.

dma_request_chan() returns error pointer in case of failures, but
the rz_ssi_dma_request() checked for NULL pointer instead.

This patch fixes the issue by checking for ERR_PTR() instead of
NULL and sets the DMA pointers to NULL in error case so that ssi
can fallback to PIO mode.

Fixes: 26ac471c5354 ("ASoC: sh: rz-ssi: Add SSI DMAC support")
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Link: https://lore.kernel.org/r/20210818101450.15948-1-biju.das.jz@bp.renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
---
 sound/soc/sh/rz-ssi.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/sound/soc/sh/rz-ssi.c b/sound/soc/sh/rz-ssi.c
index 341815476244..89c7e5e4cbf6 100644
--- a/sound/soc/sh/rz-ssi.c
+++ b/sound/soc/sh/rz-ssi.c
@@ -185,7 +185,7 @@ rz_ssi_stream_get(struct rz_ssi_priv *ssi, struct snd_pcm_substream *substream)
 
 static inline bool rz_ssi_is_dma_enabled(struct rz_ssi_priv *ssi)
 {
-	return (ssi->playback.dma_ch || ssi->capture.dma_ch);
+	return (ssi->playback.dma_ch && (ssi->dma_rt || ssi->capture.dma_ch));
 }
 
 static int rz_ssi_stream_is_valid(struct rz_ssi_priv *ssi,
@@ -676,15 +676,26 @@ static void rz_ssi_release_dma_channels(struct rz_ssi_priv *ssi)
 static int rz_ssi_dma_request(struct rz_ssi_priv *ssi, struct device *dev)
 {
 	ssi->playback.dma_ch = dma_request_chan(dev, "tx");
+	if (IS_ERR(ssi->playback.dma_ch))
+		ssi->playback.dma_ch = NULL;
+
 	ssi->capture.dma_ch = dma_request_chan(dev, "rx");
+	if (IS_ERR(ssi->capture.dma_ch))
+		ssi->capture.dma_ch = NULL;
+
 	if (!ssi->playback.dma_ch && !ssi->capture.dma_ch) {
 		ssi->playback.dma_ch = dma_request_chan(dev, "rt");
-		if (!ssi->playback.dma_ch)
+		if (IS_ERR(ssi->playback.dma_ch)) {
+			ssi->playback.dma_ch = NULL;
 			goto no_dma;
+		}
 
 		ssi->dma_rt = true;
 	}
 
+	if (!rz_ssi_is_dma_enabled(ssi))
+		goto no_dma;
+
 	if (ssi->playback.dma_ch &&
 	    (rz_ssi_dma_slave_config(ssi, ssi->playback.dma_ch, true) < 0))
 		goto no_dma;
-- 
2.17.1



  parent reply	other threads:[~2022-04-21 16:46 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-20 21:34 [PATCH 5.10.y-cip 00/24] Add sound support to Renesas RZ/G2L SoC Lad Prabhakar
2022-04-20 21:34 ` [PATCH 5.10.y-cip 01/24] ASoC: dt-bindings: Document RZ/G2L bindings Lad Prabhakar
2022-04-20 21:34 ` [PATCH 5.10.y-cip 02/24] ASoC: dt-bindings: sound: renesas,rz-ssi: Document DMA support Lad Prabhakar
2022-04-20 21:34 ` [PATCH 5.10.y-cip 03/24] ASoC: dt-bindings: renesas,rz-ssi: Update slave dma channel configuration parameter Lad Prabhakar
2022-04-21  8:32   ` Pavel Machek
2022-04-21 10:55     ` Prabhakar Mahadev Lad
2022-04-20 21:34 ` [PATCH 5.10.y-cip 04/24] ASoC: sh: Add RZ/G2L SSIF-2 driver Lad Prabhakar
2022-04-21  1:12   ` nobuhiro1.iwamatsu
2022-04-21 10:50     ` Prabhakar Mahadev Lad
2022-04-21 11:02       ` Pavel Machek
2022-04-21 11:18         ` Prabhakar Mahadev Lad
2022-04-20 21:34 ` [PATCH 5.10.y-cip 05/24] ASoC: sh: rz-ssi: Add SSI DMAC support Lad Prabhakar
2022-04-21  8:33   ` Pavel Machek
2022-04-21 11:02     ` Prabhakar Mahadev Lad
2022-04-20 21:34 ` [PATCH 5.10.y-cip 06/24] ASoC: sh: rz-ssi: Fix dereference of noderef expression warning Lad Prabhakar
2022-04-20 21:34 ` [PATCH 5.10.y-cip 07/24] ASoC: sh: rz-ssi: Fix wrong operator used issue Lad Prabhakar
2022-04-20 21:34 ` Lad Prabhakar [this message]
2022-04-20 21:34 ` [PATCH 5.10.y-cip 09/24] ASoC: sh: rz-ssi: Check return value of pm_runtime_resume_and_get() Lad Prabhakar
2022-04-20 21:34 ` [PATCH 5.10.y-cip 10/24] ASoC: sh: rz-ssi: Drop calling rz_ssi_pio_recv() recursively Lad Prabhakar
2022-04-20 21:34 ` [PATCH 5.10.y-cip 11/24] ASoC: sh: rz-ssi: Make the data structures available before registering the handlers Lad Prabhakar
2022-04-20 21:34 ` [PATCH 5.10.y-cip 12/24] ASoC: sh: rz-ssi: Drop ssi parameter from rz_ssi_stream_init() Lad Prabhakar
2022-04-20 21:34 ` [PATCH 5.10.y-cip 13/24] ASoC: sh: rz-ssi: Make return type of rz_ssi_stream_is_valid() to bool Lad Prabhakar
2022-04-20 21:34 ` [PATCH 5.10.y-cip 14/24] ASoC: sh: rz-ssi: Use a do-while loop in rz_ssi_pio_recv() Lad Prabhakar
2022-04-20 21:34 ` [PATCH 5.10.y-cip 15/24] ASoC: sh: rz-ssi: Add rz_ssi_set_substream() helper function Lad Prabhakar
2022-04-20 21:34 ` [PATCH 5.10.y-cip 16/24] ASoC: sh: rz-ssi: Remove duplicate macros Lad Prabhakar
2022-04-20 21:34 ` [PATCH 5.10.y-cip 17/24] arm64: dts: renesas: r9a07g044: Add external audio clock nodes Lad Prabhakar
2022-04-20 21:34 ` [PATCH 5.10.y-cip 18/24] arm64: dts: renesas: r9a07g044: Add SSI support Lad Prabhakar
2022-04-20 21:34 ` [PATCH 5.10.y-cip 19/24] arm64: dts: renesas: r9a07g044: Add DMA support to SSI Lad Prabhakar
2022-04-20 21:34 ` [PATCH 5.10.y-cip 20/24] arm64: dts: renesas: rzg2l-smarc: Add WM8978 sound codec Lad Prabhakar
2022-04-20 21:34 ` [PATCH 5.10.y-cip 21/24] arm64: dts: renesas: rzg2l-smarc: Enable audio Lad Prabhakar
2022-04-21 11:15   ` Pavel Machek
2022-04-21 11:18     ` Biju Das
2022-04-20 21:34 ` [PATCH 5.10.y-cip 22/24] arm64: dts: renesas: rzg2l-smarc: Add Mic routing Lad Prabhakar
2022-04-20 21:34 ` [PATCH 5.10.y-cip 23/24] arm64: defconfig: Enable SOUND_SOC_RZ Lad Prabhakar
2022-04-20 21:34 ` [PATCH 5.10.y-cip 24/24] arm64: defconfig: Enable SND_SOC_WM8978 Lad Prabhakar
2022-04-21  3:25 ` [PATCH 5.10.y-cip 00/24] Add sound support to Renesas RZ/G2L SoC nobuhiro1.iwamatsu
2022-04-21 11:17   ` Pavel Machek
2022-04-25  5:52   ` Prabhakar Mahadev Lad
2022-04-25  7:25     ` nobuhiro1.iwamatsu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220420213424.27837-9-prabhakar.mahadev-lad.rj@bp.renesas.com \
    --to=prabhakar.mahadev-lad.rj@bp.renesas.com \
    --cc=biju.das.jz@bp.renesas.com \
    --cc=cip-dev@lists.cip-project.org \
    --cc=nobuhiro1.iwamatsu@toshiba.co.jp \
    --cc=pavel@denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.