Set DW HDMI platform data's output_port to 1 in imx8mp_dw_hdmi_probe()
so that dw_hdmi_probe() called by imx8mp_dw_hdmi_probe() can tell the
DW HDMI bridge core driver about the output port we are using, hence
the next bridge can be found in dw_hdmi_parse_dt() according to the port
index, and furthermore the next bridge can be attached to bridge chain in
dw_hdmi_bridge_attach() when the DRM_BRIDGE_ATTACH_NO_CONNECTOR flag is
set. The output_port value aligns to the value used by devicetree.
This is a preparation for making the i.MX8MP LCDIF driver use
drm_bridge_connector which requires the DRM_BRIDGE_ATTACH_NO_CONNECTOR
flag.
Signed-off-by: Liu Ying <victor.liu@nxp.com>
---
drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c b/drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c
index 8fcc6d18f4ab..54a53f96929a 100644
--- a/drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c
+++ b/drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c
@@ -96,6 +96,7 @@ static int imx8mp_dw_hdmi_probe(struct platform_device *pdev)
return dev_err_probe(dev, PTR_ERR(hdmi->pixclk),
"Unable to get pixel clock\n");
+ plat_data->output_port = 1;
plat_data->mode_valid = imx8mp_hdmi_mode_valid;
plat_data->phy_ops = &imx8mp_hdmi_phy_ops;
plat_data->phy_name = "SAMSUNG HDMI TX PHY";
--
2.34.1
On Fri, Oct 18, 2024 at 02:48:12PM +0800, Liu Ying wrote: > Set DW HDMI platform data's output_port to 1 in imx8mp_dw_hdmi_probe() > so that dw_hdmi_probe() called by imx8mp_dw_hdmi_probe() can tell the > DW HDMI bridge core driver about the output port we are using, hence > the next bridge can be found in dw_hdmi_parse_dt() according to the port > index, and furthermore the next bridge can be attached to bridge chain in > dw_hdmi_bridge_attach() when the DRM_BRIDGE_ATTACH_NO_CONNECTOR flag is > set. The output_port value aligns to the value used by devicetree. > This is a preparation for making the i.MX8MP LCDIF driver use > drm_bridge_connector which requires the DRM_BRIDGE_ATTACH_NO_CONNECTOR > flag. > > Signed-off-by: Liu Ying <victor.liu@nxp.com> > --- > drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c b/drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c > index 8fcc6d18f4ab..54a53f96929a 100644 > --- a/drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c > +++ b/drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c > @@ -96,6 +96,7 @@ static int imx8mp_dw_hdmi_probe(struct platform_device *pdev) > return dev_err_probe(dev, PTR_ERR(hdmi->pixclk), > "Unable to get pixel clock\n"); > > + plat_data->output_port = 1; This will break compatibility with older DT files, which don't have output port. I think you need to add output_port_optional flag to dw_hdmi_plat_data and still return 0 from dw_hdmi_parse_dt() if the flag is set, but there is no remote node. Last, but not least, this changes behaviour of the connector. dw_hdmi_connector_create() implements CEC support, handles ycbcr_420_allowed, HDR metadata, etc. We are slowly moving towards the supporting all of this in bridge connector via the HDMI Connector framework, but this is not implemented for now. > plat_data->mode_valid = imx8mp_hdmi_mode_valid; > plat_data->phy_ops = &imx8mp_hdmi_phy_ops; > plat_data->phy_name = "SAMSUNG HDMI TX PHY"; > -- > 2.34.1 > -- With best wishes Dmitry
On 10/18/2024, Dmitry Baryshkov wrote: > On Fri, Oct 18, 2024 at 02:48:12PM +0800, Liu Ying wrote: >> Set DW HDMI platform data's output_port to 1 in imx8mp_dw_hdmi_probe() >> so that dw_hdmi_probe() called by imx8mp_dw_hdmi_probe() can tell the >> DW HDMI bridge core driver about the output port we are using, hence >> the next bridge can be found in dw_hdmi_parse_dt() according to the port >> index, and furthermore the next bridge can be attached to bridge chain in >> dw_hdmi_bridge_attach() when the DRM_BRIDGE_ATTACH_NO_CONNECTOR flag is >> set. The output_port value aligns to the value used by devicetree. >> This is a preparation for making the i.MX8MP LCDIF driver use >> drm_bridge_connector which requires the DRM_BRIDGE_ATTACH_NO_CONNECTOR >> flag. >> >> Signed-off-by: Liu Ying <victor.liu@nxp.com> >> --- >> drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c b/drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c >> index 8fcc6d18f4ab..54a53f96929a 100644 >> --- a/drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c >> +++ b/drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c >> @@ -96,6 +96,7 @@ static int imx8mp_dw_hdmi_probe(struct platform_device *pdev) >> return dev_err_probe(dev, PTR_ERR(hdmi->pixclk), >> "Unable to get pixel clock\n"); >> >> + plat_data->output_port = 1; > > This will break compatibility with older DT files, which don't have > output port. I think you need to add output_port_optional flag to > dw_hdmi_plat_data and still return 0 from dw_hdmi_parse_dt() if the flag > is set, but there is no remote node. > > Last, but not least, this changes behaviour of the connector. > dw_hdmi_connector_create() implements CEC support, handles > ycbcr_420_allowed, HDR metadata, etc. > > We are slowly moving towards the supporting all of this in bridge > connector via the HDMI Connector framework, but this is not > implemented for now. Then, it looks like this patch series needs to wait until this is implemented. > >> plat_data->mode_valid = imx8mp_hdmi_mode_valid; >> plat_data->phy_ops = &imx8mp_hdmi_phy_ops; >> plat_data->phy_name = "SAMSUNG HDMI TX PHY"; >> -- >> 2.34.1 >> > -- Regards, Liu Ying
Am Freitag, 18. Oktober 2024, 14:31:20 CEST schrieb Dmitry Baryshkov: > On Fri, Oct 18, 2024 at 02:48:12PM +0800, Liu Ying wrote: > > Set DW HDMI platform data's output_port to 1 in imx8mp_dw_hdmi_probe() > > so that dw_hdmi_probe() called by imx8mp_dw_hdmi_probe() can tell the > > DW HDMI bridge core driver about the output port we are using, hence > > the next bridge can be found in dw_hdmi_parse_dt() according to the port > > index, and furthermore the next bridge can be attached to bridge chain in > > dw_hdmi_bridge_attach() when the DRM_BRIDGE_ATTACH_NO_CONNECTOR flag is > > set. The output_port value aligns to the value used by devicetree. > > This is a preparation for making the i.MX8MP LCDIF driver use > > drm_bridge_connector which requires the DRM_BRIDGE_ATTACH_NO_CONNECTOR > > flag. > > > > Signed-off-by: Liu Ying <victor.liu@nxp.com> > > --- > > drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c b/drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c > > index 8fcc6d18f4ab..54a53f96929a 100644 > > --- a/drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c > > +++ b/drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c > > @@ -96,6 +96,7 @@ static int imx8mp_dw_hdmi_probe(struct platform_device *pdev) > > return dev_err_probe(dev, PTR_ERR(hdmi->pixclk), > > "Unable to get pixel clock\n"); > > > > + plat_data->output_port = 1; > > This will break compatibility with older DT files, which don't have > output port. I think you need to add output_port_optional flag to > dw_hdmi_plat_data and still return 0 from dw_hdmi_parse_dt() if the flag > is set, but there is no remote node. > > Last, but not least, this changes behaviour of the connector. > dw_hdmi_connector_create() implements CEC support, handles > ycbcr_420_allowed, HDR metadata, etc. Mh, I was suspecting the same, but I couldn't see any regression regarding CEC. Maybe the change is not doing what it is supposed to do... I'll check again on Monday. Best regards, Alexander > We are slowly moving towards the supporting all of this in bridge > connector via the HDMI Connector framework, but this is not > implemented for now. > > > plat_data->mode_valid = imx8mp_hdmi_mode_valid; > > plat_data->phy_ops = &imx8mp_hdmi_phy_ops; > > plat_data->phy_name = "SAMSUNG HDMI TX PHY"; > > -- 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/
Hi, Am Freitag, 18. Oktober 2024, 08:48:12 CEST schrieb Liu Ying: > Set DW HDMI platform data's output_port to 1 in imx8mp_dw_hdmi_probe() > so that dw_hdmi_probe() called by imx8mp_dw_hdmi_probe() can tell the > DW HDMI bridge core driver about the output port we are using, hence > the next bridge can be found in dw_hdmi_parse_dt() according to the port > index, and furthermore the next bridge can be attached to bridge chain in > dw_hdmi_bridge_attach() when the DRM_BRIDGE_ATTACH_NO_CONNECTOR flag is > set. The output_port value aligns to the value used by devicetree. > This is a preparation for making the i.MX8MP LCDIF driver use > drm_bridge_connector which requires the DRM_BRIDGE_ATTACH_NO_CONNECTOR > flag. > > Signed-off-by: Liu Ying <victor.liu@nxp.com> Reviewed-by: Alexander Stein <alexander.stein@ew.tq-group.com> > --- > drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c b/drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c > index 8fcc6d18f4ab..54a53f96929a 100644 > --- a/drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c > +++ b/drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c > @@ -96,6 +96,7 @@ static int imx8mp_dw_hdmi_probe(struct platform_device *pdev) > return dev_err_probe(dev, PTR_ERR(hdmi->pixclk), > "Unable to get pixel clock\n"); > > + plat_data->output_port = 1; > plat_data->mode_valid = imx8mp_hdmi_mode_valid; > plat_data->phy_ops = &imx8mp_hdmi_phy_ops; > plat_data->phy_name = "SAMSUNG HDMI TX PHY"; > -- 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/
© 2016 - 2024 Red Hat, Inc.