Devicetree
 help / color / mirror / Atom feed
From: Claudiu Beznea <claudiu.beznea@tuxon.dev>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: mturquette@baylibre.com, sboyd@kernel.org, robh@kernel.org,
	krzk+dt@kernel.org, conor+dt@kernel.org,
	biju.das.jz@bp.renesas.com,
	prabhakar.mahadev-lad.rj@bp.renesas.com, lgirdwood@gmail.com,
	broonie@kernel.org, magnus.damm@gmail.com,
	linus.walleij@linaro.org, perex@perex.cz, tiwai@suse.com,
	p.zabel@pengutronix.de, linux-renesas-soc@vger.kernel.org,
	linux-clk@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-sound@vger.kernel.org,
	linux-gpio@vger.kernel.org,
	Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>,
	stable@vger.kernel.org
Subject: Re: [PATCH v3 06/25] ASoC: renesas: rz-ssi: Terminate all the DMA transactions
Date: Mon, 9 Dec 2024 15:28:14 +0200	[thread overview]
Message-ID: <c65b8dd7-86e9-4a87-b9ec-bcbaae6dbe98@tuxon.dev> (raw)
In-Reply-To: <CAMuHMdUa9GnzOMOBhpQcX88Yy2qvgKmKMdeEwEVo-OXgr-3SMg@mail.gmail.com>

Hi, Geert,

On 09.12.2024 15:15, Geert Uytterhoeven wrote:
> Hi Claudiu,
> 
> On Wed, Nov 13, 2024 at 2:35 PM Claudiu <claudiu.beznea@tuxon.dev> wrote:
>> From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
>>
>> In case of full duplex the 1st closed stream doesn't benefit from the
>> dmaengine_terminate_async(). Call it after the companion stream is
>> closed.
>>
>> Fixes: 4f8cd05a4305 ("ASoC: sh: rz-ssi: Add full duplex support")
>> Cc: stable@vger.kernel.org
>> Reviewed-by: Biju Das <biju.das.jz@bp.renesas.com>
>> Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
> 
> Thanks for your patch!
> 
>> Changes in v3:
>> - collected tags
>> - use proper fixes commit SHA1 and description
> 
> I am not sure which one is the correct one: the above, or commit> 26ac471c5354583c ("ASoC: sh: rz-ssi: Add SSI DMAC support")...

