[PATCH v12 00/18] drm: Add Samsung MIPI DSIM bridge

Jagan Teki
2023-01-26T14:46:07Z

This series supports common bridge support for Samsung MIPI DSIM
which is used in Exynos and i.MX8MM SoC's.

The final bridge supports both the Exynos and i.MX8M Mini/Nano/Plus.

Patch 0001 - 0004: adding devm_drm_of_dsi_get_bridge

Patch 0005 - 0006: optional PHY, PMS_P offset

Patch 0007 : introduce hw_type

Patch 0008 : fixing host init

Patch 0009 : atomic_check

Patch 0010 : input_bus_flags

Patch 0011 : atomic_get_input_bus_fmts

Patch 0012 - 0013: component vs bridge

Patch 0014 : DSIM bridge

Patch 0015 - 0016: i.MX8M Mini/Nano

Patch 0017 - 0018: i.MX8M Plus

Changes for v12:
- collect RB from Marek V
- add te_irq_handler hook
- fix comments from Marek V
- update atomic_get_input_bus_fmts logic

Changes for v11:
- collect RB from Frieder Schrempf
- collect ACK from Rob
- collect ACK from Robert
- fix BIT macro replacements
- fix checkpatch --strict warnings
- fix unneeded commit text
- drop extra lines

Changes for v10:
- rebase on drm-misc-next
- add drm_of_dsi_find_panel_or_bridge
- add devm_drm_of_dsi_get_bridge
- fix host initialization (Thanks to Marek Szyprowski)
- rearrange the tiny patches for easy to review
- update simple names for enum hw_type
- add is_hw_exynos macro
- rework on commit messages

Changes for v9:
- rebase on drm-misc-next
- drop drm bridge attach fix for Exynos
- added prepare_prev_first flag
- added pre_enable_prev_first flag
- fix bridge chain order for exynos
- added fix for Exynos host init for first DSI transfer
- added MEDIA_BUS_FMT_FIXED
- return MEDIA_BUS_FMT_RGB888_1X24 output_fmt if supported output_fmt
list is unsupported.
- added MEDIA_BUS_FMT_YUYV10_1X20
- added MEDIA_BUS_FMT_YUYV12_1X24

Changes for v8:
* fixed comment lines
* fixed commit messages
* fixed video mode bits
* collect Marek Ack
* fixed video mode bit names
* update input formats logic
* added imx8mplus support

Changes for v7:
* fix the drm bridge attach chain for exynos drm dsi driver
* fix the hw_type checking logic

Changes for v6:
* handle previous bridge for exynos dsi while attaching bridge

Changes for v5:
* 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

Tested in Engicam i.Core MX8M Mini SoM.

Repo:
https://github.com/openedev/kernel/tree/imx8mm-dsi-v12

v11:
https://lore.kernel.org/all/20230123151212.269082-1-jagan@amarulasolutions.com/

Any inputs?
Jagan.

Jagan Teki (16):
drm: of: Lookup if child node has DSI panel or bridge
drm: bridge: panel: Add devm_drm_of_dsi_get_bridge helper
drm: exynos: dsi: Drop explicit call to bridge detach
drm: exynos: dsi: Switch to devm_drm_of_dsi_get_bridge
drm: exynos: dsi: Mark PHY as optional
drm: exynos: dsi: Add platform PLL_P (PMS_P) offset
drm: exynos: dsi: Introduce hw_type platform data
drm: exynos: dsi: Add atomic check
drm: exynos: dsi: Add input_bus_flags
drm: exynos: dsi: Add atomic_get_input_bus_fmts
drm: exynos: dsi: Consolidate component and bridge
drm: exynos: dsi: Add host helper for te_irq_handler
drm: bridge: Generalize Exynos-DSI driver into a Samsung DSIM bridge
dt-bindings: display: exynos: dsim: Add NXP i.MX8M Mini/Nano support
drm: bridge: samsung-dsim: Add i.MX8M Mini/Nano support
dt-bindings: display: exynos: dsim: Add NXP i.MX8M Plus support

Marek Szyprowski (1):
drm: exynos: dsi: Handle proper host initialization

Marek Vasut (1):
drm: bridge: samsung-dsim: Add i.MX8M Plus support

.../bindings/display/exynos/exynos_dsim.txt | 2 +
MAINTAINERS | 9 +
drivers/gpu/drm/bridge/Kconfig | 12 +
drivers/gpu/drm/bridge/Makefile | 1 +
drivers/gpu/drm/bridge/panel.c | 34 +
drivers/gpu/drm/bridge/samsung-dsim.c | 1922 +++++++++++++++++
drivers/gpu/drm/drm_of.c | 112 +-
drivers/gpu/drm/exynos/Kconfig | 1 +
drivers/gpu/drm/exynos/exynos_drm_dsi.c | 1819 +---------------
include/drm/bridge/samsung-dsim.h | 115 +
include/drm/drm_bridge.h | 2 +
include/drm/drm_of.h | 12 +
12 files changed, 2289 insertions(+), 1752 deletions(-)
create mode 100644 drivers/gpu/drm/bridge/samsung-dsim.c
create mode 100644 include/drm/bridge/samsung-dsim.h

--
2.25.1