Message ID | 20241231192925.97614-2-marex@denx.de (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [v3,1/4] drm: bridge: dw_hdmi: Add flag to indicate output port is optional | expand |
On Tue, Dec 31, 2024 at 08:28:49PM +0100, Marek Vasut wrote: > The dw-hdmi output_port is set to 1 in order to look for a connector > next bridge in order to get DRM_BRIDGE_ATTACH_NO_CONNECTOR working. > The output_port set to 1 makes the DW HDMI driver core look up the > next bridge in DT, where the next bridge is often the hdmi-connector . > > Similar to 0af5e0b41110 ("drm/meson: encoder_hdmi: switch to bridge DRM_BRIDGE_ATTACH_NO_CONNECTOR") > > Note that looking at the upstream arch/arm64/boot/dts/freescale/imx8mp*dts , > the oldest commit which adds HDMI support is commit: > > 3e67a1ddd56d ("arm64: dts: imx8mp: Enable HDMI on TQMa8MPxL/MBa8MPxL") > > That already contains the HDMI connector node. Most follow up additions > of HDMI support to another devices has been a variation of the same commit, > including connector node, which is the proper way of eanbling HDMI on the > i.MX8MP. > > The rest should be covered by output_port_optional which should make systems > with DTs without HDMI connector node work, but such DTs should be updated and > the HDMI connector node should be added. > > Signed-off-by: Marek Vasut <marex@denx.de> > --- > Cc: Andrzej Hajda <andrzej.hajda@intel.com> > Cc: David Airlie <airlied@gmail.com> > Cc: Fabio Estevam <festevam@gmail.com> > Cc: Jernej Skrabec <jernej.skrabec@gmail.com> > Cc: Jonas Karlman <jonas@kwiboo.se> > Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com> > Cc: Liu Ying <victor.liu@nxp.com> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > Cc: Maxime Ripard <mripard@kernel.org> > Cc: Neil Armstrong <neil.armstrong@linaro.org> > Cc: Pengutronix Kernel Team <kernel@pengutronix.de> > Cc: Robert Foss <rfoss@kernel.org> > Cc: Sascha Hauer <s.hauer@pengutronix.de> > Cc: Shawn Guo <shawnguo@kernel.org> > Cc: Simona Vetter <simona@ffwll.ch> > Cc: Stefan Agner <stefan@agner.ch> > Cc: Thomas Zimmermann <tzimmermann@suse.de> > Cc: dri-devel@lists.freedesktop.org > Cc: imx@lists.linux.dev > Cc: linux-arm-kernel@lists.infradead.org > --- > V2: No change > V3: - Update commit message > - Move select DRM_DISPLAY_CONNECTOR to DRM_IMX8MP_DW_HDMI_BRIDGE > - Enable output_port_optional > --- > drivers/gpu/drm/bridge/imx/Kconfig | 1 + > drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c | 2 ++ > 2 files changed, 3 insertions(+) > > diff --git a/drivers/gpu/drm/bridge/imx/Kconfig b/drivers/gpu/drm/bridge/imx/Kconfig > index 9a480c6abb856..db5c8a76193ac 100644 > --- a/drivers/gpu/drm/bridge/imx/Kconfig > +++ b/drivers/gpu/drm/bridge/imx/Kconfig > @@ -17,6 +17,7 @@ config DRM_IMX8MP_DW_HDMI_BRIDGE > tristate "Freescale i.MX8MP HDMI-TX bridge support" > depends on OF > depends on COMMON_CLK > + select DRM_DISPLAY_CONNECTOR I was going to write that it is not to be selected by anybody, but then I stumbled upon meson driver, which also selects the symbol. I still think that it is not to be selected by your driver as there is no direct dependency (and there can be other bridges inbetween or the bridge chain can end up with some other bridge). Such decisions belong to defconfig or distribution's kernel config file. > select DRM_DW_HDMI > imply DRM_IMX8MP_HDMI_PVI > imply PHY_FSL_SAMSUNG_HDMI_PHY > diff --git a/drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c b/drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c > index 1e7a789ec2890..3d63200e468bf 100644 > --- a/drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c > +++ b/drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c > @@ -101,6 +101,8 @@ static int imx8mp_dw_hdmi_probe(struct platform_device *pdev) > plat_data->phy_name = "SAMSUNG HDMI TX PHY"; > plat_data->priv_data = hdmi; > plat_data->phy_force_vendor = true; > + plat_data->output_port = 1; > + plat_data->output_port_optional = true; > > hdmi->dw_hdmi = dw_hdmi_probe(pdev, plat_data); > if (IS_ERR(hdmi->dw_hdmi)) > -- > 2.45.2 >
On 1/2/25 5:55 AM, Dmitry Baryshkov wrote: > On Tue, Dec 31, 2024 at 08:28:49PM +0100, Marek Vasut wrote: >> The dw-hdmi output_port is set to 1 in order to look for a connector >> next bridge in order to get DRM_BRIDGE_ATTACH_NO_CONNECTOR working. >> The output_port set to 1 makes the DW HDMI driver core look up the >> next bridge in DT, where the next bridge is often the hdmi-connector . >> >> Similar to 0af5e0b41110 ("drm/meson: encoder_hdmi: switch to bridge DRM_BRIDGE_ATTACH_NO_CONNECTOR") >> >> Note that looking at the upstream arch/arm64/boot/dts/freescale/imx8mp*dts , >> the oldest commit which adds HDMI support is commit: >> >> 3e67a1ddd56d ("arm64: dts: imx8mp: Enable HDMI on TQMa8MPxL/MBa8MPxL") >> >> That already contains the HDMI connector node. Most follow up additions >> of HDMI support to another devices has been a variation of the same commit, >> including connector node, which is the proper way of eanbling HDMI on the >> i.MX8MP. >> >> The rest should be covered by output_port_optional which should make systems >> with DTs without HDMI connector node work, but such DTs should be updated and >> the HDMI connector node should be added. >> >> Signed-off-by: Marek Vasut <marex@denx.de> >> --- >> Cc: Andrzej Hajda <andrzej.hajda@intel.com> >> Cc: David Airlie <airlied@gmail.com> >> Cc: Fabio Estevam <festevam@gmail.com> >> Cc: Jernej Skrabec <jernej.skrabec@gmail.com> >> Cc: Jonas Karlman <jonas@kwiboo.se> >> Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com> >> Cc: Liu Ying <victor.liu@nxp.com> >> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> >> Cc: Maxime Ripard <mripard@kernel.org> >> Cc: Neil Armstrong <neil.armstrong@linaro.org> >> Cc: Pengutronix Kernel Team <kernel@pengutronix.de> >> Cc: Robert Foss <rfoss@kernel.org> >> Cc: Sascha Hauer <s.hauer@pengutronix.de> >> Cc: Shawn Guo <shawnguo@kernel.org> >> Cc: Simona Vetter <simona@ffwll.ch> >> Cc: Stefan Agner <stefan@agner.ch> >> Cc: Thomas Zimmermann <tzimmermann@suse.de> >> Cc: dri-devel@lists.freedesktop.org >> Cc: imx@lists.linux.dev >> Cc: linux-arm-kernel@lists.infradead.org >> --- >> V2: No change >> V3: - Update commit message >> - Move select DRM_DISPLAY_CONNECTOR to DRM_IMX8MP_DW_HDMI_BRIDGE >> - Enable output_port_optional >> --- >> drivers/gpu/drm/bridge/imx/Kconfig | 1 + >> drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c | 2 ++ >> 2 files changed, 3 insertions(+) >> >> diff --git a/drivers/gpu/drm/bridge/imx/Kconfig b/drivers/gpu/drm/bridge/imx/Kconfig >> index 9a480c6abb856..db5c8a76193ac 100644 >> --- a/drivers/gpu/drm/bridge/imx/Kconfig >> +++ b/drivers/gpu/drm/bridge/imx/Kconfig >> @@ -17,6 +17,7 @@ config DRM_IMX8MP_DW_HDMI_BRIDGE >> tristate "Freescale i.MX8MP HDMI-TX bridge support" >> depends on OF >> depends on COMMON_CLK >> + select DRM_DISPLAY_CONNECTOR > > I was going to write that it is not to be selected by anybody, but then > I stumbled upon meson driver, which also selects the symbol. > > I still think that it is not to be selected by your driver as there is > no direct dependency (and there can be other bridges inbetween or the > bridge chain can end up with some other bridge). Such decisions belong > to defconfig or distribution's kernel config file. Wouldn't that only lead to unnecessary surprises on user side ?
On Fri, Jan 03, 2025 at 12:22:34AM +0100, Marek Vasut wrote: > On 1/2/25 5:55 AM, Dmitry Baryshkov wrote: > > On Tue, Dec 31, 2024 at 08:28:49PM +0100, Marek Vasut wrote: > > > The dw-hdmi output_port is set to 1 in order to look for a connector > > > next bridge in order to get DRM_BRIDGE_ATTACH_NO_CONNECTOR working. > > > The output_port set to 1 makes the DW HDMI driver core look up the > > > next bridge in DT, where the next bridge is often the hdmi-connector . > > > > > > Similar to 0af5e0b41110 ("drm/meson: encoder_hdmi: switch to bridge DRM_BRIDGE_ATTACH_NO_CONNECTOR") > > > > > > Note that looking at the upstream arch/arm64/boot/dts/freescale/imx8mp*dts , > > > the oldest commit which adds HDMI support is commit: > > > > > > 3e67a1ddd56d ("arm64: dts: imx8mp: Enable HDMI on TQMa8MPxL/MBa8MPxL") > > > > > > That already contains the HDMI connector node. Most follow up additions > > > of HDMI support to another devices has been a variation of the same commit, > > > including connector node, which is the proper way of eanbling HDMI on the > > > i.MX8MP. > > > > > > The rest should be covered by output_port_optional which should make systems > > > with DTs without HDMI connector node work, but such DTs should be updated and > > > the HDMI connector node should be added. > > > > > > Signed-off-by: Marek Vasut <marex@denx.de> > > > --- > > > Cc: Andrzej Hajda <andrzej.hajda@intel.com> > > > Cc: David Airlie <airlied@gmail.com> > > > Cc: Fabio Estevam <festevam@gmail.com> > > > Cc: Jernej Skrabec <jernej.skrabec@gmail.com> > > > Cc: Jonas Karlman <jonas@kwiboo.se> > > > Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com> > > > Cc: Liu Ying <victor.liu@nxp.com> > > > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > > > Cc: Maxime Ripard <mripard@kernel.org> > > > Cc: Neil Armstrong <neil.armstrong@linaro.org> > > > Cc: Pengutronix Kernel Team <kernel@pengutronix.de> > > > Cc: Robert Foss <rfoss@kernel.org> > > > Cc: Sascha Hauer <s.hauer@pengutronix.de> > > > Cc: Shawn Guo <shawnguo@kernel.org> > > > Cc: Simona Vetter <simona@ffwll.ch> > > > Cc: Stefan Agner <stefan@agner.ch> > > > Cc: Thomas Zimmermann <tzimmermann@suse.de> > > > Cc: dri-devel@lists.freedesktop.org > > > Cc: imx@lists.linux.dev > > > Cc: linux-arm-kernel@lists.infradead.org > > > --- > > > V2: No change > > > V3: - Update commit message > > > - Move select DRM_DISPLAY_CONNECTOR to DRM_IMX8MP_DW_HDMI_BRIDGE > > > - Enable output_port_optional > > > --- > > > drivers/gpu/drm/bridge/imx/Kconfig | 1 + > > > drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c | 2 ++ > > > 2 files changed, 3 insertions(+) > > > > > > diff --git a/drivers/gpu/drm/bridge/imx/Kconfig b/drivers/gpu/drm/bridge/imx/Kconfig > > > index 9a480c6abb856..db5c8a76193ac 100644 > > > --- a/drivers/gpu/drm/bridge/imx/Kconfig > > > +++ b/drivers/gpu/drm/bridge/imx/Kconfig > > > @@ -17,6 +17,7 @@ config DRM_IMX8MP_DW_HDMI_BRIDGE > > > tristate "Freescale i.MX8MP HDMI-TX bridge support" > > > depends on OF > > > depends on COMMON_CLK > > > + select DRM_DISPLAY_CONNECTOR > > > > I was going to write that it is not to be selected by anybody, but then > > I stumbled upon meson driver, which also selects the symbol. > > > > I still think that it is not to be selected by your driver as there is > > no direct dependency (and there can be other bridges inbetween or the > > bridge chain can end up with some other bridge). Such decisions belong > > to defconfig or distribution's kernel config file. > Wouldn't that only lead to unnecessary surprises on user side ? This is of no concerns to Kconfig. You can't select all drivers that can possibly be used with your platform / driver. `git grep DRM_DISPLAY_CONNECTOR`.
On 01/01/2025, Marek Vasut wrote: > The dw-hdmi output_port is set to 1 in order to look for a connector > next bridge in order to get DRM_BRIDGE_ATTACH_NO_CONNECTOR working. > The output_port set to 1 makes the DW HDMI driver core look up the > next bridge in DT, where the next bridge is often the hdmi-connector . > > Similar to 0af5e0b41110 ("drm/meson: encoder_hdmi: switch to bridge DRM_BRIDGE_ATTACH_NO_CONNECTOR") > > Note that looking at the upstream arch/arm64/boot/dts/freescale/imx8mp*dts , > the oldest commit which adds HDMI support is commit: > > 3e67a1ddd56d ("arm64: dts: imx8mp: Enable HDMI on TQMa8MPxL/MBa8MPxL") > > That already contains the HDMI connector node. Most follow up additions > of HDMI support to another devices has been a variation of the same commit, > including connector node, which is the proper way of eanbling HDMI on the > i.MX8MP. > > The rest should be covered by output_port_optional which should make systems > with DTs without HDMI connector node work, but such DTs should be updated and > the HDMI connector node should be added. > > Signed-off-by: Marek Vasut <marex@denx.de> > --- > Cc: Andrzej Hajda <andrzej.hajda@intel.com> > Cc: David Airlie <airlied@gmail.com> > Cc: Fabio Estevam <festevam@gmail.com> > Cc: Jernej Skrabec <jernej.skrabec@gmail.com> > Cc: Jonas Karlman <jonas@kwiboo.se> > Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com> > Cc: Liu Ying <victor.liu@nxp.com> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > Cc: Maxime Ripard <mripard@kernel.org> > Cc: Neil Armstrong <neil.armstrong@linaro.org> > Cc: Pengutronix Kernel Team <kernel@pengutronix.de> > Cc: Robert Foss <rfoss@kernel.org> > Cc: Sascha Hauer <s.hauer@pengutronix.de> > Cc: Shawn Guo <shawnguo@kernel.org> > Cc: Simona Vetter <simona@ffwll.ch> > Cc: Stefan Agner <stefan@agner.ch> > Cc: Thomas Zimmermann <tzimmermann@suse.de> > Cc: dri-devel@lists.freedesktop.org > Cc: imx@lists.linux.dev > Cc: linux-arm-kernel@lists.infradead.org > --- > V2: No change > V3: - Update commit message > - Move select DRM_DISPLAY_CONNECTOR to DRM_IMX8MP_DW_HDMI_BRIDGE > - Enable output_port_optional > --- > drivers/gpu/drm/bridge/imx/Kconfig | 1 + > drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c | 2 ++ > 2 files changed, 3 insertions(+) > > diff --git a/drivers/gpu/drm/bridge/imx/Kconfig b/drivers/gpu/drm/bridge/imx/Kconfig > index 9a480c6abb856..db5c8a76193ac 100644 > --- a/drivers/gpu/drm/bridge/imx/Kconfig > +++ b/drivers/gpu/drm/bridge/imx/Kconfig > @@ -17,6 +17,7 @@ config DRM_IMX8MP_DW_HDMI_BRIDGE > tristate "Freescale i.MX8MP HDMI-TX bridge support" > depends on OF > depends on COMMON_CLK > + select DRM_DISPLAY_CONNECTOR > select DRM_DW_HDMI > imply DRM_IMX8MP_HDMI_PVI > imply PHY_FSL_SAMSUNG_HDMI_PHY > diff --git a/drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c b/drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c > index 1e7a789ec2890..3d63200e468bf 100644 > --- a/drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c > +++ b/drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c > @@ -101,6 +101,8 @@ static int imx8mp_dw_hdmi_probe(struct platform_device *pdev) > plat_data->phy_name = "SAMSUNG HDMI TX PHY"; > plat_data->priv_data = hdmi; > plat_data->phy_force_vendor = true; > + plat_data->output_port = 1; I mentioned Dmitry's comments in my reply on v2: https://lore.kernel.org/all/vvsj6ri2ke25nzocbq736yv7rphzma6pn3yk2uh7iu43zfe2sa@2fwye4k4w6he/ It looks like your patch set still fails to keep the behaviour of dw_hdmi_connector_create() as part of those comments. Note that it won't be called when the connector is created by the display controller drivers. CEC is impacted at least in theory and Alexander tried to test it with my previous patch set. > + plat_data->output_port_optional = true; > > hdmi->dw_hdmi = dw_hdmi_probe(pdev, plat_data); > if (IS_ERR(hdmi->dw_hdmi))
diff --git a/drivers/gpu/drm/bridge/imx/Kconfig b/drivers/gpu/drm/bridge/imx/Kconfig index 9a480c6abb856..db5c8a76193ac 100644 --- a/drivers/gpu/drm/bridge/imx/Kconfig +++ b/drivers/gpu/drm/bridge/imx/Kconfig @@ -17,6 +17,7 @@ config DRM_IMX8MP_DW_HDMI_BRIDGE tristate "Freescale i.MX8MP HDMI-TX bridge support" depends on OF depends on COMMON_CLK + select DRM_DISPLAY_CONNECTOR select DRM_DW_HDMI imply DRM_IMX8MP_HDMI_PVI imply PHY_FSL_SAMSUNG_HDMI_PHY diff --git a/drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c b/drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c index 1e7a789ec2890..3d63200e468bf 100644 --- a/drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c +++ b/drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c @@ -101,6 +101,8 @@ static int imx8mp_dw_hdmi_probe(struct platform_device *pdev) plat_data->phy_name = "SAMSUNG HDMI TX PHY"; plat_data->priv_data = hdmi; plat_data->phy_force_vendor = true; + plat_data->output_port = 1; + plat_data->output_port_optional = true; hdmi->dw_hdmi = dw_hdmi_probe(pdev, plat_data); if (IS_ERR(hdmi->dw_hdmi))
The dw-hdmi output_port is set to 1 in order to look for a connector next bridge in order to get DRM_BRIDGE_ATTACH_NO_CONNECTOR working. The output_port set to 1 makes the DW HDMI driver core look up the next bridge in DT, where the next bridge is often the hdmi-connector . Similar to 0af5e0b41110 ("drm/meson: encoder_hdmi: switch to bridge DRM_BRIDGE_ATTACH_NO_CONNECTOR") Note that looking at the upstream arch/arm64/boot/dts/freescale/imx8mp*dts , the oldest commit which adds HDMI support is commit: 3e67a1ddd56d ("arm64: dts: imx8mp: Enable HDMI on TQMa8MPxL/MBa8MPxL") That already contains the HDMI connector node. Most follow up additions of HDMI support to another devices has been a variation of the same commit, including connector node, which is the proper way of eanbling HDMI on the i.MX8MP. The rest should be covered by output_port_optional which should make systems with DTs without HDMI connector node work, but such DTs should be updated and the HDMI connector node should be added. Signed-off-by: Marek Vasut <marex@denx.de> --- Cc: Andrzej Hajda <andrzej.hajda@intel.com> Cc: David Airlie <airlied@gmail.com> Cc: Fabio Estevam <festevam@gmail.com> Cc: Jernej Skrabec <jernej.skrabec@gmail.com> Cc: Jonas Karlman <jonas@kwiboo.se> Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com> Cc: Liu Ying <victor.liu@nxp.com> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Maxime Ripard <mripard@kernel.org> Cc: Neil Armstrong <neil.armstrong@linaro.org> Cc: Pengutronix Kernel Team <kernel@pengutronix.de> Cc: Robert Foss <rfoss@kernel.org> Cc: Sascha Hauer <s.hauer@pengutronix.de> Cc: Shawn Guo <shawnguo@kernel.org> Cc: Simona Vetter <simona@ffwll.ch> Cc: Stefan Agner <stefan@agner.ch> Cc: Thomas Zimmermann <tzimmermann@suse.de> Cc: dri-devel@lists.freedesktop.org Cc: imx@lists.linux.dev Cc: linux-arm-kernel@lists.infradead.org --- V2: No change V3: - Update commit message - Move select DRM_DISPLAY_CONNECTOR to DRM_IMX8MP_DW_HDMI_BRIDGE - Enable output_port_optional --- drivers/gpu/drm/bridge/imx/Kconfig | 1 + drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c | 2 ++ 2 files changed, 3 insertions(+)