[PATCH v2 00/11] drm/panel: Add 5 DDIC panel drivers for 14 Sony phones

Marijn Suijten
2025-12-21T23:32:21Z

This is the second version of a largely reshaped series that brings 5
new DDIC panel drivers (4 Samsung, 1 LGD) that are compatible with 14
Sony phones:

- LGD LG699QH3-EDB1 (1440x2880@60Hz, DSC):
- Sony Xperia XZ3
- Samsung SOFEF01 (1080x2520@60Hz):
- Sony Xperia 5
- Sony Xperia 10 II
- Sony Xperia 10 III
- Sony Xperia 10 IV (yet untested)
- Sony Xperia 10 V (yet untested)
- Sony Xperia 10 VI (yet untested)
- Samsung SOFEF03 (1080x2520@120Hz, DSC):
- Sony Xperia 5 II
- Sony Xperia 5 III
- Samsung SOUXP00 (1644x3840@60Hz, DSC):
- Sony Xperia 1
- Sony Xperia 1 II
- Samsung ANA6707 (1644x3840@120Hz, DSC, dual-DSI):
- Sony Xperia 1 III
- Sony Xperia 1 IV (yet untested)
- Sony Xperia 1 V (yet untested)

DTS changes will follow shortly to collectively enable the GPU,
touchscreen and configure this panel driver for aforementioned (tested)
devices. After that we can focus on the untested devices and ultimately
all newer devices that are not even mentioned here.

The ANA6707 driver depends on [1] (revert of quad-DSC over dual-DSI) to
function correctly.

A few limitations/issues with these drivers:

- Panels/drivers featuring multiple modes

Most of these drivers support multiple modes, for example to save
bandwidth/energy by running on lower resolutions or framerates.
These can be picked via mode selection by userspace, but are not yet
forwarded to the drm_panel abstractions.

Work is underway to bring those atomic modeset calls to drm_panel
together with moving where drm_dsc_config lives, since its
configuration depends on the resolution for example.

For now the choice between either mode has been hardcoded behind a
static const bool.

- pclk

The brunt of some older discussion was around getting these command
mode panels functioning at their desired 60Hz or 120Hz refresh rate
without tearing/artifacts, and without hacks. Part of that discussion
around DSC-specific timing adjustments is happening in [2], but
the SOFEF01 (non-DSC) Driver-IC is also struggling on the Xperia 5
specifically, as outlined in that specific patch. That is currently
"addressed" with a "porch hack" but should probably have some sort of
overhead / transfer time taken into account in the MSM DSI driver.

Let me know what the best place is to collate all the relevant info
(links to downstream panel DTS, outcomes with different patches and
tweaks, etc). A new fd.o drm/msm issue?

- Flickering on brightness changes

Likely because of the missing "transfer overhead" calculations and/or
proper sequencing in the DSI host driver, changing brightness results
in corruption on all (Samsung) panels excluding the LGD panel for the
XZ3. It is yet unknown why this is happening and likely requires more
debugging outside of these panel drivers.

[1]: https://lore.kernel.org/linux-arm-msm/20251219-drm-msm-dpu-revert-quad-pipe-broken-v1-0-654b46505f84@oss.qualcomm.com/
[2]: https://gitlab.freedesktop.org/drm/msm/-/issues/24#note_1917707

Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org>
---
Changes in v2:
- Names of all panels are now included;
- All drivers are rewritten against the latest _multi() API with dsi_ctx
struct;
- DSC structures are no longer optional;
- get_brightness is removed;
- set_brightness no longer takes DSI out of LPM - specifically on the
SOFEF01 brightness changes are ignored otherwise;
- Regulators converted to regulator_bulk_data;
- Panel driver for ANA6707 following up on my dual-DSI-dual-DSC work
in MSM DPU is now included;
- Possibly more that I've either forgotten or been too careless to
diff properly with the *over 2.5 years old!* v1:
- Link to v1: https://lore.kernel.org/r/20230521-drm-panels-sony-v1-0-541c341d6bee@somainline.org

---
Marijn Suijten (11):
drm/panel: Clean up SOFEF00 config dependencies
dt-bindings: display: panel: Describe LGD LH599QH3-EDB1 panel
drm/panel: Add LGD LH599QH3-EDB1 panel driver for Sony Xperia XZ3
dt-bindings: display: panel: Describe Samsung SOFEF01-M DDIC
drm/panel: Add panel driver for Samsung SOFEF01 DDIC
dt-bindings: display: panel: Describe Samsung SOFEF03-M DDIC
drm/panel: Add panel driver for Samsung SOFEF03-M DDIC
dt-bindings: display: panel: Describe Samsung SOUXP00-A DDIC
drm/panel: Add panel driver for Samsung SOUXP00-A DDIC
dt-bindings: display: panel: Describe Samsung ANA6707 DDIC
drm/panel: Add panel driver for Samsung ANA6707 DDIC

.../bindings/display/panel/lgd,lh599qh3-edb1.yaml | 76 ++++
.../bindings/display/panel/samsung,ana6707.yaml | 91 ++++
.../bindings/display/panel/samsung,sofef01-m.yaml | 120 ++++++
.../bindings/display/panel/samsung,sofef03-m.yaml | 79 ++++
.../bindings/display/panel/samsung,souxp00-a.yaml | 79 ++++
MAINTAINERS | 30 ++
drivers/gpu/drm/panel/Kconfig | 84 +++-
drivers/gpu/drm/panel/Makefile | 5 +
drivers/gpu/drm/panel/panel-lgd-lh599qh3-edb1.c | 340 +++++++++++++++
drivers/gpu/drm/panel/panel-samsung-ana6707.c | 461 ++++++++++++++++++++
drivers/gpu/drm/panel/panel-samsung-sofef01.c | 463 +++++++++++++++++++++
drivers/gpu/drm/panel/panel-samsung-sofef03.c | 373 +++++++++++++++++
drivers/gpu/drm/panel/panel-samsung-souxp00.c | 399 ++++++++++++++++++
13 files changed, 2599 insertions(+), 1 deletion(-)
---
base-commit: cc3aa43b44bdb43dfbac0fcb51c56594a11338a8
change-id: 20230521-drm-panels-sony-3c5ac3218427

Best regards,
--
Marijn Suijten <marijn.suijten@somainline.org>