RE: [EXT] Re: [PATCH v6 5/8] drm: bridge: Cadence: Add MHDP8501 HDMI driver
From: Sandor Yu
Date: Sun Jun 18 2023 - 23:11:31 EST
Hi Alexander,
Thanks for your comments,
> -----Original Message-----
> From: Alexander Stein <alexander.stein@xxxxxxxxxxxxxxx>
> Sent: 2023年6月16日 17:30
> To: andrzej.hajda@xxxxxxxxx; neil.armstrong@xxxxxxxxxx;
> robert.foss@xxxxxxxxxx; Laurent.pinchart@xxxxxxxxxxxxxxxx;
> jonas@xxxxxxxxx; jernej.skrabec@xxxxxxxxx; airlied@xxxxxxxxx;
> daniel@xxxxxxxx; robh+dt@xxxxxxxxxx; krzysztof.kozlowski+dt@xxxxxxxxxx;
> shawnguo@xxxxxxxxxx; s.hauer@xxxxxxxxxxxxxx; festevam@xxxxxxxxx;
> vkoul@xxxxxxxxxx; dri-devel@xxxxxxxxxxxxxxxxxxxxx;
> devicetree@xxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx;
> linux-kernel@xxxxxxxxxxxxxxx; linux-phy@xxxxxxxxxxxxxxxxxxx
> Cc: Oliver Brown <oliver.brown@xxxxxxx>; Sandor Yu <sandor.yu@xxxxxxx>;
> dl-linux-imx <linux-imx@xxxxxxx>; kernel@xxxxxxxxxxxxxx; Sandor Yu
> <sandor.yu@xxxxxxx>
> Subject: [EXT] Re: [PATCH v6 5/8] drm: bridge: Cadence: Add MHDP8501
> HDMI driver
>
> Caution: This is an external email. Please take care when clicking links or
> opening attachments. When in doubt, report the message using the 'Report
> this email' button
>
>
> Hi Sandor,
>
> thanks for sending a new version.
>
> Am Donnerstag, 15. Juni 2023, 03:38:15 CEST schrieb Sandor Yu:
> > Add a new DRM HDMI bridge driver for Cadence MHDP8501 that used in
> > Freescale i.MX8MQ SoC.
> > MHDP8501 could support HDMI or DisplayPort standards according
> > embedded Firmware running in the uCPU.
> >
> > For iMX8MQ SoC, the HDMI FW was loaded and activated by SOC ROM
> code.
> > Bootload binary included HDMI FW was required for the driver.
> >
> > Signed-off-by: Sandor Yu <Sandor.yu@xxxxxxx>
> > ---
> > drivers/gpu/drm/bridge/cadence/Kconfig | 12 +
> > drivers/gpu/drm/bridge/cadence/Makefile | 1 +
> > .../drm/bridge/cadence/cdns-mhdp8501-hdmi.c | 1024
> +++++++++++++++++
> > 3 files changed, 1037 insertions(+)
> > create mode 100644
> > drivers/gpu/drm/bridge/cadence/cdns-mhdp8501-hdmi.c
> >
> > diff --git a/drivers/gpu/drm/bridge/cadence/Kconfig
> > b/drivers/gpu/drm/bridge/cadence/Kconfig index
> > 5b7ec4e49aa1..bee05e834055
> > 100644
> > --- a/drivers/gpu/drm/bridge/cadence/Kconfig
> > +++ b/drivers/gpu/drm/bridge/cadence/Kconfig
> > @@ -59,3 +59,15 @@ config DRM_CDNS_MHDP8501_DP
> > Support Cadence MHDP8501 DisplayPort driver.
> > Cadence MHDP8501 Controller support one or more protocols,
> > DisplayPort firmware is required for this driver.
> > +
> > +config DRM_CDNS_MHDP8501_HDMI
> > + tristate "Cadence MHDP8501 HDMI DRM driver"
> > + select DRM_KMS_HELPER
> > + select DRM_PANEL_BRIDGE
> > + select DRM_DISPLAY_HELPER
> > + select DRM_CDNS_AUDIO
> > + depends on OF
> > + help
> > + Support Cadence MHDP8501 HDMI driver.
> > + Cadence MHDP8501 Controller support one or more protocols,
> > + HDMI firmware is required for this driver.
> > diff --git a/drivers/gpu/drm/bridge/cadence/Makefile
> > b/drivers/gpu/drm/bridge/cadence/Makefile index
> > 5842e4540c62..8a129c14ac14
> > 100644
> > --- a/drivers/gpu/drm/bridge/cadence/Makefile
> > +++ b/drivers/gpu/drm/bridge/cadence/Makefile
> > @@ -7,3 +7,4 @@ cdns-mhdp8546-y := cdns-mhdp8546-core.o
> > cdns-mhdp8546-hdcp.o
> > cdns-mhdp8546-$(CONFIG_DRM_CDNS_MHDP8546_J721E) +=
> > cdns-mhdp8546-j721e.o
> >
> > obj-$(CONFIG_DRM_CDNS_MHDP8501_DP) += cdns-mhdp8501-dp.o
> > +obj-$(CONFIG_DRM_CDNS_MHDP8501_HDMI) += cdns-mhdp8501-hdmi.o
> > diff --git a/drivers/gpu/drm/bridge/cadence/cdns-mhdp8501-hdmi.c
> > b/drivers/gpu/drm/bridge/cadence/cdns-mhdp8501-hdmi.c new file mode
> > 100644 index 000000000000..43673f1b50f6
> > --- /dev/null
> > +++ b/drivers/gpu/drm/bridge/cadence/cdns-mhdp8501-hdmi.c
> [...]
> > +static int cdns_hdmi_bridge_attach(struct drm_bridge *bridge,
> > + enum drm_bridge_attach_flags flags)
> {
> > + struct cdns_mhdp_device *mhdp = bridge->driver_private;
> > + struct drm_mode_config *config = &bridge->dev->mode_config;
> > + struct drm_encoder *encoder = bridge->encoder;
> > + struct drm_connector *connector = &mhdp->connector;
> > +
> > + if (!(flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR)) {
> > + connector->interlace_allowed = 0;
> > + connector->polled = DRM_CONNECTOR_POLL_HPD;
> > +
> > + drm_connector_helper_add(connector,
> &cdns_hdmi_connector_helper_funcs);
> > +
> > + drm_connector_init(bridge->dev, connector,
> &cdns_hdmi_connector_funcs,
> > +
> DRM_MODE_CONNECTOR_HDMIA);
> > +
> > + drm_object_attach_property(&connector->base,
> > + config-
> >hdr_output_metadata_property, 0);
> > +
> > + if
> > + (!drm_mode_create_hdmi_colorspace_property(connector))
>
> This is missing a 2nd parameter.
I have not found function drm_mode_create_hdmi_colorspace_property need 2nd parameter in L6.1.
And those connector init functions will be remove in the next version according Sam's comments, because they are not really needed.
B.R
Sandor
>
> > +
> drm_object_attach_property(&connector->base,
> > + connector-
> >colorspace_property, 0);
> > +
> > + drm_connector_attach_encoder(connector, encoder);
> > + }
> > +
> > + return 0;
> > +}
> [...]
>
> Best regards,
> Alexander
> --
> TQ-Systems GmbH | Mühlstraße 2, Gut Delling | 82229 Seefeld, Germany
> Amtsgericht München, HRB 105018
> Geschäftsführer: Detlef Schneider, Rüdiger Stahl, Stefan Schneider
> http://www.tq/
> -group.com%2F&data=05%7C01%7CSandor.yu%40nxp.com%7C77fbaace052c
> 4ccf338c08db6e4c40cb%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C
> 0%7C638225046010817530%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4w
> LjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C
> %7C%7C&sdata=JJjeV2InXzHyefL4uiK9%2BRtSVjoBYd%2FwIqSbIQhDH90%3D
> &reserved=0
>