Message ID | 20240203165307.7806-1-aford173@gmail.com (mailing list archive) |
---|---|
Headers | show |
Series | soc: imx8mp: Add support for HDMI | expand |
Hi, On Sat, 03 Feb 2024 10:52:40 -0600, Adam Ford wrote: > The i.MX8M Plus has an HDMI controller, but it depends on two > other systems, the Parallel Video Interface (PVI) and the > HDMI PHY from Samsung. The LCDIF controller generates the display > and routes it to the PVI which converts passes the parallel video > to the HDMI bridge. The HDMI system has a corresponding power > domain controller whose driver was partially written, but the > device tree for it was never applied, so some changes to the > power domain should be harmless because they've not really been > used yet. > > [...] Thanks, Applied to https://anongit.freedesktop.org/git/drm/drm-misc.git (drm-misc-next) [07/12] dt-bindings: display: imx: add binding for i.MX8MP HDMI PVI https://cgit.freedesktop.org/drm/drm-misc/commit/?id=f490d0cb9360466f6df0def3eccc47fabba9775b [08/12] drm/bridge: imx: add driver for HDMI TX Parallel Video Interface https://cgit.freedesktop.org/drm/drm-misc/commit/?id=059c53e877ca6e723e10490c27c1487a63e66efe
Hi, On Sat, 03 Feb 2024 10:52:40 -0600, Adam Ford wrote: > The i.MX8M Plus has an HDMI controller, but it depends on two > other systems, the Parallel Video Interface (PVI) and the > HDMI PHY from Samsung. The LCDIF controller generates the display > and routes it to the PVI which converts passes the parallel video > to the HDMI bridge. The HDMI system has a corresponding power > domain controller whose driver was partially written, but the > device tree for it was never applied, so some changes to the > power domain should be harmless because they've not really been > used yet. > > [...] Thanks, Applied to https://anongit.freedesktop.org/git/drm/drm-misc.git (drm-misc-next) [09/12] dt-bindings: display: imx: add binding for i.MX8MP HDMI TX https://cgit.freedesktop.org/drm/drm-misc/commit/?id=8933d29e7703f6f905bc84186b915b0ab4fe03bb [10/12] drm/bridge: imx: add bridge wrapper driver for i.MX8MP DWC HDMI https://cgit.freedesktop.org/drm/drm-misc/commit/?id=1f36d634670d8001a45fe2f2dcae546819f9c7d8
>The i.MX8M Plus has an HDMI controller, but it depends on two >other systems, the Parallel Video Interface (PVI) and the >HDMI PHY from Samsung. The LCDIF controller generates the display >and routes it to the PVI which converts passes the parallel video >to the HDMI bridge. The HDMI system has a corresponding power >domain controller whose driver was partially written, but the >device tree for it was never applied, so some changes to the >power domain should be harmless because they've not really been >used yet. >This series is adapted from multiple series from Lucas Stach with >edits and suggestions from feedback from various series, but it >since it's difficult to use and test them independently, >I merged them into on unified series. The version history is a >bit ambiguous since different components were submitted at different times and had different amount of retries. In an effort to merge them >I used the highest version attempt. Tested-by: Joao Paulo Goncalves <joao.goncalves@toradex.com> Tested on Toradex Verdin-iMX8MP. Thanks! Regards, Joao Paulo Goncalves
Hi Adam, Lucas, Thanks for this series. This series make HDMI work on evk. All is working properly on my side. Tested on: Linux imx8mp-lpddr4-evk 6.9.0-rc1. Hope this help. Tested-by: Tommaso Merciai <tomm.merciai@gmail.com> Thanks & Regards, Tommaso On Sat, Feb 03, 2024 at 10:52:40AM -0600, Adam Ford wrote: > The i.MX8M Plus has an HDMI controller, but it depends on two > other systems, the Parallel Video Interface (PVI) and the > HDMI PHY from Samsung. The LCDIF controller generates the display > and routes it to the PVI which converts passes the parallel video > to the HDMI bridge. The HDMI system has a corresponding power > domain controller whose driver was partially written, but the > device tree for it was never applied, so some changes to the > power domain should be harmless because they've not really been > used yet. > > This series is adapted from multiple series from Lucas Stach with > edits and suggestions from feedback from various series, but it > since it's difficult to use and test them independently, > I merged them into on unified series. The version history is a > bit ambiguous since different components were submitted at different > times and had different amount of retries. In an effort to merge them > I used the highest version attempt. > > Adam Ford (3): > dt-bindings: soc: imx: add missing clock and power-domains to > imx8mp-hdmi-blk-ctrl > pmdomain: imx8mp-blk-ctrl: imx8mp_blk: Add fdcc clock to hdmimix > domain > arm64: defconfig: Enable DRM_IMX8MP_DW_HDMI_BRIDGE as module > > Lucas Stach (9): > dt-bindings: phy: add binding for the i.MX8MP HDMI PHY > phy: freescale: add Samsung HDMI PHY > arm64: dts: imx8mp: add HDMI power-domains > arm64: dts: imx8mp: add HDMI irqsteer > dt-bindings: display: imx: add binding for i.MX8MP HDMI PVI > drm/bridge: imx: add driver for HDMI TX Parallel Video Interface > dt-bindings: display: imx: add binding for i.MX8MP HDMI TX > drm/bridge: imx: add bridge wrapper driver for i.MX8MP DWC HDMI > arm64: dts: imx8mp: add HDMI display pipeline > > .../display/bridge/fsl,imx8mp-hdmi-tx.yaml | 102 ++ > .../display/imx/fsl,imx8mp-hdmi-pvi.yaml | 84 ++ > .../bindings/phy/fsl,imx8mp-hdmi-phy.yaml | 62 + > .../soc/imx/fsl,imx8mp-hdmi-blk-ctrl.yaml | 22 +- > arch/arm64/boot/dts/freescale/imx8mp.dtsi | 145 +++ > arch/arm64/configs/defconfig | 1 + > drivers/gpu/drm/bridge/imx/Kconfig | 18 + > drivers/gpu/drm/bridge/imx/Makefile | 2 + > drivers/gpu/drm/bridge/imx/imx8mp-hdmi-pvi.c | 207 ++++ > drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c | 154 +++ > drivers/phy/freescale/Kconfig | 6 + > drivers/phy/freescale/Makefile | 1 + > drivers/phy/freescale/phy-fsl-samsung-hdmi.c | 1075 +++++++++++++++++ > drivers/pmdomain/imx/imx8mp-blk-ctrl.c | 10 +- > 14 files changed, 1876 insertions(+), 13 deletions(-) > create mode 100644 Documentation/devicetree/bindings/display/bridge/fsl,imx8mp-hdmi-tx.yaml > create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8mp-hdmi-pvi.yaml > create mode 100644 Documentation/devicetree/bindings/phy/fsl,imx8mp-hdmi-phy.yaml > create mode 100644 drivers/gpu/drm/bridge/imx/imx8mp-hdmi-pvi.c > create mode 100644 drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c > create mode 100644 drivers/phy/freescale/phy-fsl-samsung-hdmi.c > > -- > 2.43.0 > >
Hi Tommaso, On Mon, Mar 25, 2024 at 10:48:56PM +0100, Tommaso Merciai wrote: > Hi Adam, Lucas, > Thanks for this series. > > This series make HDMI work on evk. > All is working properly on my side. > > Tested on: Linux imx8mp-lpddr4-evk 6.9.0-rc1. > Hope this help. > > Tested-by: Tommaso Merciai <tomm.merciai@gmail.com> The DRM side has been merged already. The only missing patches are for the PHY, and the latest version can be found in https://lore.kernel.org/linux-phy/20240227220444.77566-1-aford173@gmail.com/. You can test that series and send a Tested-by tag. I'm crossing my fingers and hoping it will be merged in v6.10. > On Sat, Feb 03, 2024 at 10:52:40AM -0600, Adam Ford wrote: > > The i.MX8M Plus has an HDMI controller, but it depends on two > > other systems, the Parallel Video Interface (PVI) and the > > HDMI PHY from Samsung. The LCDIF controller generates the display > > and routes it to the PVI which converts passes the parallel video > > to the HDMI bridge. The HDMI system has a corresponding power > > domain controller whose driver was partially written, but the > > device tree for it was never applied, so some changes to the > > power domain should be harmless because they've not really been > > used yet. > > > > This series is adapted from multiple series from Lucas Stach with > > edits and suggestions from feedback from various series, but it > > since it's difficult to use and test them independently, > > I merged them into on unified series. The version history is a > > bit ambiguous since different components were submitted at different > > times and had different amount of retries. In an effort to merge them > > I used the highest version attempt. > > > > Adam Ford (3): > > dt-bindings: soc: imx: add missing clock and power-domains to > > imx8mp-hdmi-blk-ctrl > > pmdomain: imx8mp-blk-ctrl: imx8mp_blk: Add fdcc clock to hdmimix > > domain > > arm64: defconfig: Enable DRM_IMX8MP_DW_HDMI_BRIDGE as module > > > > Lucas Stach (9): > > dt-bindings: phy: add binding for the i.MX8MP HDMI PHY > > phy: freescale: add Samsung HDMI PHY > > arm64: dts: imx8mp: add HDMI power-domains > > arm64: dts: imx8mp: add HDMI irqsteer > > dt-bindings: display: imx: add binding for i.MX8MP HDMI PVI > > drm/bridge: imx: add driver for HDMI TX Parallel Video Interface > > dt-bindings: display: imx: add binding for i.MX8MP HDMI TX > > drm/bridge: imx: add bridge wrapper driver for i.MX8MP DWC HDMI > > arm64: dts: imx8mp: add HDMI display pipeline > > > > .../display/bridge/fsl,imx8mp-hdmi-tx.yaml | 102 ++ > > .../display/imx/fsl,imx8mp-hdmi-pvi.yaml | 84 ++ > > .../bindings/phy/fsl,imx8mp-hdmi-phy.yaml | 62 + > > .../soc/imx/fsl,imx8mp-hdmi-blk-ctrl.yaml | 22 +- > > arch/arm64/boot/dts/freescale/imx8mp.dtsi | 145 +++ > > arch/arm64/configs/defconfig | 1 + > > drivers/gpu/drm/bridge/imx/Kconfig | 18 + > > drivers/gpu/drm/bridge/imx/Makefile | 2 + > > drivers/gpu/drm/bridge/imx/imx8mp-hdmi-pvi.c | 207 ++++ > > drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c | 154 +++ > > drivers/phy/freescale/Kconfig | 6 + > > drivers/phy/freescale/Makefile | 1 + > > drivers/phy/freescale/phy-fsl-samsung-hdmi.c | 1075 +++++++++++++++++ > > drivers/pmdomain/imx/imx8mp-blk-ctrl.c | 10 +- > > 14 files changed, 1876 insertions(+), 13 deletions(-) > > create mode 100644 Documentation/devicetree/bindings/display/bridge/fsl,imx8mp-hdmi-tx.yaml > > create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8mp-hdmi-pvi.yaml > > create mode 100644 Documentation/devicetree/bindings/phy/fsl,imx8mp-hdmi-phy.yaml > > create mode 100644 drivers/gpu/drm/bridge/imx/imx8mp-hdmi-pvi.c > > create mode 100644 drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c > > create mode 100644 drivers/phy/freescale/phy-fsl-samsung-hdmi.c
Hi Laurent, On Tue, Mar 26, 2024 at 12:03:38AM +0200, Laurent Pinchart wrote: > Hi Tommaso, > > On Mon, Mar 25, 2024 at 10:48:56PM +0100, Tommaso Merciai wrote: > > Hi Adam, Lucas, > > Thanks for this series. > > > > This series make HDMI work on evk. > > All is working properly on my side. > > > > Tested on: Linux imx8mp-lpddr4-evk 6.9.0-rc1. > > Hope this help. > > > > Tested-by: Tommaso Merciai <tomm.merciai@gmail.com> > > The DRM side has been merged already. The only missing patches are for > the PHY, and the latest version can be found in > https://lore.kernel.org/linux-phy/20240227220444.77566-1-aford173@gmail.com/. > You can test that series and send a Tested-by tag. I'm crossing my > fingers and hoping it will be merged in v6.10. (same here :) ) Thanks for sharing! :) To be honest I test all this series rebasing my alvium next branch on top of media_stage/master (6.9.0-rc1) All is working properly on my side. I found v8 into the commit msg here: https://patches.linaro.org/project/linux-pm/patch/20240203165307.7806-9-aford173@gmail.com/ then I'm thinking this is the latest. I'm going to switch to your suggestion that looks more recent :) Thanks again, Tommaso > > > On Sat, Feb 03, 2024 at 10:52:40AM -0600, Adam Ford wrote: > > > The i.MX8M Plus has an HDMI controller, but it depends on two > > > other systems, the Parallel Video Interface (PVI) and the > > > HDMI PHY from Samsung. The LCDIF controller generates the display > > > and routes it to the PVI which converts passes the parallel video > > > to the HDMI bridge. The HDMI system has a corresponding power > > > domain controller whose driver was partially written, but the > > > device tree for it was never applied, so some changes to the > > > power domain should be harmless because they've not really been > > > used yet. > > > > > > This series is adapted from multiple series from Lucas Stach with > > > edits and suggestions from feedback from various series, but it > > > since it's difficult to use and test them independently, > > > I merged them into on unified series. The version history is a > > > bit ambiguous since different components were submitted at different > > > times and had different amount of retries. In an effort to merge them > > > I used the highest version attempt. > > > > > > Adam Ford (3): > > > dt-bindings: soc: imx: add missing clock and power-domains to > > > imx8mp-hdmi-blk-ctrl > > > pmdomain: imx8mp-blk-ctrl: imx8mp_blk: Add fdcc clock to hdmimix > > > domain > > > arm64: defconfig: Enable DRM_IMX8MP_DW_HDMI_BRIDGE as module > > > > > > Lucas Stach (9): > > > dt-bindings: phy: add binding for the i.MX8MP HDMI PHY > > > phy: freescale: add Samsung HDMI PHY > > > arm64: dts: imx8mp: add HDMI power-domains > > > arm64: dts: imx8mp: add HDMI irqsteer > > > dt-bindings: display: imx: add binding for i.MX8MP HDMI PVI > > > drm/bridge: imx: add driver for HDMI TX Parallel Video Interface > > > dt-bindings: display: imx: add binding for i.MX8MP HDMI TX > > > drm/bridge: imx: add bridge wrapper driver for i.MX8MP DWC HDMI > > > arm64: dts: imx8mp: add HDMI display pipeline > > > > > > .../display/bridge/fsl,imx8mp-hdmi-tx.yaml | 102 ++ > > > .../display/imx/fsl,imx8mp-hdmi-pvi.yaml | 84 ++ > > > .../bindings/phy/fsl,imx8mp-hdmi-phy.yaml | 62 + > > > .../soc/imx/fsl,imx8mp-hdmi-blk-ctrl.yaml | 22 +- > > > arch/arm64/boot/dts/freescale/imx8mp.dtsi | 145 +++ > > > arch/arm64/configs/defconfig | 1 + > > > drivers/gpu/drm/bridge/imx/Kconfig | 18 + > > > drivers/gpu/drm/bridge/imx/Makefile | 2 + > > > drivers/gpu/drm/bridge/imx/imx8mp-hdmi-pvi.c | 207 ++++ > > > drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c | 154 +++ > > > drivers/phy/freescale/Kconfig | 6 + > > > drivers/phy/freescale/Makefile | 1 + > > > drivers/phy/freescale/phy-fsl-samsung-hdmi.c | 1075 +++++++++++++++++ > > > drivers/pmdomain/imx/imx8mp-blk-ctrl.c | 10 +- > > > 14 files changed, 1876 insertions(+), 13 deletions(-) > > > create mode 100644 Documentation/devicetree/bindings/display/bridge/fsl,imx8mp-hdmi-tx.yaml > > > create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8mp-hdmi-pvi.yaml > > > create mode 100644 Documentation/devicetree/bindings/phy/fsl,imx8mp-hdmi-phy.yaml > > > create mode 100644 drivers/gpu/drm/bridge/imx/imx8mp-hdmi-pvi.c > > > create mode 100644 drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c > > > create mode 100644 drivers/phy/freescale/phy-fsl-samsung-hdmi.c > > -- > Regards, > > Laurent Pinchart
On Tue, Mar 26, 2024 at 2:46 AM Tommaso Merciai <tomm.merciai@gmail.com> wrote: > > Hi Laurent, > > On Tue, Mar 26, 2024 at 12:03:38AM +0200, Laurent Pinchart wrote: > > Hi Tommaso, > > > > On Mon, Mar 25, 2024 at 10:48:56PM +0100, Tommaso Merciai wrote: > > > Hi Adam, Lucas, > > > Thanks for this series. > > > > > > This series make HDMI work on evk. > > > All is working properly on my side. > > > > > > Tested on: Linux imx8mp-lpddr4-evk 6.9.0-rc1. > > > Hope this help. > > > > > > Tested-by: Tommaso Merciai <tomm.merciai@gmail.com> > > > > The DRM side has been merged already. The only missing patches are for > > the PHY, and the latest version can be found in > > https://lore.kernel.org/linux-phy/20240227220444.77566-1-aford173@gmail.com/. > > You can test that series and send a Tested-by tag. I'm crossing my > > fingers and hoping it will be merged in v6.10. > (same here :) ) > > Thanks for sharing! :) > > To be honest I test all this series rebasing my alvium next branch on top of media_stage/master (6.9.0-rc1) > All is working properly on my side. > I found v8 into the commit msg here: https://patches.linaro.org/project/linux-pm/patch/20240203165307.7806-9-aford173@gmail.com/ > then I'm thinking this is the latest. > > I'm going to switch to your suggestion that looks more recent :) Sorry about the confusion. I was confused by the versioning too when I pulled from different parts of Lucas' stuff. Since varying components were applied at different times, and the remaining part was based on the wrong starting point and not applied, I reverted back to the versioning of the PHY which was the only remaining part other than device tree stuff. adam > > Thanks again, > Tommaso > > > > > > On Sat, Feb 03, 2024 at 10:52:40AM -0600, Adam Ford wrote: > > > > The i.MX8M Plus has an HDMI controller, but it depends on two > > > > other systems, the Parallel Video Interface (PVI) and the > > > > HDMI PHY from Samsung. The LCDIF controller generates the display > > > > and routes it to the PVI which converts passes the parallel video > > > > to the HDMI bridge. The HDMI system has a corresponding power > > > > domain controller whose driver was partially written, but the > > > > device tree for it was never applied, so some changes to the > > > > power domain should be harmless because they've not really been > > > > used yet. > > > > > > > > This series is adapted from multiple series from Lucas Stach with > > > > edits and suggestions from feedback from various series, but it > > > > since it's difficult to use and test them independently, > > > > I merged them into on unified series. The version history is a > > > > bit ambiguous since different components were submitted at different > > > > times and had different amount of retries. In an effort to merge them > > > > I used the highest version attempt. > > > > > > > > Adam Ford (3): > > > > dt-bindings: soc: imx: add missing clock and power-domains to > > > > imx8mp-hdmi-blk-ctrl > > > > pmdomain: imx8mp-blk-ctrl: imx8mp_blk: Add fdcc clock to hdmimix > > > > domain > > > > arm64: defconfig: Enable DRM_IMX8MP_DW_HDMI_BRIDGE as module > > > > > > > > Lucas Stach (9): > > > > dt-bindings: phy: add binding for the i.MX8MP HDMI PHY > > > > phy: freescale: add Samsung HDMI PHY > > > > arm64: dts: imx8mp: add HDMI power-domains > > > > arm64: dts: imx8mp: add HDMI irqsteer > > > > dt-bindings: display: imx: add binding for i.MX8MP HDMI PVI > > > > drm/bridge: imx: add driver for HDMI TX Parallel Video Interface > > > > dt-bindings: display: imx: add binding for i.MX8MP HDMI TX > > > > drm/bridge: imx: add bridge wrapper driver for i.MX8MP DWC HDMI > > > > arm64: dts: imx8mp: add HDMI display pipeline > > > > > > > > .../display/bridge/fsl,imx8mp-hdmi-tx.yaml | 102 ++ > > > > .../display/imx/fsl,imx8mp-hdmi-pvi.yaml | 84 ++ > > > > .../bindings/phy/fsl,imx8mp-hdmi-phy.yaml | 62 + > > > > .../soc/imx/fsl,imx8mp-hdmi-blk-ctrl.yaml | 22 +- > > > > arch/arm64/boot/dts/freescale/imx8mp.dtsi | 145 +++ > > > > arch/arm64/configs/defconfig | 1 + > > > > drivers/gpu/drm/bridge/imx/Kconfig | 18 + > > > > drivers/gpu/drm/bridge/imx/Makefile | 2 + > > > > drivers/gpu/drm/bridge/imx/imx8mp-hdmi-pvi.c | 207 ++++ > > > > drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c | 154 +++ > > > > drivers/phy/freescale/Kconfig | 6 + > > > > drivers/phy/freescale/Makefile | 1 + > > > > drivers/phy/freescale/phy-fsl-samsung-hdmi.c | 1075 +++++++++++++++++ > > > > drivers/pmdomain/imx/imx8mp-blk-ctrl.c | 10 +- > > > > 14 files changed, 1876 insertions(+), 13 deletions(-) > > > > create mode 100644 Documentation/devicetree/bindings/display/bridge/fsl,imx8mp-hdmi-tx.yaml > > > > create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8mp-hdmi-pvi.yaml > > > > create mode 100644 Documentation/devicetree/bindings/phy/fsl,imx8mp-hdmi-phy.yaml > > > > create mode 100644 drivers/gpu/drm/bridge/imx/imx8mp-hdmi-pvi.c > > > > create mode 100644 drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c > > > > create mode 100644 drivers/phy/freescale/phy-fsl-samsung-hdmi.c > > > > -- > > Regards, > > > > Laurent Pinchart
Hi Adam, On Tue, Mar 26, 2024 at 06:43:26AM -0500, Adam Ford wrote: > On Tue, Mar 26, 2024 at 2:46 AM Tommaso Merciai <tomm.merciai@gmail.com> wrote: > > > > Hi Laurent, > > > > On Tue, Mar 26, 2024 at 12:03:38AM +0200, Laurent Pinchart wrote: > > > Hi Tommaso, > > > > > > On Mon, Mar 25, 2024 at 10:48:56PM +0100, Tommaso Merciai wrote: > > > > Hi Adam, Lucas, > > > > Thanks for this series. > > > > > > > > This series make HDMI work on evk. > > > > All is working properly on my side. > > > > > > > > Tested on: Linux imx8mp-lpddr4-evk 6.9.0-rc1. > > > > Hope this help. > > > > > > > > Tested-by: Tommaso Merciai <tomm.merciai@gmail.com> > > > > > > The DRM side has been merged already. The only missing patches are for > > > the PHY, and the latest version can be found in > > > https://lore.kernel.org/linux-phy/20240227220444.77566-1-aford173@gmail.com/. > > > You can test that series and send a Tested-by tag. I'm crossing my > > > fingers and hoping it will be merged in v6.10. > > (same here :) ) > > > > Thanks for sharing! :) > > > > To be honest I test all this series rebasing my alvium next branch on top of media_stage/master (6.9.0-rc1) > > All is working properly on my side. > > I found v8 into the commit msg here: https://patches.linaro.org/project/linux-pm/patch/20240203165307.7806-9-aford173@gmail.com/ > > then I'm thinking this is the latest. > > > > I'm going to switch to your suggestion that looks more recent :) > > Sorry about the confusion. I was confused by the versioning too when > I pulled from different parts of Lucas' stuff. Since varying > components were applied at different times, and the remaining part was > based on the wrong starting point and not applied, I reverted back to > the versioning of the PHY which was the only remaining part other than > device tree stuff. No problem, thanks for clarify :) Thanks & Regards, Tommaso > > adam > > > > Thanks again, > > Tommaso > > > > > > > > > On Sat, Feb 03, 2024 at 10:52:40AM -0600, Adam Ford wrote: > > > > > The i.MX8M Plus has an HDMI controller, but it depends on two > > > > > other systems, the Parallel Video Interface (PVI) and the > > > > > HDMI PHY from Samsung. The LCDIF controller generates the display > > > > > and routes it to the PVI which converts passes the parallel video > > > > > to the HDMI bridge. The HDMI system has a corresponding power > > > > > domain controller whose driver was partially written, but the > > > > > device tree for it was never applied, so some changes to the > > > > > power domain should be harmless because they've not really been > > > > > used yet. > > > > > > > > > > This series is adapted from multiple series from Lucas Stach with > > > > > edits and suggestions from feedback from various series, but it > > > > > since it's difficult to use and test them independently, > > > > > I merged them into on unified series. The version history is a > > > > > bit ambiguous since different components were submitted at different > > > > > times and had different amount of retries. In an effort to merge them > > > > > I used the highest version attempt. > > > > > > > > > > Adam Ford (3): > > > > > dt-bindings: soc: imx: add missing clock and power-domains to > > > > > imx8mp-hdmi-blk-ctrl > > > > > pmdomain: imx8mp-blk-ctrl: imx8mp_blk: Add fdcc clock to hdmimix > > > > > domain > > > > > arm64: defconfig: Enable DRM_IMX8MP_DW_HDMI_BRIDGE as module > > > > > > > > > > Lucas Stach (9): > > > > > dt-bindings: phy: add binding for the i.MX8MP HDMI PHY > > > > > phy: freescale: add Samsung HDMI PHY > > > > > arm64: dts: imx8mp: add HDMI power-domains > > > > > arm64: dts: imx8mp: add HDMI irqsteer > > > > > dt-bindings: display: imx: add binding for i.MX8MP HDMI PVI > > > > > drm/bridge: imx: add driver for HDMI TX Parallel Video Interface > > > > > dt-bindings: display: imx: add binding for i.MX8MP HDMI TX > > > > > drm/bridge: imx: add bridge wrapper driver for i.MX8MP DWC HDMI > > > > > arm64: dts: imx8mp: add HDMI display pipeline > > > > > > > > > > .../display/bridge/fsl,imx8mp-hdmi-tx.yaml | 102 ++ > > > > > .../display/imx/fsl,imx8mp-hdmi-pvi.yaml | 84 ++ > > > > > .../bindings/phy/fsl,imx8mp-hdmi-phy.yaml | 62 + > > > > > .../soc/imx/fsl,imx8mp-hdmi-blk-ctrl.yaml | 22 +- > > > > > arch/arm64/boot/dts/freescale/imx8mp.dtsi | 145 +++ > > > > > arch/arm64/configs/defconfig | 1 + > > > > > drivers/gpu/drm/bridge/imx/Kconfig | 18 + > > > > > drivers/gpu/drm/bridge/imx/Makefile | 2 + > > > > > drivers/gpu/drm/bridge/imx/imx8mp-hdmi-pvi.c | 207 ++++ > > > > > drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c | 154 +++ > > > > > drivers/phy/freescale/Kconfig | 6 + > > > > > drivers/phy/freescale/Makefile | 1 + > > > > > drivers/phy/freescale/phy-fsl-samsung-hdmi.c | 1075 +++++++++++++++++ > > > > > drivers/pmdomain/imx/imx8mp-blk-ctrl.c | 10 +- > > > > > 14 files changed, 1876 insertions(+), 13 deletions(-) > > > > > create mode 100644 Documentation/devicetree/bindings/display/bridge/fsl,imx8mp-hdmi-tx.yaml > > > > > create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8mp-hdmi-pvi.yaml > > > > > create mode 100644 Documentation/devicetree/bindings/phy/fsl,imx8mp-hdmi-phy.yaml > > > > > create mode 100644 drivers/gpu/drm/bridge/imx/imx8mp-hdmi-pvi.c > > > > > create mode 100644 drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c > > > > > create mode 100644 drivers/phy/freescale/phy-fsl-samsung-hdmi.c > > > > > > -- > > > Regards, > > > > > > Laurent Pinchart
Hey, We had some problems with the hdmi on the imx8mp and wanted to leave, what we found out about it, somewhere for others to find it. The problem was that our hdmi display sometimes stayed blank after hot plugging and sometimes at startup. On older kernel versions 6.6 we did not have the problem with the not mainlined hdmi patches. We tracked the commit down that introduced the problem for us. It was the following “driver core: Enable fw_devlink=rpm by default” https://lore.kernel.org/lkml/20231113220948.80089-1-saravanak@google.com/ So we switched back to FW_DEVLINK_FLAGS_ON via kernel parameter. Don’t really understand what the problem with RPM is. So, this information is just for reference. Maybe someone has an idea what is going on here. And how to fix the problem in a more proper way. Best regards Johannes
Hi Johannes, On 25.10.24 10:05 AM, mailinglist1@johanneskirchmair.de wrote: > [Sie erhalten nicht häufig E-Mails von mailinglist1@johanneskirchmair.de. Weitere Informationen, warum dies wichtig ist, finden Sie unter https://aka.ms/LearnAboutSenderIdentification ] > > Hey, > We had some problems with the hdmi on the imx8mp and wanted to leave, what we found out about it, somewhere for others to find it. > > The problem was that our hdmi display sometimes stayed blank after hot plugging and sometimes at startup. On older kernel versions 6.6 we did not have the problem with the not mainlined hdmi patches. > We tracked the commit down that introduced the problem for us. It was the following “driver core: Enable fw_devlink=rpm by default” https://lore.kernel.org/lkml/20231113220948.80089-1-saravanak@google.com/ > So we switched back to FW_DEVLINK_FLAGS_ON via kernel parameter. Don’t really understand what the problem with RPM is. > > So, this information is just for reference. Maybe someone has an idea what is going on here. And how to fix the problem in a more proper way. Thanks for investigating and sharing your results! I'm seeing the same symptoms and previously found out that this is related to LCDIF underrun errors. See [1] for more information. Adam has also started this thread: [2]. Anyway, knowing that this is related to fw_devlink=rpm is really helpful. I just tried with fw_devlink=on and wasn't able to see any issues anymore. So this confirms your findings. I hope that some of the driver framework and runtime PM experts can help to find out what is actually wrong and how the correct fix might look like. I'm also CC-ing Saravana who authored the change from fw_devlink=on to fw_devlink=rpm to see if they have anything to add. Thanks Frieder [1] https://patchwork.kernel.org/project/linux-phy/cover/20240904233100.114611-1-aford173@gmail.com/#26014057 [2] https://lore.kernel.org/imx/8cfd3052-c85a-4235-b9b8-6d2929e9e455@kontron.de/T/
On Wed, Oct 30, 2024 at 4:01 AM Frieder Schrempf <frieder.schrempf@kontron.de> wrote: > > Hi Johannes, > > On 25.10.24 10:05 AM, mailinglist1@johanneskirchmair.de wrote: > > [Sie erhalten nicht häufig E-Mails von mailinglist1@johanneskirchmair.de. Weitere Informationen, warum dies wichtig ist, finden Sie unter https://aka.ms/LearnAboutSenderIdentification ] > > > > Hey, > > We had some problems with the hdmi on the imx8mp and wanted to leave, what we found out about it, somewhere for others to find it. > > > > The problem was that our hdmi display sometimes stayed blank after hot plugging and sometimes at startup. On older kernel versions 6.6 we did not have the problem with the not mainlined hdmi patches. > > We tracked the commit down that introduced the problem for us. It was the following “driver core: Enable fw_devlink=rpm by default” https://lore.kernel.org/lkml/20231113220948.80089-1-saravanak@google.com/ > > So we switched back to FW_DEVLINK_FLAGS_ON via kernel parameter. Don’t really understand what the problem with RPM is. > > > > So, this information is just for reference. Maybe someone has an idea what is going on here. And how to fix the problem in a more proper way. > > Thanks for investigating and sharing your results! > > I'm seeing the same symptoms and previously found out that this is > related to LCDIF underrun errors. See [1] for more information. > > Adam has also started this thread: [2]. > > Anyway, knowing that this is related to fw_devlink=rpm is really > helpful. I just tried with fw_devlink=on and wasn't able to see any > issues anymore. So this confirms your findings. I was off in the weeds thinking there was something wrong in timing and/or a race condition around the PLL or something. This is good news. Please forgive my ignorance, what does fw_devlink do? Is there something we can do in the driver itself to force its behavior? adam > > I hope that some of the driver framework and runtime PM experts can help > to find out what is actually wrong and how the correct fix might look like. > > I'm also CC-ing Saravana who authored the change from fw_devlink=on to > fw_devlink=rpm to see if they have anything to add. > > Thanks > Frieder > > [1] > https://patchwork.kernel.org/project/linux-phy/cover/20240904233100.114611-1-aford173@gmail.com/#26014057 > [2] > https://lore.kernel.org/imx/8cfd3052-c85a-4235-b9b8-6d2929e9e455@kontron.de/T/
On Wed, Oct 30, 2024 at 10:28 AM Adam Ford <aford173@gmail.com> wrote: > > On Wed, Oct 30, 2024 at 4:01 AM Frieder Schrempf > <frieder.schrempf@kontron.de> wrote: > > > > Hi Johannes, > > > > On 25.10.24 10:05 AM, mailinglist1@johanneskirchmair.de wrote: > > > [Sie erhalten nicht häufig E-Mails von mailinglist1@johanneskirchmair.de. Weitere Informationen, warum dies wichtig ist, finden Sie unter https://aka.ms/LearnAboutSenderIdentification ] > > > > > > Hey, > > > We had some problems with the hdmi on the imx8mp and wanted to leave, what we found out about it, somewhere for others to find it. > > > > > > The problem was that our hdmi display sometimes stayed blank after hot plugging and sometimes at startup. On older kernel versions 6.6 we did not have the problem with the not mainlined hdmi patches. > > > We tracked the commit down that introduced the problem for us. It was the following “driver core: Enable fw_devlink=rpm by default” https://lore.kernel.org/lkml/20231113220948.80089-1-saravanak@google.com/ > > > So we switched back to FW_DEVLINK_FLAGS_ON via kernel parameter. Don’t really understand what the problem with RPM is. > > > > > > So, this information is just for reference. Maybe someone has an idea what is going on here. And how to fix the problem in a more proper way. > > > > Thanks for investigating and sharing your results! > > > > I'm seeing the same symptoms and previously found out that this is > > related to LCDIF underrun errors. See [1] for more information. > > > > Adam has also started this thread: [2]. > > > > Anyway, knowing that this is related to fw_devlink=rpm is really > > helpful. I just tried with fw_devlink=on and wasn't able to see any > > issues anymore. So this confirms your findings. > > I was off in the weeds thinking there was something wrong in timing > and/or a race condition around the PLL or something. This is good > news. > Please forgive my ignorance, what does fw_devlink do? Is there > something we can do in the driver itself to force its behavior? fw_devlink figures out supplier/consumer dependencies between devices and creates device links between them. This ensures proper probe/suspend/resume/shutdown/runtime PM ordering. fw_devlink=rpm vs on means "enforce all of these" vs "enforce all of these except runtime PM". > adam > > > > I hope that some of the driver framework and runtime PM experts can help > > to find out what is actually wrong and how the correct fix might look like. > > > > I'm also CC-ing Saravana who authored the change from fw_devlink=on to > > fw_devlink=rpm to see if they have anything to add. When fw_devlink=rpm, you'll have device links created between consumers and suppliers with the DL_FLAG_PM_RUNTIME flag set. So before your device is runtime resumed, it'll make sure all your suppliers are resumed first. My guess is that there is some issue in the runtime PM handling in these drivers. I don't have enough context to provide further insight. -Saravana > > > > Thanks > > Frieder > > > > [1] > > https://patchwork.kernel.org/project/linux-phy/cover/20240904233100.114611-1-aford173@gmail.com/#26014057 > > [2] > > https://lore.kernel.org/imx/8cfd3052-c85a-4235-b9b8-6d2929e9e455@kontron.de/T/