IIRC, I had this one on the previous version but in the review process it
has been proposed to used 4f8cd05a4305 ("ASoC: sh: rz-ssi: Add full duplex
support"). I think 4f8cd05a4305 ("ASoC: sh: rz-ssi: Add full duplex
support") is the right one as the issue is related to full duplex.


> 
>> --- a/sound/soc/renesas/rz-ssi.c
>> +++ b/sound/soc/renesas/rz-ssi.c
>> @@ -415,8 +415,12 @@ static int rz_ssi_stop(struct rz_ssi_priv *ssi, struct rz_ssi_stream *strm)
>>         rz_ssi_reg_mask_setl(ssi, SSICR, SSICR_TEN | SSICR_REN, 0);
>>
>>         /* Cancel all remaining DMA transactions */
>> -       if (rz_ssi_is_dma_enabled(ssi))
>> -               dmaengine_terminate_async(strm->dma_ch);
>> +       if (rz_ssi_is_dma_enabled(ssi)) {
>> +               if (ssi->playback.dma_ch)
>> +                       dmaengine_terminate_async(ssi->playback.dma_ch);
>> +               if (ssi->capture.dma_ch)
>> +                       dmaengine_terminate_async(ssi->capture.dma_ch);
>> +       }
> 
> rz_ssi_stop() is called twice: once for capture, and a second time for
> playback. How come that doesn't stop both?

It is called from this path:

static int rz_ssi_dai_trigger(struct snd_pcm_substream *substream, int cmd,

                              struct snd_soc_dai *dai)

{

        // ...
        case SNDRV_PCM_TRIGGER_STOP:

                rz_ssi_stop(ssi, strm);

                rz_ssi_stream_quit(ssi, strm);


        // ...
}

rz_ssi_stop() is as follow:

static int rz_ssi_stop(struct rz_ssi_priv *ssi, struct rz_ssi_stream *strm)

{

        strm->running = 0;



        if (rz_ssi_is_stream_running(&ssi->playback) ||

            rz_ssi_is_stream_running(&ssi->capture))

                return 0;

        // ...
}

rz_ssi_is_stream_running() is as follows:

static inline bool rz_ssi_is_stream_running(struct rz_ssi_stream *strm)

{

        return strm->substream && strm->running;

}


The strm->substream is set to NULL in:

static void rz_ssi_stream_quit(struct rz_ssi_priv *ssi,

                               struct rz_ssi_stream *strm)

{

        struct snd_soc_dai *dai = rz_ssi_get_dai(strm->substream);



        rz_ssi_set_substream(strm, NULL);


        // ...
}

Thus, when the 1st full duplex stream is closed, as the companion stream is
still running it doesn't benefit from dmaengine_terminate_async().

I'll update the commit description in the next version.

Thank you for your review,
Claudiu

> Perhaps the checks at the top of rz_ssi_stop() are not correct?
> Disclaimer: I am no sound expert, so I may be missing something...
> 
>>
>>         rz_ssi_set_idle(ssi);
> 
> Gr{oetje,eeting}s,
> 
>                         Geert
> 

  reply	other threads:[~2024-12-09 13:28 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-11-13 13:35 [PATCH v3 00/25] Add audio support for the Renesas RZ/G3S SoC Claudiu
2024-11-13 13:35 ` [PATCH v3 01/25] clk: renesas: r9a08g045-cpg: Add clocks, resets and power domains support for SSI Claudiu
2024-11-27 14:46   ` Geert Uytterhoeven
2024-11-27 17:21     ` Claudiu Beznea
2024-11-13 13:35 ` [PATCH v3 02/25] clk: versaclock3: Prepare for the addition of 5L35023 device Claudiu
2024-12-09 10:57   ` Geert Uytterhoeven
2024-12-09 11:14     ` Claudiu Beznea
2024-12-09 12:16       ` Geert Uytterhoeven
2024-12-09 12:22         ` Claudiu Beznea
2024-12-09 12:23           ` Geert Uytterhoeven
2024-11-13 13:35 ` [PATCH v3 03/25] dt-bindings: clock: versaclock3: Document 5L35023 Versa3 clock generator Claudiu
2024-12-09 12:48   ` Geert Uytterhoeven
2024-11-13 13:35 ` [PATCH v3 04/25] clk: versaclock3: Add support for the 5L35023 variant Claudiu
2024-12-09 12:54   ` Geert Uytterhoeven
2024-11-13 13:35 ` [PATCH v3 05/25] pinctrl: renesas: rzg2l: Add audio clock pins Claudiu
2024-11-18 22:54   ` Linus Walleij
2024-11-27 14:32   ` Geert Uytterhoeven
2024-11-27 17:22     ` Claudiu Beznea
2024-11-13 13:35 ` [PATCH v3 06/25] ASoC: renesas: rz-ssi: Terminate all the DMA transactions Claudiu
2024-12-09 13:15   ` Geert Uytterhoeven
2024-12-09 13:28     ` Claudiu Beznea [this message]
2024-11-13 13:35 ` [PATCH v3 07/25] ASoC: renesas: rz-ssi: Use only the proper amount of dividers Claudiu
2024-12-09 13:22   ` Geert Uytterhoeven
2024-12-09 13:31     ` Claudiu Beznea
2024-12-09 14:28       ` Geert Uytterhoeven
2024-11-13 13:35 ` [PATCH v3 08/25] ASoC: renesas: rz-ssi: Fix typo on SSI_RATES macro comment Claudiu
2024-12-09 13:23   ` Geert Uytterhoeven
2024-11-13 13:35 ` [PATCH v3 09/25] ASoC: renesas: rz-ssi: Remove pdev member of struct rz_ssi_priv Claudiu
2024-12-09 13:24   ` Geert Uytterhoeven
2024-11-13 13:35 ` [PATCH v3 10/25] ASoC: renesas: rz-ssi: Remove the rz_ssi_get_dai() function Claudiu
2024-12-09 13:28   ` Geert Uytterhoeven
2024-11-13 13:35 ` [PATCH v3 11/25] ASoC: renesas: rz-ssi: Remove the first argument of rz_ssi_stream_is_play() Claudiu
2024-12-09 13:29   ` Geert Uytterhoeven
2024-11-13 13:35 ` [PATCH v3 12/25] ASoC: renesas: rz-ssi: Use readl_poll_timeout_atomic() Claudiu
2024-12-09 13:33   ` Geert Uytterhoeven
2024-11-13 13:35 ` [PATCH v3 13/25] ASoC: renesas: rz-ssi: Use temporary variable for struct device Claudiu
2024-12-09 13:35   ` Geert Uytterhoeven
2024-11-13 13:35 ` [PATCH v3 14/25] ASoC: renesas: rz-ssi: Use goto label names that specify their actions Claudiu
2024-12-09 13:51   ` Geert Uytterhoeven
2024-12-10  9:56     ` Claudiu Beznea
2024-12-10 10:01       ` Geert Uytterhoeven
2024-11-13 13:35 ` [PATCH v3 15/25] ASoC: renesas: rz-ssi: Rely on the ASoC subsystem to runtime resume/suspend the SSI Claudiu
2024-12-09 13:55   ` Geert Uytterhoeven
2024-11-13 13:35 ` [PATCH v3 16/25] ASoC: renesas: rz-ssi: Enable runtime PM autosuspend support Claudiu
2024-12-09 13:58   ` Geert Uytterhoeven
2024-11-13 13:35 ` [PATCH v3 17/25] ASoC: renesas: rz-ssi: Add runtime PM support Claudiu
2024-12-09 14:07   ` Geert Uytterhoeven
2024-11-13 13:35 ` [PATCH v3 18/25] ASoC: renesas: rz-ssi: Issue software reset in hw_params API Claudiu
2024-12-09 14:09   ` Geert Uytterhoeven
2024-11-13 13:35 ` [PATCH v3 19/25] ASoC: renesas: rz-ssi: Add suspend to RAM support Claudiu
2024-11-13 13:35 ` [PATCH v3 20/25] ASoC: dt-bindings: renesas,rz-ssi: Document the Renesas RZ/G3S SoC Claudiu
2024-12-09 14:24   ` Geert Uytterhoeven
2024-12-09 14:36     ` Geert Uytterhoeven
2024-11-13 13:35 ` [PATCH v3 21/25] arm64: dts: renesas: r9a08g045: Add SSI nodes Claudiu
2024-11-13 13:57   ` Biju Das
2024-12-09 15:12   ` Geert Uytterhoeven
2024-11-13 13:35 ` [PATCH v3 22/25] arm64: dts: renesas: rzg3s-smarc-som: Add versa3 clock generator node Claudiu
2024-11-13 13:57   ` Biju Das
2024-12-09 15:42   ` Geert Uytterhoeven
2024-11-13 13:35 ` [PATCH v3 23/25] arm64: dts: renesas: Add da7212 audio codec node Claudiu
2024-12-09 15:49   ` Geert Uytterhoeven
2024-12-10  9:59   ` Geert Uytterhoeven
2024-11-13 13:35 ` [PATCH v3 24/25] arm64: dts: renesas: rzg3s-smarc: Enable SSI3 Claudiu
2024-12-09 15:27   ` Geert Uytterhoeven
2024-11-13 13:35 ` [PATCH v3 25/25] arm64: dts: renesas: rzg3s-smarc: Add sound card Claudiu
2024-12-09 15:55   ` Geert Uytterhoeven
2024-12-09 11:00 ` [PATCH v3 00/25] Add audio support for the Renesas RZ/G3S SoC Geert Uytterhoeven
2024-12-11 17:46 ` (subset) " Mark Brown

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=c65b8dd7-86e9-4a87-b9ec-bcbaae6dbe98@tuxon.dev \
    --to=claudiu.beznea@tuxon.dev \
    --cc=biju.das.jz@bp.renesas.com \
    --cc=broonie@kernel.org \
    --cc=claudiu.beznea.uj@bp.renesas.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=geert@linux-m68k.org \
    --cc=krzk+dt@kernel.org \
    --cc=lgirdwood@gmail.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=linux-sound@vger.kernel.org \
    --cc=magnus.damm@gmail.com \
    --cc=mturquette@baylibre.com \
    --cc=p.zabel@pengutronix.de \
    --cc=perex@perex.cz \
    --cc=prabhakar.mahadev-lad.rj@bp.renesas.com \
    --cc=robh@kernel.org \
    --cc=sboyd@kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=tiwai@suse.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox