RE: [PATCH 1/7] ASoC: renesas: rz-ssi: Fix channel swap issue in full duplex mode

From: Biju Das

Date: Thu Nov 13 2025 - 03:01:34 EST


Hi Morimoto-san,

Thanks for the feedback.

> -----Original Message-----
> From: Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx>
> 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@xxxxxxxxxx
> > Fixes: 4f8cd05a4305 ("ASoC: sh: rz-ssi: Add full duplex support")
> > Co-developed-by: Tony Tang <tony.tang.ks@xxxxxxxxxxx>
> > Signed-off-by: Tony Tang <tony.tang.ks@xxxxxxxxxxx>
> > Signed-off-by: Biju Das <biju.das.jz@xxxxxxxxxxxxxx>
> > ---
> (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