mbox series

[v5,00/11] drm: bridge: Add Samsung MIPI DSIM bridge

Message ID 20220916181731.89764-1-jagan@amarulasolutions.com
Headers show
Series drm: bridge: Add Samsung MIPI DSIM bridge | expand

Message

Jagan Teki Sept. 16, 2022, 6:17 p.m. UTC
This series supports common bridge support for Samsung MIPI DSIM
which is used in Exynos and i.MX8MM SoC's.

Previous v4 can be available here [1], repo on linux-next [2] and
Engicam i.Core MX8M Mini SoM boot log [3].

The final bridge supports both the Exynos and i.MX8MM DSI devices.

Changes for v3:
* bridge changes to support multi-arch
* updated and clear commit messages
* add hw_type via plat data
* removed unneeded quirk
* rebased on linux-next

Changes for v4:
* include Inki Dae in MAINTAINERS
* remove dsi_driver probe in exynos_drm_drv to support multi-arch build
* update init handling to ensure host init done on first cmd transfer

Changes for v3:
* fix the mult-arch build
* fix dsi host init
* updated commit messages

Changes for v2:
* fix bridge handling
* fix dsi host init
* correct the commit messages

Patch 0001:	Restore proper bridge chain in exynos_dsi

Patch 0002: 	Samsung DSIM bridge

Patch 0003:	PHY optional

Patch 0004:	OF-graph or Child node lookup

Patch 0005: 	DSI host initialization 

Patch 0006:	atomic check

Patch 0007:	PMS_P offset via plat data

Patch 0008:	atomic_get_input_bus_fmts

Patch 0009:	input_bus_flags

Patch 0010:	document fsl,imx8mm-mipi-dsim

Patch 0011:	add i.MX8MM DSIM support

[3] https://gist.github.com/openedev/22b2d63b30ade0ba55ab414a2f47aaf0
[2] https://github.com/openedev/kernel/tree/imx8mm-dsi-v5
[1] https://patchwork.kernel.org/project/dri-devel/cover/20220829184031.1863663-1-jagan@amarulasolutions.com/

Any inputs?
Jagan.

Jagan Teki (10):
  drm: bridge: Add Samsung DSIM bridge driver
  drm: bridge: samsung-dsim: Lookup OF-graph or Child node devices
  drm: bridge: samsung-dsim: Mark PHY as optional
  drm: bridge: samsung-dsim: Handle proper DSI host initialization
  drm: bridge: samsung-dsim: Add atomic_check
  drm: bridge: samsung-dsim: Add platform PLL_P (PMS_P) offset
  drm: bridge: samsung-dsim: Add atomic_get_input_bus_fmts
  drm: bridge: samsung-dsim: Add input_bus_flags
  dt-bindings: display: exynos: dsim: Add NXP i.MX8MM support
  drm: bridge: samsung-dsim: Add i.MX8MM support

Marek Szyprowski (1):
  drm: exynos: dsi: Restore proper bridge chain order

 .../bindings/display/exynos/exynos_dsim.txt   |    1 +
 MAINTAINERS                                   |    9 +
 drivers/gpu/drm/bridge/Kconfig                |   12 +
 drivers/gpu/drm/bridge/Makefile               |    1 +
 drivers/gpu/drm/bridge/samsung-dsim.c         | 1840 +++++++++++++++++
 drivers/gpu/drm/exynos/Kconfig                |    1 +
 drivers/gpu/drm/exynos/exynos_drm_dsi.c       | 1766 +---------------
 include/drm/bridge/samsung-dsim.h             |  115 ++
 8 files changed, 2092 insertions(+), 1653 deletions(-)
 create mode 100644 drivers/gpu/drm/bridge/samsung-dsim.c
 create mode 100644 include/drm/bridge/samsung-dsim.h

Comments

Tim Harvey Sept. 19, 2022, 9:43 p.m. UTC | #1
On Fri, Sep 16, 2022 at 11:18 AM Jagan Teki <jagan@amarulasolutions.com> wrote:
>
> This series supports common bridge support for Samsung MIPI DSIM
> which is used in Exynos and i.MX8MM SoC's.
>
> Previous v4 can be available here [1], repo on linux-next [2] and
> Engicam i.Core MX8M Mini SoM boot log [3].
>
> The final bridge supports both the Exynos and i.MX8MM DSI devices.
>
> Changes for v3:
> * bridge changes to support multi-arch
> * updated and clear commit messages
> * add hw_type via plat data
> * removed unneeded quirk
> * rebased on linux-next
>
> Changes for v4:
> * include Inki Dae in MAINTAINERS
> * remove dsi_driver probe in exynos_drm_drv to support multi-arch build
> * update init handling to ensure host init done on first cmd transfer
>
> Changes for v3:
> * fix the mult-arch build
> * fix dsi host init
> * updated commit messages
>
> Changes for v2:
> * fix bridge handling
> * fix dsi host init
> * correct the commit messages
>
> Patch 0001:     Restore proper bridge chain in exynos_dsi
>
> Patch 0002:     Samsung DSIM bridge
>
> Patch 0003:     PHY optional
>
> Patch 0004:     OF-graph or Child node lookup
>
> Patch 0005:     DSI host initialization
>
> Patch 0006:     atomic check
>
> Patch 0007:     PMS_P offset via plat data
>
> Patch 0008:     atomic_get_input_bus_fmts
>
> Patch 0009:     input_bus_flags
>
> Patch 0010:     document fsl,imx8mm-mipi-dsim
>
> Patch 0011:     add i.MX8MM DSIM support
>
> [3] https://gist.github.com/openedev/22b2d63b30ade0ba55ab414a2f47aaf0
> [2] https://github.com/openedev/kernel/tree/imx8mm-dsi-v5

Jagan,

I would like to try out this latest series a board I have here. It
looks like perhaps you did not push this imx8mm-dsi-v5 branch?

Best Regards,

Tim

> [1] https://patchwork.kernel.org/project/dri-devel/cover/20220829184031.1863663-1-jagan@amarulasolutions.com/
>
Marek Szyprowski Sept. 23, 2022, 7:34 a.m. UTC | #2
On 16.09.2022 20:17, Jagan Teki wrote:
> This series supports common bridge support for Samsung MIPI DSIM
> which is used in Exynos and i.MX8MM SoC's.
>
> Previous v4 can be available here [1], repo on linux-next [2] and
> Engicam i.Core MX8M Mini SoM boot log [3].
>
> The final bridge supports both the Exynos and i.MX8MM DSI devices.
>
> Changes for v3:
> * bridge changes to support multi-arch
> * updated and clear commit messages
> * add hw_type via plat data
> * removed unneeded quirk
> * rebased on linux-next
>
> Changes for v4:
> * include Inki Dae in MAINTAINERS
> * remove dsi_driver probe in exynos_drm_drv to support multi-arch build
> * update init handling to ensure host init done on first cmd transfer
>
> Changes for v3:
> * fix the mult-arch build
> * fix dsi host init
> * updated commit messages
>
> Changes for v2:
> * fix bridge handling
> * fix dsi host init
> * correct the commit messages
>
> Patch 0001:	Restore proper bridge chain in exynos_dsi
>
> Patch 0002: 	Samsung DSIM bridge
>
> Patch 0003:	PHY optional
>
> Patch 0004:	OF-graph or Child node lookup
>
> Patch 0005: 	DSI host initialization
>
> Patch 0006:	atomic check
>
> Patch 0007:	PMS_P offset via plat data
>
> Patch 0008:	atomic_get_input_bus_fmts
>
> Patch 0009:	input_bus_flags
>
> Patch 0010:	document fsl,imx8mm-mipi-dsim
>
> Patch 0011:	add i.MX8MM DSIM support
>
> [3] https://protect2.fireeye.com/v1/url?k=f5b98b61-94329e52-f5b8002e-000babff9bb7-1f9a3bf1da680bc2&q=1&e=efefced1-2052-43c5-834f-b50867c29e3c&u=https%3A%2F%2Fgist.github.com%2Fopenedev%2F22b2d63b30ade0ba55ab414a2f47aaf0
> [2] https://protect2.fireeye.com/v1/url?k=02c0a3da-634bb6e9-02c12895-000babff9bb7-8ed3eab856890e56&q=1&e=efefced1-2052-43c5-834f-b50867c29e3c&u=https%3A%2F%2Fgithub.com%2Fopenedev%2Fkernel%2Ftree%2Fimx8mm-dsi-v5
> [1] https://patchwork.kernel.org/project/dri-devel/cover/20220829184031.1863663-1-jagan@amarulasolutions.com/
>
> Any inputs?

Just to make it clear. Like I already pointed [1], this version breaks 
Exynos boards with DSI panels. Either the patch #1 has to be dropped to 
keep the current hack (the current code changes the bridge order to 
force proper pre_enable calls) or the Dave's patches have to be applied 
first [3].

[1] 
https://lore.kernel.org/all/5baf2a71-3d1e-0f25-9b0e-2af98684fce5@samsung.com/

[2] 
https://lore.kernel.org/all/cover.1646406653.git.dave.stevenson@raspberrypi.com/

[3] https://github.com/mszyprow/linux/tree/v6.0-dsi-v4-reworked


> Jagan.
>
> Jagan Teki (10):
>    drm: bridge: Add Samsung DSIM bridge driver
>    drm: bridge: samsung-dsim: Lookup OF-graph or Child node devices
>    drm: bridge: samsung-dsim: Mark PHY as optional
>    drm: bridge: samsung-dsim: Handle proper DSI host initialization
>    drm: bridge: samsung-dsim: Add atomic_check
>    drm: bridge: samsung-dsim: Add platform PLL_P (PMS_P) offset
>    drm: bridge: samsung-dsim: Add atomic_get_input_bus_fmts
>    drm: bridge: samsung-dsim: Add input_bus_flags
>    dt-bindings: display: exynos: dsim: Add NXP i.MX8MM support
>    drm: bridge: samsung-dsim: Add i.MX8MM support
>
> Marek Szyprowski (1):
>    drm: exynos: dsi: Restore proper bridge chain order
>
>   .../bindings/display/exynos/exynos_dsim.txt   |    1 +
>   MAINTAINERS                                   |    9 +
>   drivers/gpu/drm/bridge/Kconfig                |   12 +
>   drivers/gpu/drm/bridge/Makefile               |    1 +
>   drivers/gpu/drm/bridge/samsung-dsim.c         | 1840 +++++++++++++++++
>   drivers/gpu/drm/exynos/Kconfig                |    1 +
>   drivers/gpu/drm/exynos/exynos_drm_dsi.c       | 1766 +---------------
>   include/drm/bridge/samsung-dsim.h             |  115 ++
>   8 files changed, 2092 insertions(+), 1653 deletions(-)
>   create mode 100644 drivers/gpu/drm/bridge/samsung-dsim.c
>   create mode 100644 include/drm/bridge/samsung-dsim.h
>
Best regards
Jagan Teki Sept. 23, 2022, 8:31 a.m. UTC | #3
On Fri, Sep 23, 2022 at 1:04 PM Marek Szyprowski
<m.szyprowski@samsung.com> wrote:
>
> On 16.09.2022 20:17, Jagan Teki wrote:
> > This series supports common bridge support for Samsung MIPI DSIM
> > which is used in Exynos and i.MX8MM SoC's.
> >
> > Previous v4 can be available here [1], repo on linux-next [2] and
> > Engicam i.Core MX8M Mini SoM boot log [3].
> >
> > The final bridge supports both the Exynos and i.MX8MM DSI devices.
> >
> > Changes for v3:
> > * bridge changes to support multi-arch
> > * updated and clear commit messages
> > * add hw_type via plat data
> > * removed unneeded quirk
> > * rebased on linux-next
> >
> > Changes for v4:
> > * include Inki Dae in MAINTAINERS
> > * remove dsi_driver probe in exynos_drm_drv to support multi-arch build
> > * update init handling to ensure host init done on first cmd transfer
> >
> > Changes for v3:
> > * fix the mult-arch build
> > * fix dsi host init
> > * updated commit messages
> >
> > Changes for v2:
> > * fix bridge handling
> > * fix dsi host init
> > * correct the commit messages
> >
> > Patch 0001:   Restore proper bridge chain in exynos_dsi
> >
> > Patch 0002:   Samsung DSIM bridge
> >
> > Patch 0003:   PHY optional
> >
> > Patch 0004:   OF-graph or Child node lookup
> >
> > Patch 0005:   DSI host initialization
> >
> > Patch 0006:   atomic check
> >
> > Patch 0007:   PMS_P offset via plat data
> >
> > Patch 0008:   atomic_get_input_bus_fmts
> >
> > Patch 0009:   input_bus_flags
> >
> > Patch 0010:   document fsl,imx8mm-mipi-dsim
> >
> > Patch 0011:   add i.MX8MM DSIM support
> >
> > [3] https://protect2.fireeye.com/v1/url?k=f5b98b61-94329e52-f5b8002e-000babff9bb7-1f9a3bf1da680bc2&q=1&e=efefced1-2052-43c5-834f-b50867c29e3c&u=https%3A%2F%2Fgist.github.com%2Fopenedev%2F22b2d63b30ade0ba55ab414a2f47aaf0
> > [2] https://protect2.fireeye.com/v1/url?k=02c0a3da-634bb6e9-02c12895-000babff9bb7-8ed3eab856890e56&q=1&e=efefced1-2052-43c5-834f-b50867c29e3c&u=https%3A%2F%2Fgithub.com%2Fopenedev%2Fkernel%2Ftree%2Fimx8mm-dsi-v5
> > [1] https://patchwork.kernel.org/project/dri-devel/cover/20220829184031.1863663-1-jagan@amarulasolutions.com/
> >
> > Any inputs?
>
> Just to make it clear. Like I already pointed [1], this version breaks
> Exynos boards with DSI panels. Either the patch #1 has to be dropped to
> keep the current hack (the current code changes the bridge order to
> force proper pre_enable calls) or the Dave's patches have to be applied
> first [3].

Yes, I understand overall. Working on checking Dave's changes in the
Allwinner DSI host. If it doesn't impact it I will send next version
by including Dave's patches.

Thanks,
Jagan.
Jagan Teki Sept. 23, 2022, 8:31 a.m. UTC | #4
On Tue, Sep 20, 2022 at 3:13 AM Tim Harvey <tharvey@gateworks.com> wrote:
>
> On Fri, Sep 16, 2022 at 11:18 AM Jagan Teki <jagan@amarulasolutions.com> wrote:
> >
> > This series supports common bridge support for Samsung MIPI DSIM
> > which is used in Exynos and i.MX8MM SoC's.
> >
> > Previous v4 can be available here [1], repo on linux-next [2] and
> > Engicam i.Core MX8M Mini SoM boot log [3].
> >
> > The final bridge supports both the Exynos and i.MX8MM DSI devices.
> >
> > Changes for v3:
> > * bridge changes to support multi-arch
> > * updated and clear commit messages
> > * add hw_type via plat data
> > * removed unneeded quirk
> > * rebased on linux-next
> >
> > Changes for v4:
> > * include Inki Dae in MAINTAINERS
> > * remove dsi_driver probe in exynos_drm_drv to support multi-arch build
> > * update init handling to ensure host init done on first cmd transfer
> >
> > Changes for v3:
> > * fix the mult-arch build
> > * fix dsi host init
> > * updated commit messages
> >
> > Changes for v2:
> > * fix bridge handling
> > * fix dsi host init
> > * correct the commit messages
> >
> > Patch 0001:     Restore proper bridge chain in exynos_dsi
> >
> > Patch 0002:     Samsung DSIM bridge
> >
> > Patch 0003:     PHY optional
> >
> > Patch 0004:     OF-graph or Child node lookup
> >
> > Patch 0005:     DSI host initialization
> >
> > Patch 0006:     atomic check
> >
> > Patch 0007:     PMS_P offset via plat data
> >
> > Patch 0008:     atomic_get_input_bus_fmts
> >
> > Patch 0009:     input_bus_flags
> >
> > Patch 0010:     document fsl,imx8mm-mipi-dsim
> >
> > Patch 0011:     add i.MX8MM DSIM support
> >
> > [3] https://gist.github.com/openedev/22b2d63b30ade0ba55ab414a2f47aaf0
> > [2] https://github.com/openedev/kernel/tree/imx8mm-dsi-v5
>
> Jagan,
>
> I would like to try out this latest series a board I have here. It
> looks like perhaps you did not push this imx8mm-dsi-v5 branch?

Please wait for the next version patches.

Thanks,
Jagan.