Message ID | 20241018064813.2750016-5-victor.liu@nxp.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm: lcdif: Use drm_bridge_connector | expand |
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"; >
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 >
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"; > >
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 >> >
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";
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(+)