diff mbox series

[v1,2/5] drm: bridge: dw_hdmi: enable overflow workaround for v2.13a

Message ID 5339589121b05c0db7ee4befdc48c7e4ab4f1653.1649230434.git.Sandor.yu@nxp.com (mailing list archive)
State New, archived
Headers show
Series DRM: Bridge: DW_HDMI: Add new features and bug fix | expand

Commit Message

Sandor Yu April 6, 2022, 8:48 a.m. UTC
From: Sandor Yu <Sandor.yu@nxp.com>

iMX865 HDMI (v2.13a) have been identified as needing the workaround.
Tests show that one iteration is enough.

Without the workaround, iMX865 HDMI audio may not work
after cable plugout/in, because HDMI mode is not really set in
register HDMI_FC_INVIDCONF.

Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
---
 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

Comments

Neil Armstrong April 6, 2022, 9:17 a.m. UTC | #1
Hi,

On 06/04/2022 10:48, Sandor.yu@nxp.com wrote:
> From: Sandor Yu <Sandor.yu@nxp.com>
> 
> iMX865 HDMI (v2.13a) have been identified as needing the workaround.
> Tests show that one iteration is enough.
> 
> Without the workaround, iMX865 HDMI audio may not work
> after cable plugout/in, because HDMI mode is not really set in
> register HDMI_FC_INVIDCONF.
> 
> Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
> ---
>   drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 7 ++++---
>   1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> index 4befc104d220..b11577de4836 100644
> --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> @@ -2087,9 +2087,9 @@ static void dw_hdmi_clear_overflow(struct dw_hdmi *hdmi)
>   	 *
>   	 * The number of iterations matters and depends on the HDMI TX revision
>   	 * (and possibly on the platform). So far i.MX6Q (v1.30a), i.MX6DL
> -	 * (v1.31a) and multiple Allwinner SoCs (v1.32a) have been identified
> -	 * as needing the workaround, with 4 iterations for v1.30a and 1
> -	 * iteration for others.
> +	 * (v1.31a), iMX865(v2.13a) and multiple Allwinner SoCs (v1.32a)
> +	 * have been identified as needing the workaround,
> +	 * with 4 iterations for v1.30a and 1 iteration for others.
>   	 * The Amlogic Meson GX SoCs (v2.01a) have been identified as needing
>   	 * the workaround with a single iteration.
>   	 * The Rockchip RK3288 SoC (v2.00a) and RK3328/RK3399 SoCs (v2.11a) have
> @@ -2106,6 +2106,7 @@ static void dw_hdmi_clear_overflow(struct dw_hdmi *hdmi)
>   	case 0x201a:
>   	case 0x211a:
>   	case 0x212a:
> +	case 0x213a:
>   		count = 1;
>   		break;

At some point we must consider only v1.30a needs 4, and other needs 1.

It would be simpler to put the "count = 1" in a default case.

The comment change is still welcome so we can track.

Thanks,
Neil

>   	default:
Sandor Yu April 7, 2022, 8:30 a.m. UTC | #2
Hi,

> -----Original Message-----
> From: Neil Armstrong <narmstrong@baylibre.com>
> Sent: 2022年4月6日 17:17
> To: Sandor Yu <sandor.yu@nxp.com>; dri-devel@lists.freedesktop.org;
> linux-kernel@vger.kernel.org; andrzej.hajda@intel.com;
> robert.foss@linaro.org; Laurent.pinchart@ideasonboard.com;
> jonas@kwiboo.se; jernej.skrabec@gmail.com
> Cc: S.J. Wang <shengjiu.wang@nxp.com>; cai.huoqing@linux.dev;
> maxime@cerno.tech; harry.wentland@amd.com; hverkuil-cisco@xs4all.nl;
> amuel@sholland.org
> Subject: [EXT] Re: [PATCH v1 2/5] drm: bridge: dw_hdmi: enable overflow
> workaround for v2.13a
> 
> Caution: EXT Email
> 
> Hi,
> 
> On 06/04/2022 10:48, Sandor.yu@nxp.com wrote:
> > From: Sandor Yu <Sandor.yu@nxp.com>
> >
> > iMX865 HDMI (v2.13a) have been identified as needing the workaround.
> > Tests show that one iteration is enough.
> >
> > Without the workaround, iMX865 HDMI audio may not work after cable
> > plugout/in, because HDMI mode is not really set in register
> > HDMI_FC_INVIDCONF.
> >
> > Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
> > ---
> >   drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 7 ++++---
> >   1 file changed, 4 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> > b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> > index 4befc104d220..b11577de4836 100644
> > --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> > +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> > @@ -2087,9 +2087,9 @@ static void dw_hdmi_clear_overflow(struct
> dw_hdmi *hdmi)
> >        *
> >        * The number of iterations matters and depends on the HDMI TX
> revision
> >        * (and possibly on the platform). So far i.MX6Q (v1.30a), i.MX6DL
> > -      * (v1.31a) and multiple Allwinner SoCs (v1.32a) have been
> identified
> > -      * as needing the workaround, with 4 iterations for v1.30a and 1
> > -      * iteration for others.
> > +      * (v1.31a), iMX865(v2.13a) and multiple Allwinner SoCs (v1.32a)
> > +      * have been identified as needing the workaround,
> > +      * with 4 iterations for v1.30a and 1 iteration for others.
> >        * The Amlogic Meson GX SoCs (v2.01a) have been identified as
> needing
> >        * the workaround with a single iteration.
> >        * The Rockchip RK3288 SoC (v2.00a) and RK3328/RK3399 SoCs
> > (v2.11a) have @@ -2106,6 +2106,7 @@ static void
> dw_hdmi_clear_overflow(struct dw_hdmi *hdmi)
> >       case 0x201a:
> >       case 0x211a:
> >       case 0x212a:
> > +     case 0x213a:
> >               count = 1;
> >               break;
> 
> At some point we must consider only v1.30a needs 4, and other needs 1.
> 
> It would be simpler to put the "count = 1" in a default case.
> 
Agree, I will put the "count = 1 " to default case.
> The comment change is still welcome so we can track.
> 
> Thanks,
> Neil
> 
> >       default:

Thanks
Sandor
diff mbox series

Patch

diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
index 4befc104d220..b11577de4836 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
@@ -2087,9 +2087,9 @@  static void dw_hdmi_clear_overflow(struct dw_hdmi *hdmi)
 	 *
 	 * The number of iterations matters and depends on the HDMI TX revision
 	 * (and possibly on the platform). So far i.MX6Q (v1.30a), i.MX6DL
-	 * (v1.31a) and multiple Allwinner SoCs (v1.32a) have been identified
-	 * as needing the workaround, with 4 iterations for v1.30a and 1
-	 * iteration for others.
+	 * (v1.31a), iMX865(v2.13a) and multiple Allwinner SoCs (v1.32a)
+	 * have been identified as needing the workaround,
+	 * with 4 iterations for v1.30a and 1 iteration for others.
 	 * The Amlogic Meson GX SoCs (v2.01a) have been identified as needing
 	 * the workaround with a single iteration.
 	 * The Rockchip RK3288 SoC (v2.00a) and RK3328/RK3399 SoCs (v2.11a) have
@@ -2106,6 +2106,7 @@  static void dw_hdmi_clear_overflow(struct dw_hdmi *hdmi)
 	case 0x201a:
 	case 0x211a:
 	case 0x212a:
+	case 0x213a:
 		count = 1;
 		break;
 	default: