[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID:
<TY3PR01MB11346E1A2411DB3975A97637686CDA@TY3PR01MB11346.jpnprd01.prod.outlook.com>
Date: Thu, 13 Nov 2025 08:01:32 +0000
From: Biju Das <biju.das.jz@...renesas.com>
To: Kuninori Morimoto <kuninori.morimoto.gx@...esas.com>, biju.das.au
<biju.das.au@...il.com>
CC: Prabhakar Mahadev Lad <prabhakar.mahadev-lad.rj@...renesas.com>, Liam
Girdwood <lgirdwood@...il.com>, Mark Brown <broonie@...nel.org>, Jaroslav
Kysela <perex@...ex.cz>, Takashi Iwai <tiwai@...e.com>,
"linux-sound@...r.kernel.org" <linux-sound@...r.kernel.org>,
"linux-renesas-soc@...r.kernel.org" <linux-renesas-soc@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>, Geert
Uytterhoeven <geert+renesas@...der.be>, "stable@...nel.org"
<stable@...nel.org>, Tony Tang <Tony.tang.ks@...esas.com>
Subject: RE: [PATCH 1/7] ASoC: renesas: rz-ssi: Fix channel swap issue in full
duplex mode
Hi Morimoto-san,
Thanks for the feedback.
> -----Original Message-----
> From: Kuninori Morimoto <kuninori.morimoto.gx@...esas.com>
> Sent: 13 November 2025 05:50
> Subject: Re: [PATCH 1/7] ASoC: renesas: rz-ssi: Fix channel swap issue in full duplex mode
>
>
> Hi Biju
>
> Thank you for the patch
>
> > The full duplex audio starts with half duplex mode and then switch to
> > full duplex mode (another FIFO reset) when both playback/capture
> > streams available leading to random audio left/right channel swap
> > issue. Fix this channel swap issue by detecting the full duplex
> > condition by populating struct dup variable in startup() callback and
> > synchronize starting both the play and capture at the same time in
> > rz_ssi_start().
> >
> > Cc: stable@...nel.org
> > Fixes: 4f8cd05a4305 ("ASoC: sh: rz-ssi: Add full duplex support")
> > Co-developed-by: Tony Tang <tony.tang.ks@...esas.com>
> > Signed-off-by: Tony Tang <tony.tang.ks@...esas.com>
> > Signed-off-by: Biju Das <biju.das.jz@...renesas.com>
> > ---
> (snip)
> > if (!is_full_duplex) {
> > ssifcr &= ~0xF;
> > } else {
> > - rz_ssi_reg_mask_setl(ssi, SSICR, SSICR_TEN | SSICR_REN, 0);
> > - rz_ssi_set_idle(ssi);
> > - ssifcr &= ~SSIFCR_FIFO_RST;
> > + if (ssi->dup.one_stream_triggered) {
> > + rz_ssi_reg_mask_setl(ssi, SSICR, SSICR_TEN | SSICR_REN, 0);
> > + rz_ssi_set_idle(ssi);
> > + ssifcr &= ~SSIFCR_FIFO_RST;
> > + }
> > }
>
> nitpick
>
> } else if (...) { ?
Agreed. will use else if.
Cheers,
Biju
Powered by blists - more mailing lists