linux-arm-msm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/12] Make Samsung SOFEF00 DDIC and panel work
@ 2025-11-04 22:16 David Heidelberg via B4 Relay
  2025-11-04 22:16 ` [PATCH 01/12] dt-bindings: panel: Add Samsung SOFEF00 DDIC with panel David Heidelberg via B4 Relay
                   ` (11 more replies)
  0 siblings, 12 replies; 20+ messages in thread
From: David Heidelberg via B4 Relay @ 2025-11-04 22:16 UTC (permalink / raw)
  To: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Thierry Reding, Sam Ravnborg,
	Bjorn Andersson, Konrad Dybcio, Casey Connolly
  Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, phone-devel,
	David Heidelberg

This DDIC is essential for panels used in OnePlus 6 and Pixel 3a XL
(SDC variant). With proper support, all downstream patches in
sdm845-mainline and sdm670-mainline can be dropped.

The mainline driver was broken so far, and with my recent introduction
of S6E3FC2X01 driver, I had to "break it even more" due to OnePlus 6
common device-tree changes which defined all the regulators and
corrected properties.

At this moment the first version of the patchset will not include
Pixel 3a XL (SDC) as no testers yet volunteered.

The code, including the Pixel 3a XL enhancement can be found at
  https://gitlab.com/dhxx/linux/-/tree/b4/sofef00-rebuild

Due to some unknown issues with -next-20251103 - 04, the code is based
on few previous patchsets and v6.18-rc4 (or later).

Signed-off-by: David Heidelberg <david@ixit.cz>
---
Casey Connolly (2):
      drm/panel: sofef00: Add prepare_prev_first flag to drm_panel
      drm/panel: sofef00: Initialise at 50% brightness

David Heidelberg (10):
      dt-bindings: panel: Add Samsung SOFEF00 DDIC with panel
      arch: arm64: qcom: sdm845-enchilada: Specify panel name within the compatible
      drm/panel: sofef00: Clean up panel description after s6e3fc2x01 removal
      drm/panel: sofef00: Handle all regulators
      drm/panel: sofef00: Split sending commands to the enable/disable functions
      drm/panel: sofef00: Introduce page macro
      drm/panel: sofef00: Name of compatible should correspond to the panel used
      drm/panel: sofef00: Simplify get_modes
      drm/panel: sofef00: Mark the LPM mode always-on
      drm/panel: sofef00: Non-continuous mode and video burst are supported

 .../bindings/display/panel/panel-simple-dsi.yaml   |  25 +----
 .../bindings/display/panel/samsung,sofef00.yaml    |  83 ++++++++++++++++
 .../boot/dts/qcom/sdm845-oneplus-enchilada.dts     |   4 +-
 drivers/gpu/drm/panel/Kconfig                      |   7 +-
 drivers/gpu/drm/panel/panel-samsung-sofef00.c      | 104 +++++++++++++--------
 5 files changed, 160 insertions(+), 63 deletions(-)
---
base-commit: 262858079afde6d367ce3db183c74d8a43a0e83f
change-id: 20251104-sofef00-rebuild-04cfc6e68e71
prerequisite-change-id: 20250927-slider-correct-d34490847d95:v1
prerequisite-patch-id: 5584af5fec387ca2bf83150e39199d93b2af6f41
prerequisite-change-id: 20250923-s6e3fc2x01-f9550b822fe5:v6
prerequisite-patch-id: 042e90baee2aea539d39b398ff8a9c9a73a5a248
prerequisite-patch-id: 0da92dde66527977eb82c542c2b5e0478e011f16
prerequisite-patch-id: 8ba3d908464e146d4db16b3a562481928753c9b2
prerequisite-patch-id: 0945cccdc88d640192cf56148e9b661657e11e45

Best regards,
-- 
David Heidelberg <david@ixit.cz>



^ permalink raw reply	[flat|nested] 20+ messages in thread

* [PATCH 01/12] dt-bindings: panel: Add Samsung SOFEF00 DDIC with panel
  2025-11-04 22:16 [PATCH 00/12] Make Samsung SOFEF00 DDIC and panel work David Heidelberg via B4 Relay
@ 2025-11-04 22:16 ` David Heidelberg via B4 Relay
  2025-11-06  8:48   ` Krzysztof Kozlowski
  2025-11-04 22:16 ` [PATCH 02/12] arch: arm64: qcom: sdm845-enchilada: Specify panel name within the compatible David Heidelberg via B4 Relay
                   ` (10 subsequent siblings)
  11 siblings, 1 reply; 20+ messages in thread
From: David Heidelberg via B4 Relay @ 2025-11-04 22:16 UTC (permalink / raw)
  To: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Thierry Reding, Sam Ravnborg,
	Bjorn Andersson, Konrad Dybcio, Casey Connolly
  Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, phone-devel,
	David Heidelberg

From: David Heidelberg <david@ixit.cz>

Basic description for S6E3FC2X01 DDIC with attached panels

 - Samsung AMS601NT22 6.01 inch, 1080x2160 pixels, 18:9 ratio
 - Samsung AMS628NW01 6.28 inch, 1080x2280 pixels, 19:9 ratio

This panel has three supplies, while panel-simple-dsi is limited to one.
There is no user of this compatible, nor the compatible make sense.
Remove it from simple DSI panel definitions.

Signed-off-by: David Heidelberg <david@ixit.cz>
---
 .../bindings/display/panel/panel-simple-dsi.yaml   | 25 ++-----
 .../bindings/display/panel/samsung,sofef00.yaml    | 83 ++++++++++++++++++++++
 2 files changed, 87 insertions(+), 21 deletions(-)

diff --git a/Documentation/devicetree/bindings/display/panel/panel-simple-dsi.yaml b/Documentation/devicetree/bindings/display/panel/panel-simple-dsi.yaml
index ac2db8cf5eb76..464d7c8a7665e 100644
--- a/Documentation/devicetree/bindings/display/panel/panel-simple-dsi.yaml
+++ b/Documentation/devicetree/bindings/display/panel/panel-simple-dsi.yaml
@@ -19,6 +19,9 @@ description: |
 
   If the panel is more advanced a dedicated binding file is required.
 
+allOf:
+  - $ref: panel-common.yaml#
+
 properties:
 
   compatible:
@@ -56,8 +59,6 @@ properties:
       - panasonic,vvx10f034n00
         # Samsung s6e3fa7 1080x2220 based AMS559NK06 AMOLED panel
       - samsung,s6e3fa7-ams559nk06
-        # Samsung sofef00 1080x2280 AMOLED panel
-      - samsung,sofef00
         # Shangai Top Display Optoelectronics 7" TL070WSH30 1024x600 TFT LCD panel
       - tdo,tl070wsh30
 
@@ -70,30 +71,12 @@ properties:
   reset-gpios: true
   port: true
   power-supply: true
-  vddio-supply: true
-
-allOf:
-  - $ref: panel-common.yaml#
-  - if:
-      properties:
-        compatible:
-          enum:
-            - samsung,sofef00
-    then:
-      properties:
-        power-supply: false
-      required:
-        - vddio-supply
-    else:
-      properties:
-        vddio-supply: false
-      required:
-        - power-supply
 
 additionalProperties: false
 
 required:
   - compatible
+  - power-supply
   - reg
 
 examples:
diff --git a/Documentation/devicetree/bindings/display/panel/samsung,sofef00.yaml b/Documentation/devicetree/bindings/display/panel/samsung,sofef00.yaml
new file mode 100644
index 0000000000000..527a10e3b798e
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/panel/samsung,sofef00.yaml
@@ -0,0 +1,83 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/panel/samsung,sofef00.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Samsung SOFEF00 AMOLED DDIC
+
+description: The SOFEF00 is display driver IC with connected panel.
+
+maintainers:
+  - David Heidelberg <david@ixit.cz>
+
+allOf:
+  - $ref: panel-common.yaml#
+
+properties:
+  compatible:
+    items:
+      - enum:
+            # Samsung 6.01 inch, 1080x2160 pixels, 18:9 ratio
+          - samsung,sofef00-ams601nt22
+            # Samsung 6.28 inch, 1080x2280 pixels, 19:9 ratio
+          - samsung,sofef00-ams628nw01
+      - const: samsung,sofef00
+
+  reg:
+    maxItems: 1
+
+  reset-gpios: true
+
+  port: true
+
+  vddio-supply:
+    description: VDD regulator
+
+  vci-supply:
+    description: VCI regulator
+
+  poc-supply:
+    description: POC regulator
+
+required:
+  - compatible
+  - reset-gpios
+  - vddio-supply
+  - vci-supply
+  - poc-supply
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    dsi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        panel@0 {
+            compatible = "samsung,sofef00-ams628nw01", "samsung,sofef00";
+            reg = <0>;
+
+            vddio-supply = <&vreg_l14a_1p88>;
+            vci-supply = <&s2dos05_buck1>;
+            poc-supply = <&s2dos05_ldo1>;
+
+            te-gpios = <&tlmm 10 GPIO_ACTIVE_HIGH>;
+            reset-gpios = <&tlmm 6 GPIO_ACTIVE_HIGH>;
+
+            pinctrl-0 = <&panel_active>;
+            pinctrl-1 = <&panel_suspend>;
+            pinctrl-names = "default", "sleep";
+
+            port {
+                panel_in: endpoint {
+                    remote-endpoint = <&mdss_dsi0_out>;
+                };
+            };
+        };
+    };
+
+...

-- 
2.51.0



^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 02/12] arch: arm64: qcom: sdm845-enchilada: Specify panel name within the compatible
  2025-11-04 22:16 [PATCH 00/12] Make Samsung SOFEF00 DDIC and panel work David Heidelberg via B4 Relay
  2025-11-04 22:16 ` [PATCH 01/12] dt-bindings: panel: Add Samsung SOFEF00 DDIC with panel David Heidelberg via B4 Relay
@ 2025-11-04 22:16 ` David Heidelberg via B4 Relay
  2025-11-05  0:55   ` Dmitry Baryshkov
  2025-11-04 22:16 ` [PATCH 03/12] drm/panel: sofef00: Clean up panel description after s6e3fc2x01 removal David Heidelberg via B4 Relay
                   ` (9 subsequent siblings)
  11 siblings, 1 reply; 20+ messages in thread
From: David Heidelberg via B4 Relay @ 2025-11-04 22:16 UTC (permalink / raw)
  To: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Thierry Reding, Sam Ravnborg,
	Bjorn Andersson, Konrad Dybcio, Casey Connolly
  Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, phone-devel,
	David Heidelberg

From: David Heidelberg <david@ixit.cz>

sofef00 is name of the DDIC, it doesn't contain name of the panel used.
The DDIC is also paired with other panels, so make clear which panel is
used.

cosmetic: sort the node.

Signed-off-by: David Heidelberg <david@ixit.cz>
---
 arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts b/arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts
index a259eb9d45ae0..8aead6dc25e00 100644
--- a/arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts
+++ b/arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts
@@ -31,9 +31,9 @@ battery: battery {
 };
 
 &display_panel {
-	status = "okay";
+	compatible = "samsung,sofef00-ams628nw01", "samsung,sofef00";
 
-	compatible = "samsung,sofef00";
+	status = "okay";
 };
 
 &bq27441_fg {

-- 
2.51.0



^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 03/12] drm/panel: sofef00: Clean up panel description after s6e3fc2x01 removal
  2025-11-04 22:16 [PATCH 00/12] Make Samsung SOFEF00 DDIC and panel work David Heidelberg via B4 Relay
  2025-11-04 22:16 ` [PATCH 01/12] dt-bindings: panel: Add Samsung SOFEF00 DDIC with panel David Heidelberg via B4 Relay
  2025-11-04 22:16 ` [PATCH 02/12] arch: arm64: qcom: sdm845-enchilada: Specify panel name within the compatible David Heidelberg via B4 Relay
@ 2025-11-04 22:16 ` David Heidelberg via B4 Relay
  2025-11-04 22:16 ` [PATCH 04/12] drm/panel: sofef00: Handle all regulators David Heidelberg via B4 Relay
                   ` (8 subsequent siblings)
  11 siblings, 0 replies; 20+ messages in thread
From: David Heidelberg via B4 Relay @ 2025-11-04 22:16 UTC (permalink / raw)
  To: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Thierry Reding, Sam Ravnborg,
	Bjorn Andersson, Konrad Dybcio, Casey Connolly
  Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, phone-devel,
	David Heidelberg

From: David Heidelberg <david@ixit.cz>

Remove leftover from s6e3fc2x01 support drop and clarify supported panel.

The Samsung SOFEF00 DDIC is used in multiple phones, so describe it
properly and generalize.

Fixes: e1eb7293ab41 ("drm/panel: samsung-sofef00: Drop s6e3fc2x01 support")
Signed-off-by: David Heidelberg <david@ixit.cz>
---
 drivers/gpu/drm/panel/Kconfig                 | 7 ++++---
 drivers/gpu/drm/panel/panel-samsung-sofef00.c | 4 ++--
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig
index 407c5f6a268b2..3442b1be6424c 100644
--- a/drivers/gpu/drm/panel/Kconfig
+++ b/drivers/gpu/drm/panel/Kconfig
@@ -868,16 +868,17 @@ config DRM_PANEL_SAMSUNG_S6E8AA5X01_AMS561RA01
 	  DSI protocol with 4 lanes.
 
 config DRM_PANEL_SAMSUNG_SOFEF00
-	tristate "Samsung sofef00/s6e3fc2x01 OnePlus 6/6T DSI cmd mode panels"
+	tristate "Samsung SOFEF00 DSI panel controller"
 	depends on OF
 	depends on DRM_MIPI_DSI
 	depends on BACKLIGHT_CLASS_DEVICE
 	select VIDEOMODE_HELPERS
 	help
 	  Say Y or M here if you want to enable support for the Samsung AMOLED
-	  command mode panels found in the OnePlus 6/6T smartphones.
+	  panel SOFEF00 DDIC and connected panel.
+	  Currently supported panels:
 
-	  The panels are 2280x1080@60Hz and 2340x1080@60Hz respectively
+	    Samsung AMS628NW01 (found in OnePlus 6, 1080x2280@60Hz)
 
 config DRM_PANEL_SEIKO_43WVF1G
 	tristate "Seiko 43WVF1G panel"
diff --git a/drivers/gpu/drm/panel/panel-samsung-sofef00.c b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
index 064258217d50a..c88574ea66e1c 100644
--- a/drivers/gpu/drm/panel/panel-samsung-sofef00.c
+++ b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
@@ -252,7 +252,7 @@ static struct mipi_dsi_driver sofef00_panel_driver = {
 	.probe = sofef00_panel_probe,
 	.remove = sofef00_panel_remove,
 	.driver = {
-		.name = "panel-oneplus6",
+		.name = "panel-samsung-sofef00",
 		.of_match_table = sofef00_panel_of_match,
 	},
 };
@@ -260,5 +260,5 @@ static struct mipi_dsi_driver sofef00_panel_driver = {
 module_mipi_dsi_driver(sofef00_panel_driver);
 
 MODULE_AUTHOR("Casey Connolly <casey.connolly@linaro.org>");
-MODULE_DESCRIPTION("DRM driver for Samsung AMOLED DSI panels found in OnePlus 6/6T phones");
+MODULE_DESCRIPTION("DRM driver for Samsung SOFEF00 DDIC");
 MODULE_LICENSE("GPL v2");

-- 
2.51.0



^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 04/12] drm/panel: sofef00: Handle all regulators
  2025-11-04 22:16 [PATCH 00/12] Make Samsung SOFEF00 DDIC and panel work David Heidelberg via B4 Relay
                   ` (2 preceding siblings ...)
  2025-11-04 22:16 ` [PATCH 03/12] drm/panel: sofef00: Clean up panel description after s6e3fc2x01 removal David Heidelberg via B4 Relay
@ 2025-11-04 22:16 ` David Heidelberg via B4 Relay
  2025-11-04 22:16 ` [PATCH 05/12] drm/panel: sofef00: Split sending commands to the enable/disable functions David Heidelberg via B4 Relay
                   ` (7 subsequent siblings)
  11 siblings, 0 replies; 20+ messages in thread
From: David Heidelberg via B4 Relay @ 2025-11-04 22:16 UTC (permalink / raw)
  To: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Thierry Reding, Sam Ravnborg,
	Bjorn Andersson, Konrad Dybcio, Casey Connolly
  Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, phone-devel,
	David Heidelberg

From: David Heidelberg <david@ixit.cz>

Recently we documented, there is more than vddio regulator, adapt the
driver to work with VCI and POC regulator.

Signed-off-by: David Heidelberg <david@ixit.cz>
---
 drivers/gpu/drm/panel/panel-samsung-sofef00.c | 28 ++++++++++++++++-----------
 1 file changed, 17 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/panel/panel-samsung-sofef00.c b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
index c88574ea66e1c..3097040e6bfa0 100644
--- a/drivers/gpu/drm/panel/panel-samsung-sofef00.c
+++ b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
@@ -20,10 +20,16 @@
 struct sofef00_panel {
 	struct drm_panel panel;
 	struct mipi_dsi_device *dsi;
-	struct regulator *supply;
+	struct regulator_bulk_data *supplies;
 	struct gpio_desc *reset_gpio;
 };
 
+static const struct regulator_bulk_data sofef00_supplies[] = {
+	{ .supply = "vddio" },
+	{ .supply = "vci" },
+	{ .supply = "poc" },
+};
+
 static inline
 struct sofef00_panel *to_sofef00_panel(struct drm_panel *panel)
 {
@@ -86,20 +92,18 @@ static int sofef00_panel_off(struct sofef00_panel *ctx)
 static int sofef00_panel_prepare(struct drm_panel *panel)
 {
 	struct sofef00_panel *ctx = to_sofef00_panel(panel);
-	struct device *dev = &ctx->dsi->dev;
 	int ret;
 
-	ret = regulator_enable(ctx->supply);
-	if (ret < 0) {
-		dev_err(dev, "Failed to enable regulator: %d\n", ret);
+	ret = regulator_bulk_enable(ARRAY_SIZE(sofef00_supplies), ctx->supplies);
+	if (ret < 0)
 		return ret;
-	}
 
 	sofef00_panel_reset(ctx);
 
 	ret = sofef00_panel_on(ctx);
 	if (ret < 0) {
 		gpiod_set_value_cansleep(ctx->reset_gpio, 1);
+		regulator_bulk_disable(ARRAY_SIZE(sofef00_supplies), ctx->supplies);
 		return ret;
 	}
 
@@ -111,7 +115,7 @@ static int sofef00_panel_unprepare(struct drm_panel *panel)
 	struct sofef00_panel *ctx = to_sofef00_panel(panel);
 
 	sofef00_panel_off(ctx);
-	regulator_disable(ctx->supply);
+	regulator_bulk_disable(ARRAY_SIZE(sofef00_supplies), ctx->supplies);
 
 	return 0;
 }
@@ -197,10 +201,12 @@ static int sofef00_panel_probe(struct mipi_dsi_device *dsi)
 	if (IS_ERR(ctx))
 		return PTR_ERR(ctx);
 
-	ctx->supply = devm_regulator_get(dev, "vddio");
-	if (IS_ERR(ctx->supply))
-		return dev_err_probe(dev, PTR_ERR(ctx->supply),
-				     "Failed to get vddio regulator\n");
+	ret = devm_regulator_bulk_get_const(dev,
+					    ARRAY_SIZE(sofef00_supplies),
+					    sofef00_supplies,
+					    &ctx->supplies);
+	if (ret)
+		return dev_err_probe(dev, ret, "Failed to get regulators\n");
 
 	ctx->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH);
 	if (IS_ERR(ctx->reset_gpio))

-- 
2.51.0



^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 05/12] drm/panel: sofef00: Split sending commands to the enable/disable functions
  2025-11-04 22:16 [PATCH 00/12] Make Samsung SOFEF00 DDIC and panel work David Heidelberg via B4 Relay
                   ` (3 preceding siblings ...)
  2025-11-04 22:16 ` [PATCH 04/12] drm/panel: sofef00: Handle all regulators David Heidelberg via B4 Relay
@ 2025-11-04 22:16 ` David Heidelberg via B4 Relay
  2025-11-04 22:16 ` [PATCH 06/12] drm/panel: sofef00: Introduce page macro David Heidelberg via B4 Relay
                   ` (6 subsequent siblings)
  11 siblings, 0 replies; 20+ messages in thread
From: David Heidelberg via B4 Relay @ 2025-11-04 22:16 UTC (permalink / raw)
  To: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Thierry Reding, Sam Ravnborg,
	Bjorn Andersson, Konrad Dybcio, Casey Connolly
  Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, phone-devel,
	David Heidelberg

From: David Heidelberg <david@ixit.cz>

It's not possible to send DSI panel commands in the .unprepare. Move it
to .disable and do similar for prepare, where we move the display on to
the .enable.

Signed-off-by: David Heidelberg <david@ixit.cz>
---
 drivers/gpu/drm/panel/panel-samsung-sofef00.c | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/panel/panel-samsung-sofef00.c b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
index 3097040e6bfa0..a3651f0060bde 100644
--- a/drivers/gpu/drm/panel/panel-samsung-sofef00.c
+++ b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
@@ -68,6 +68,14 @@ static int sofef00_panel_on(struct sofef00_panel *ctx)
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, MIPI_DCS_WRITE_CONTROL_DISPLAY, 0x20);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, MIPI_DCS_WRITE_POWER_SAVE, 0x00);
 
+	return dsi_ctx.accum_err;
+}
+
+static int sofef00_enable(struct drm_panel *panel)
+{
+	struct sofef00_panel *ctx = to_sofef00_panel(panel);
+	struct mipi_dsi_multi_context dsi_ctx = { .dsi = ctx->dsi };
+
 	mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
 
 	return dsi_ctx.accum_err;
@@ -110,11 +118,19 @@ static int sofef00_panel_prepare(struct drm_panel *panel)
 	return 0;
 }
 
-static int sofef00_panel_unprepare(struct drm_panel *panel)
+static int sofef00_disable(struct drm_panel *panel)
 {
 	struct sofef00_panel *ctx = to_sofef00_panel(panel);
 
 	sofef00_panel_off(ctx);
+
+	return 0;
+}
+
+static int sofef00_panel_unprepare(struct drm_panel *panel)
+{
+	struct sofef00_panel *ctx = to_sofef00_panel(panel);
+
 	regulator_bulk_disable(ARRAY_SIZE(sofef00_supplies), ctx->supplies);
 
 	return 0;
@@ -154,6 +170,8 @@ static int sofef00_panel_get_modes(struct drm_panel *panel, struct drm_connector
 
 static const struct drm_panel_funcs sofef00_panel_panel_funcs = {
 	.prepare = sofef00_panel_prepare,
+	.enable = sofef00_enable,
+	.disable = sofef00_disable,
 	.unprepare = sofef00_panel_unprepare,
 	.get_modes = sofef00_panel_get_modes,
 };

-- 
2.51.0



^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 06/12] drm/panel: sofef00: Introduce page macro
  2025-11-04 22:16 [PATCH 00/12] Make Samsung SOFEF00 DDIC and panel work David Heidelberg via B4 Relay
                   ` (4 preceding siblings ...)
  2025-11-04 22:16 ` [PATCH 05/12] drm/panel: sofef00: Split sending commands to the enable/disable functions David Heidelberg via B4 Relay
@ 2025-11-04 22:16 ` David Heidelberg via B4 Relay
  2025-11-04 22:16 ` [PATCH 07/12] drm/panel: sofef00: Add prepare_prev_first flag to drm_panel David Heidelberg via B4 Relay
                   ` (5 subsequent siblings)
  11 siblings, 0 replies; 20+ messages in thread
From: David Heidelberg via B4 Relay @ 2025-11-04 22:16 UTC (permalink / raw)
  To: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Thierry Reding, Sam Ravnborg,
	Bjorn Andersson, Konrad Dybcio, Casey Connolly
  Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, phone-devel,
	David Heidelberg

From: David Heidelberg <david@ixit.cz>

Introducing the macro make the code a bit clearer.

Looking at other Samsung drivers, I assume it's lvl2, thou due to not
available documentation it's only educated guess.

Signed-off-by: David Heidelberg <david@ixit.cz>
---
 drivers/gpu/drm/panel/panel-samsung-sofef00.c | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/panel/panel-samsung-sofef00.c b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
index a3651f0060bde..97122ec8872a1 100644
--- a/drivers/gpu/drm/panel/panel-samsung-sofef00.c
+++ b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
@@ -36,6 +36,11 @@ struct sofef00_panel *to_sofef00_panel(struct drm_panel *panel)
 	return container_of(panel, struct sofef00_panel, panel);
 }
 
+#define sofef00_test_key_on_lvl2(ctx) \
+	mipi_dsi_dcs_write_seq_multi(ctx, 0xf0, 0x5a, 0x5a)
+#define sofef00_test_key_off_lvl2(ctx) \
+	mipi_dsi_dcs_write_seq_multi(ctx, 0xf0, 0xa5, 0xa5)
+
 static void sofef00_panel_reset(struct sofef00_panel *ctx)
 {
 	gpiod_set_value_cansleep(ctx->reset_gpio, 0);
@@ -56,15 +61,15 @@ static int sofef00_panel_on(struct sofef00_panel *ctx)
 	mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx);
 	mipi_dsi_usleep_range(&dsi_ctx, 10000, 11000);
 
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0xf0, 0x5a, 0x5a);
-
+	sofef00_test_key_on_lvl2(&dsi_ctx);
 	mipi_dsi_dcs_set_tear_on_multi(&dsi_ctx, MIPI_DSI_DCS_TEAR_MODE_VBLANK);
+	sofef00_test_key_off_lvl2(&dsi_ctx);
 
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0xf0, 0xa5, 0xa5);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0xf0, 0x5a, 0x5a);
+	sofef00_test_key_on_lvl2(&dsi_ctx);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0xb0, 0x07);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0xb6, 0x12);
-	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0xf0, 0xa5, 0xa5);
+	sofef00_test_key_off_lvl2(&dsi_ctx);
+
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, MIPI_DCS_WRITE_CONTROL_DISPLAY, 0x20);
 	mipi_dsi_dcs_write_seq_multi(&dsi_ctx, MIPI_DCS_WRITE_POWER_SAVE, 0x00);
 

-- 
2.51.0



^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 07/12] drm/panel: sofef00: Add prepare_prev_first flag to drm_panel
  2025-11-04 22:16 [PATCH 00/12] Make Samsung SOFEF00 DDIC and panel work David Heidelberg via B4 Relay
                   ` (5 preceding siblings ...)
  2025-11-04 22:16 ` [PATCH 06/12] drm/panel: sofef00: Introduce page macro David Heidelberg via B4 Relay
@ 2025-11-04 22:16 ` David Heidelberg via B4 Relay
  2025-11-04 22:16 ` [PATCH 08/12] drm/panel: sofef00: Initialise at 50% brightness David Heidelberg via B4 Relay
                   ` (4 subsequent siblings)
  11 siblings, 0 replies; 20+ messages in thread
From: David Heidelberg via B4 Relay @ 2025-11-04 22:16 UTC (permalink / raw)
  To: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Thierry Reding, Sam Ravnborg,
	Bjorn Andersson, Konrad Dybcio, Casey Connolly
  Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, phone-devel,
	David Heidelberg

From: Casey Connolly <casey.connolly@linaro.org>

This corrects the host initialisation sequence so that we can send
DSI/DCS commands in prepare().

Signed-off-by: Casey Connolly <casey.connolly@linaro.org>
Signed-off-by: David Heidelberg <david@ixit.cz>
---
 drivers/gpu/drm/panel/panel-samsung-sofef00.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/panel/panel-samsung-sofef00.c b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
index 97122ec8872a1..0d3ae0689a19b 100644
--- a/drivers/gpu/drm/panel/panel-samsung-sofef00.c
+++ b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
@@ -242,6 +242,8 @@ static int sofef00_panel_probe(struct mipi_dsi_device *dsi)
 	dsi->lanes = 4;
 	dsi->format = MIPI_DSI_FMT_RGB888;
 
+	ctx->panel.prepare_prev_first = true;
+
 	ctx->panel.backlight = sofef00_create_backlight(dsi);
 	if (IS_ERR(ctx->panel.backlight))
 		return dev_err_probe(dev, PTR_ERR(ctx->panel.backlight),

-- 
2.51.0



^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 08/12] drm/panel: sofef00: Initialise at 50% brightness
  2025-11-04 22:16 [PATCH 00/12] Make Samsung SOFEF00 DDIC and panel work David Heidelberg via B4 Relay
                   ` (6 preceding siblings ...)
  2025-11-04 22:16 ` [PATCH 07/12] drm/panel: sofef00: Add prepare_prev_first flag to drm_panel David Heidelberg via B4 Relay
@ 2025-11-04 22:16 ` David Heidelberg via B4 Relay
  2025-11-04 22:16 ` [PATCH 09/12] drm/panel: sofef00: Name of compatible should correspond to the panel used David Heidelberg via B4 Relay
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 20+ messages in thread
From: David Heidelberg via B4 Relay @ 2025-11-04 22:16 UTC (permalink / raw)
  To: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Thierry Reding, Sam Ravnborg,
	Bjorn Andersson, Konrad Dybcio, Casey Connolly
  Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, phone-devel,
	David Heidelberg

From: Casey Connolly <casey.connolly@linaro.org>

Initialising at max brightness is not necessary.
Half brightness is much more comfortable.

Signed-off-by: Casey Connolly <casey.connolly@linaro.org>
Signed-off-by: David Heidelberg <david@ixit.cz>
---
 drivers/gpu/drm/panel/panel-samsung-sofef00.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/panel/panel-samsung-sofef00.c b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
index 0d3ae0689a19b..d1e5340d7e337 100644
--- a/drivers/gpu/drm/panel/panel-samsung-sofef00.c
+++ b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
@@ -204,7 +204,7 @@ sofef00_create_backlight(struct mipi_dsi_device *dsi)
 	struct device *dev = &dsi->dev;
 	const struct backlight_properties props = {
 		.type = BACKLIGHT_PLATFORM,
-		.brightness = 1023,
+		.brightness = 512,
 		.max_brightness = 1023,
 	};
 

-- 
2.51.0



^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 09/12] drm/panel: sofef00: Name of compatible should correspond to the panel used
  2025-11-04 22:16 [PATCH 00/12] Make Samsung SOFEF00 DDIC and panel work David Heidelberg via B4 Relay
                   ` (7 preceding siblings ...)
  2025-11-04 22:16 ` [PATCH 08/12] drm/panel: sofef00: Initialise at 50% brightness David Heidelberg via B4 Relay
@ 2025-11-04 22:16 ` David Heidelberg via B4 Relay
  2025-11-04 22:16 ` [PATCH 10/12] drm/panel: sofef00: Simplify get_modes David Heidelberg via B4 Relay
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 20+ messages in thread
From: David Heidelberg via B4 Relay @ 2025-11-04 22:16 UTC (permalink / raw)
  To: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Thierry Reding, Sam Ravnborg,
	Bjorn Andersson, Konrad Dybcio, Casey Connolly
  Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, phone-devel,
	David Heidelberg

From: David Heidelberg <david@ixit.cz>

At this moment we support only AMS628NW01 panel.

Adapt also the internal driver structures to reflect the name.

Signed-off-by: David Heidelberg <david@ixit.cz>
---
 drivers/gpu/drm/panel/panel-samsung-sofef00.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/panel/panel-samsung-sofef00.c b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
index d1e5340d7e337..7947adf908772 100644
--- a/drivers/gpu/drm/panel/panel-samsung-sofef00.c
+++ b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
@@ -141,7 +141,7 @@ static int sofef00_panel_unprepare(struct drm_panel *panel)
 	return 0;
 }
 
-static const struct drm_display_mode enchilada_panel_mode = {
+static const struct drm_display_mode ams628nw01_panel_mode = {
 	.clock = (1080 + 112 + 16 + 36) * (2280 + 36 + 8 + 12) * 60 / 1000,
 	.hdisplay = 1080,
 	.hsync_start = 1080 + 112,
@@ -159,7 +159,7 @@ static int sofef00_panel_get_modes(struct drm_panel *panel, struct drm_connector
 {
 	struct drm_display_mode *mode;
 
-	mode = drm_mode_duplicate(connector->dev, &enchilada_panel_mode);
+	mode = drm_mode_duplicate(connector->dev, &ams628nw01_panel_mode);
 	if (!mode)
 		return -ENOMEM;
 
@@ -274,7 +274,9 @@ static void sofef00_panel_remove(struct mipi_dsi_device *dsi)
 }
 
 static const struct of_device_id sofef00_panel_of_match[] = {
+	/* legacy compatible */
 	{ .compatible = "samsung,sofef00" },
+	{ .compatible = "samsung,sofef00-ams628nw01" },
 	{ /* sentinel */ }
 };
 MODULE_DEVICE_TABLE(of, sofef00_panel_of_match);

-- 
2.51.0



^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 10/12] drm/panel: sofef00: Simplify get_modes
  2025-11-04 22:16 [PATCH 00/12] Make Samsung SOFEF00 DDIC and panel work David Heidelberg via B4 Relay
                   ` (8 preceding siblings ...)
  2025-11-04 22:16 ` [PATCH 09/12] drm/panel: sofef00: Name of compatible should correspond to the panel used David Heidelberg via B4 Relay
@ 2025-11-04 22:16 ` David Heidelberg via B4 Relay
  2025-11-04 22:16 ` [PATCH 11/12] drm/panel: sofef00: Mark the LPM mode always-on David Heidelberg via B4 Relay
  2025-11-04 22:16 ` [PATCH 12/12] drm/panel: sofef00: Non-continuous mode and video burst are supported David Heidelberg via B4 Relay
  11 siblings, 0 replies; 20+ messages in thread
From: David Heidelberg via B4 Relay @ 2025-11-04 22:16 UTC (permalink / raw)
  To: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Thierry Reding, Sam Ravnborg,
	Bjorn Andersson, Konrad Dybcio, Casey Connolly
  Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, phone-devel,
	David Heidelberg

From: David Heidelberg <david@ixit.cz>

Levearage drm_connector_helper_get_modes_fixed helper function.

Signed-off-by: David Heidelberg <david@ixit.cz>
---
 drivers/gpu/drm/panel/panel-samsung-sofef00.c | 21 +++++++--------------
 1 file changed, 7 insertions(+), 14 deletions(-)

diff --git a/drivers/gpu/drm/panel/panel-samsung-sofef00.c b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
index 7947adf908772..e69a28628b656 100644
--- a/drivers/gpu/drm/panel/panel-samsung-sofef00.c
+++ b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
@@ -16,6 +16,7 @@
 #include <drm/drm_mipi_dsi.h>
 #include <drm/drm_modes.h>
 #include <drm/drm_panel.h>
+#include <drm/drm_probe_helper.h>
 
 struct sofef00_panel {
 	struct drm_panel panel;
@@ -143,34 +144,26 @@ static int sofef00_panel_unprepare(struct drm_panel *panel)
 
 static const struct drm_display_mode ams628nw01_panel_mode = {
 	.clock = (1080 + 112 + 16 + 36) * (2280 + 36 + 8 + 12) * 60 / 1000,
+
 	.hdisplay = 1080,
 	.hsync_start = 1080 + 112,
 	.hsync_end = 1080 + 112 + 16,
 	.htotal = 1080 + 112 + 16 + 36,
+
 	.vdisplay = 2280,
 	.vsync_start = 2280 + 36,
 	.vsync_end = 2280 + 36 + 8,
 	.vtotal = 2280 + 36 + 8 + 12,
+
 	.width_mm = 68,
 	.height_mm = 145,
+
+	.type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED,
 };
 
 static int sofef00_panel_get_modes(struct drm_panel *panel, struct drm_connector *connector)
 {
-	struct drm_display_mode *mode;
-
-	mode = drm_mode_duplicate(connector->dev, &ams628nw01_panel_mode);
-	if (!mode)
-		return -ENOMEM;
-
-	drm_mode_set_name(mode);
-
-	mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED;
-	connector->display_info.width_mm = mode->width_mm;
-	connector->display_info.height_mm = mode->height_mm;
-	drm_mode_probed_add(connector, mode);
-
-	return 1;
+	return drm_connector_helper_get_modes_fixed(connector, &ams628nw01_panel_mode);
 }
 
 static const struct drm_panel_funcs sofef00_panel_panel_funcs = {

-- 
2.51.0



^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 11/12] drm/panel: sofef00: Mark the LPM mode always-on
  2025-11-04 22:16 [PATCH 00/12] Make Samsung SOFEF00 DDIC and panel work David Heidelberg via B4 Relay
                   ` (9 preceding siblings ...)
  2025-11-04 22:16 ` [PATCH 10/12] drm/panel: sofef00: Simplify get_modes David Heidelberg via B4 Relay
@ 2025-11-04 22:16 ` David Heidelberg via B4 Relay
  2025-11-04 22:16 ` [PATCH 12/12] drm/panel: sofef00: Non-continuous mode and video burst are supported David Heidelberg via B4 Relay
  11 siblings, 0 replies; 20+ messages in thread
From: David Heidelberg via B4 Relay @ 2025-11-04 22:16 UTC (permalink / raw)
  To: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Thierry Reding, Sam Ravnborg,
	Bjorn Andersson, Konrad Dybcio, Casey Connolly
  Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, phone-devel,
	David Heidelberg

From: David Heidelberg <david@ixit.cz>

The panel operated in low-power mode, with exception of changing the
brightness levels.

Signed-off-by: David Heidelberg <david@ixit.cz>
---
 drivers/gpu/drm/panel/panel-samsung-sofef00.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/panel/panel-samsung-sofef00.c b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
index e69a28628b656..8286cad385738 100644
--- a/drivers/gpu/drm/panel/panel-samsung-sofef00.c
+++ b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
@@ -92,8 +92,6 @@ static int sofef00_panel_off(struct sofef00_panel *ctx)
 	struct mipi_dsi_device *dsi = ctx->dsi;
 	struct mipi_dsi_multi_context dsi_ctx = { .dsi = dsi };
 
-	dsi->mode_flags &= ~MIPI_DSI_MODE_LPM;
-
 	mipi_dsi_dcs_set_display_off_multi(&dsi_ctx);
 	mipi_dsi_msleep(&dsi_ctx, 40);
 
@@ -180,10 +178,14 @@ static int sofef00_panel_bl_update_status(struct backlight_device *bl)
 	int err;
 	u16 brightness = (u16)backlight_get_brightness(bl);
 
+	dsi->mode_flags &= ~MIPI_DSI_MODE_LPM;
+
 	err = mipi_dsi_dcs_set_display_brightness_large(dsi, brightness);
 	if (err < 0)
 		return err;
 
+	dsi->mode_flags |= MIPI_DSI_MODE_LPM;
+
 	return 0;
 }
 
@@ -234,6 +236,7 @@ static int sofef00_panel_probe(struct mipi_dsi_device *dsi)
 
 	dsi->lanes = 4;
 	dsi->format = MIPI_DSI_FMT_RGB888;
+	dsi->mode_flags = MIPI_DSI_MODE_LPM;
 
 	ctx->panel.prepare_prev_first = true;
 

-- 
2.51.0



^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 12/12] drm/panel: sofef00: Non-continuous mode and video burst are supported
  2025-11-04 22:16 [PATCH 00/12] Make Samsung SOFEF00 DDIC and panel work David Heidelberg via B4 Relay
                   ` (10 preceding siblings ...)
  2025-11-04 22:16 ` [PATCH 11/12] drm/panel: sofef00: Mark the LPM mode always-on David Heidelberg via B4 Relay
@ 2025-11-04 22:16 ` David Heidelberg via B4 Relay
  11 siblings, 0 replies; 20+ messages in thread
From: David Heidelberg via B4 Relay @ 2025-11-04 22:16 UTC (permalink / raw)
  To: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Thierry Reding, Sam Ravnborg,
	Bjorn Andersson, Konrad Dybcio, Casey Connolly
  Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, phone-devel,
	David Heidelberg

From: David Heidelberg <david@ixit.cz>

The panel supports both modes.

Signed-off-by: David Heidelberg <david@ixit.cz>
---
 drivers/gpu/drm/panel/panel-samsung-sofef00.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/panel/panel-samsung-sofef00.c b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
index 8286cad385738..b330c4a1ad19d 100644
--- a/drivers/gpu/drm/panel/panel-samsung-sofef00.c
+++ b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
@@ -236,7 +236,8 @@ static int sofef00_panel_probe(struct mipi_dsi_device *dsi)
 
 	dsi->lanes = 4;
 	dsi->format = MIPI_DSI_FMT_RGB888;
-	dsi->mode_flags = MIPI_DSI_MODE_LPM;
+	dsi->mode_flags = MIPI_DSI_MODE_VIDEO_BURST |
+			  MIPI_DSI_CLOCK_NON_CONTINUOUS | MIPI_DSI_MODE_LPM;
 
 	ctx->panel.prepare_prev_first = true;
 

-- 
2.51.0



^ permalink raw reply related	[flat|nested] 20+ messages in thread

* Re: [PATCH 02/12] arch: arm64: qcom: sdm845-enchilada: Specify panel name within the compatible
  2025-11-04 22:16 ` [PATCH 02/12] arch: arm64: qcom: sdm845-enchilada: Specify panel name within the compatible David Heidelberg via B4 Relay
@ 2025-11-05  0:55   ` Dmitry Baryshkov
  2025-11-06 17:27     ` Krzysztof Kozlowski
  0 siblings, 1 reply; 20+ messages in thread
From: Dmitry Baryshkov @ 2025-11-05  0:55 UTC (permalink / raw)
  To: david
  Cc: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Thierry Reding, Sam Ravnborg,
	Bjorn Andersson, Konrad Dybcio, Casey Connolly, dri-devel,
	devicetree, linux-kernel, linux-arm-msm, phone-devel

On Tue, Nov 04, 2025 at 11:16:10PM +0100, David Heidelberg via B4 Relay wrote:
> From: David Heidelberg <david@ixit.cz>
> 
> sofef00 is name of the DDIC, it doesn't contain name of the panel used.
> The DDIC is also paired with other panels, so make clear which panel is
> used.
> 
> cosmetic: sort the node.
> 
> Signed-off-by: David Heidelberg <david@ixit.cz>
> ---
>  arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts b/arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts
> index a259eb9d45ae0..8aead6dc25e00 100644
> --- a/arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts
> +++ b/arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts
> @@ -31,9 +31,9 @@ battery: battery {
>  };
>  
>  &display_panel {
> -	status = "okay";
> +	compatible = "samsung,sofef00-ams628nw01", "samsung,sofef00";

This breaks the ABI. Please describe, why it is sensible. Other patches
should describe whether the old DTs will continue to work or not.

>  
> -	compatible = "samsung,sofef00";
> +	status = "okay";
>  };
>  
>  &bq27441_fg {
> 
> -- 
> 2.51.0
> 
> 

-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 01/12] dt-bindings: panel: Add Samsung SOFEF00 DDIC with panel
  2025-11-04 22:16 ` [PATCH 01/12] dt-bindings: panel: Add Samsung SOFEF00 DDIC with panel David Heidelberg via B4 Relay
@ 2025-11-06  8:48   ` Krzysztof Kozlowski
  2025-11-07 11:23     ` Neil Armstrong
  0 siblings, 1 reply; 20+ messages in thread
From: Krzysztof Kozlowski @ 2025-11-06  8:48 UTC (permalink / raw)
  To: David Heidelberg
  Cc: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Thierry Reding, Sam Ravnborg,
	Bjorn Andersson, Konrad Dybcio, Casey Connolly, dri-devel,
	devicetree, linux-kernel, linux-arm-msm, phone-devel

On Tue, Nov 04, 2025 at 11:16:09PM +0100, David Heidelberg wrote:
> Basic description for S6E3FC2X01 DDIC with attached panels
> 
>  - Samsung AMS601NT22 6.01 inch, 1080x2160 pixels, 18:9 ratio
>  - Samsung AMS628NW01 6.28 inch, 1080x2280 pixels, 19:9 ratio
> 
> This panel has three supplies, while panel-simple-dsi is limited to one.
> There is no user of this compatible, nor the compatible make sense.

There are. git grep samsung,sofef00, gives me two users.

> Remove it from simple DSI panel definitions.
> 
> Signed-off-by: David Heidelberg <david@ixit.cz>

..

>  additionalProperties: false
>  
>  required:
>    - compatible
> +  - power-supply
>    - reg
>  
>  examples:
> diff --git a/Documentation/devicetree/bindings/display/panel/samsung,sofef00.yaml b/Documentation/devicetree/bindings/display/panel/samsung,sofef00.yaml
> new file mode 100644
> index 0000000000000..527a10e3b798e
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/panel/samsung,sofef00.yaml
> @@ -0,0 +1,83 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/display/panel/samsung,sofef00.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Samsung SOFEF00 AMOLED DDIC
> +
> +description: The SOFEF00 is display driver IC with connected panel.

Description goes below maintainers, see example-schema.

> +
> +maintainers:
> +  - David Heidelberg <david@ixit.cz>
> +
> +allOf:
> +  - $ref: panel-common.yaml#
> +
> +properties:
> +  compatible:
> +    items:
> +      - enum:
> +            # Samsung 6.01 inch, 1080x2160 pixels, 18:9 ratio
> +          - samsung,sofef00-ams601nt22
> +            # Samsung 6.28 inch, 1080x2280 pixels, 19:9 ratio
> +          - samsung,sofef00-ams628nw01

These were not in the old binding, so please explain in the commit msg
reasons for adding new front compatibles.

> +      - const: samsung,sofef00
> +
> +  reg:
> +    maxItems: 1
> +
> +  reset-gpios: true

Drop, not needed. It can stay required, though.

> +
> +  port: true

Drop

> +
> +  vddio-supply:
> +    description: VDD regulator
> +
> +  vci-supply:
> +    description: VCI regulator
> +
> +  poc-supply:
> +    description: POC regulator

1st poc, then vci then vddio to keep it more-or-less sorted. Same in
required list.

> +
> +required:
> +  - compatible
> +  - reset-gpios
> +  - vddio-supply
> +  - vci-supply
> +  - poc-supply
> +
> +unevaluatedProperties: false

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 02/12] arch: arm64: qcom: sdm845-enchilada: Specify panel name within the compatible
  2025-11-05  0:55   ` Dmitry Baryshkov
@ 2025-11-06 17:27     ` Krzysztof Kozlowski
  0 siblings, 0 replies; 20+ messages in thread
From: Krzysztof Kozlowski @ 2025-11-06 17:27 UTC (permalink / raw)
  To: Dmitry Baryshkov, david
  Cc: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Thierry Reding, Sam Ravnborg,
	Bjorn Andersson, Konrad Dybcio, Casey Connolly, dri-devel,
	devicetree, linux-kernel, linux-arm-msm, phone-devel

On 05/11/2025 01:55, Dmitry Baryshkov wrote:
> On Tue, Nov 04, 2025 at 11:16:10PM +0100, David Heidelberg via B4 Relay wrote:
>> From: David Heidelberg <david@ixit.cz>
>>
>> sofef00 is name of the DDIC, it doesn't contain name of the panel used.
>> The DDIC is also paired with other panels, so make clear which panel is
>> used.
>>
>> cosmetic: sort the node.
>>
>> Signed-off-by: David Heidelberg <david@ixit.cz>
>> ---
>>  arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts b/arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts
>> index a259eb9d45ae0..8aead6dc25e00 100644
>> --- a/arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts
>> +++ b/arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts
>> @@ -31,9 +31,9 @@ battery: battery {
>>  };
>>  
>>  &display_panel {
>> -	status = "okay";
>> +	compatible = "samsung,sofef00-ams628nw01", "samsung,sofef00";
> 
> This breaks the ABI. Please describe, why it is sensible. Other patches
> should describe whether the old DTs will continue to work or not.
> 
>>  
>> -	compatible = "samsung,sofef00";


If I read the hunk correctly, I do not see any ABI break here. What
exactly stops working or is negatively affected that it is called an ABI
break?

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 01/12] dt-bindings: panel: Add Samsung SOFEF00 DDIC with panel
  2025-11-06  8:48   ` Krzysztof Kozlowski
@ 2025-11-07 11:23     ` Neil Armstrong
  2025-11-07 11:27       ` Krzysztof Kozlowski
  0 siblings, 1 reply; 20+ messages in thread
From: Neil Armstrong @ 2025-11-07 11:23 UTC (permalink / raw)
  To: Krzysztof Kozlowski, David Heidelberg
  Cc: Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Thierry Reding, Sam Ravnborg,
	Bjorn Andersson, Konrad Dybcio, Casey Connolly, dri-devel,
	devicetree, linux-kernel, linux-arm-msm, phone-devel

On 11/6/25 09:48, Krzysztof Kozlowski wrote:
> On Tue, Nov 04, 2025 at 11:16:09PM +0100, David Heidelberg wrote:
>> Basic description for S6E3FC2X01 DDIC with attached panels
>>
>>   - Samsung AMS601NT22 6.01 inch, 1080x2160 pixels, 18:9 ratio
>>   - Samsung AMS628NW01 6.28 inch, 1080x2280 pixels, 19:9 ratio
>>
>> This panel has three supplies, while panel-simple-dsi is limited to one.
>> There is no user of this compatible, nor the compatible make sense.
> 
> There are. git grep samsung,sofef00, gives me two users.

Hmm, on -next I only see a single one:

$ grep samsung,sofef00 arch/*/boot/dts/ -R
arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts:  compatible = "samsung,sofef00";

> 
>> Remove it from simple DSI panel definitions.

Can't you mark is deprecated at first ?

>>
>> Signed-off-by: David Heidelberg <david@ixit.cz>
> 
> ..
> 
>>   additionalProperties: false
>>   
>>   required:
>>     - compatible
>> +  - power-supply
>>     - reg
>>   
>>   examples:
>> diff --git a/Documentation/devicetree/bindings/display/panel/samsung,sofef00.yaml b/Documentation/devicetree/bindings/display/panel/samsung,sofef00.yaml
>> new file mode 100644
>> index 0000000000000..527a10e3b798e
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/display/panel/samsung,sofef00.yaml
>> @@ -0,0 +1,83 @@
>> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/display/panel/samsung,sofef00.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Samsung SOFEF00 AMOLED DDIC
>> +
>> +description: The SOFEF00 is display driver IC with connected panel.
> 
> Description goes below maintainers, see example-schema.
> 
>> +
>> +maintainers:
>> +  - David Heidelberg <david@ixit.cz>
>> +
>> +allOf:
>> +  - $ref: panel-common.yaml#
>> +
>> +properties:
>> +  compatible:
>> +    items:
>> +      - enum:
>> +            # Samsung 6.01 inch, 1080x2160 pixels, 18:9 ratio
>> +          - samsung,sofef00-ams601nt22
>> +            # Samsung 6.28 inch, 1080x2280 pixels, 19:9 ratio
>> +          - samsung,sofef00-ams628nw01
> 
> These were not in the old binding, so please explain in the commit msg
> reasons for adding new front compatibles.
> 
>> +      - const: samsung,sofef00
>> +
>> +  reg:
>> +    maxItems: 1
>> +
>> +  reset-gpios: true
> 
> Drop, not needed. It can stay required, though.
> 
>> +
>> +  port: true
> 
> Drop
> 
>> +
>> +  vddio-supply:
>> +    description: VDD regulator
>> +
>> +  vci-supply:
>> +    description: VCI regulator
>> +
>> +  poc-supply:
>> +    description: POC regulator
> 
> 1st poc, then vci then vddio to keep it more-or-less sorted. Same in
> required list.
> 
>> +
>> +required:
>> +  - compatible
>> +  - reset-gpios
>> +  - vddio-supply
>> +  - vci-supply
>> +  - poc-supply
>> +
>> +unevaluatedProperties: false
> 
> Best regards,
> Krzysztof
> 


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 01/12] dt-bindings: panel: Add Samsung SOFEF00 DDIC with panel
  2025-11-07 11:23     ` Neil Armstrong
@ 2025-11-07 11:27       ` Krzysztof Kozlowski
  2025-11-07 13:10         ` Casey Connolly
  0 siblings, 1 reply; 20+ messages in thread
From: Krzysztof Kozlowski @ 2025-11-07 11:27 UTC (permalink / raw)
  To: Neil Armstrong, David Heidelberg
  Cc: Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Thierry Reding, Sam Ravnborg,
	Bjorn Andersson, Konrad Dybcio, Casey Connolly, dri-devel,
	devicetree, linux-kernel, linux-arm-msm, phone-devel

On 07/11/2025 12:23, Neil Armstrong wrote:
> On 11/6/25 09:48, Krzysztof Kozlowski wrote:
>> On Tue, Nov 04, 2025 at 11:16:09PM +0100, David Heidelberg wrote:
>>> Basic description for S6E3FC2X01 DDIC with attached panels
>>>
>>>   - Samsung AMS601NT22 6.01 inch, 1080x2160 pixels, 18:9 ratio
>>>   - Samsung AMS628NW01 6.28 inch, 1080x2280 pixels, 19:9 ratio
>>>
>>> This panel has three supplies, while panel-simple-dsi is limited to one.
>>> There is no user of this compatible, nor the compatible make sense.
>>
>> There are. git grep samsung,sofef00, gives me two users.
> 
> Hmm, on -next I only see a single one:
> 
> $ grep samsung,sofef00 arch/*/boot/dts/ -R
> arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts:  compatible = "samsung,sofef00";
> 

These are the users:

arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts
drivers/gpu/drm/panel/panel-samsung-sofef00.c

>>
>>> Remove it from simple DSI panel definitions.
> 
> Can't you mark is deprecated at first ?

Not sure what would be the benefit here. There is no negative ABI impact
here.

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 01/12] dt-bindings: panel: Add Samsung SOFEF00 DDIC with panel
  2025-11-07 11:27       ` Krzysztof Kozlowski
@ 2025-11-07 13:10         ` Casey Connolly
  2025-11-08 11:26           ` Krzysztof Kozlowski
  0 siblings, 1 reply; 20+ messages in thread
From: Casey Connolly @ 2025-11-07 13:10 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Neil Armstrong, David Heidelberg
  Cc: Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Thierry Reding, Sam Ravnborg,
	Bjorn Andersson, Konrad Dybcio, dri-devel, devicetree,
	linux-kernel, linux-arm-msm, phone-devel



On 11/7/25 12:27, Krzysztof Kozlowski wrote:
> On 07/11/2025 12:23, Neil Armstrong wrote:
>> On 11/6/25 09:48, Krzysztof Kozlowski wrote:
>>> On Tue, Nov 04, 2025 at 11:16:09PM +0100, David Heidelberg wrote:
>>>> Basic description for S6E3FC2X01 DDIC with attached panels
>>>>
>>>>    - Samsung AMS601NT22 6.01 inch, 1080x2160 pixels, 18:9 ratio
>>>>    - Samsung AMS628NW01 6.28 inch, 1080x2280 pixels, 19:9 ratio
>>>>
>>>> This panel has three supplies, while panel-simple-dsi is limited to one.
>>>> There is no user of this compatible, nor the compatible make sense.
>>>
>>> There are. git grep samsung,sofef00, gives me two users.
>>
>> Hmm, on -next I only see a single one:
>>
>> $ grep samsung,sofef00 arch/*/boot/dts/ -R
>> arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts:  compatible = "samsung,sofef00";
>>
> 
> These are the users:
> 
> arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts
> drivers/gpu/drm/panel/panel-samsung-sofef00.c
> 
>>>
>>>> Remove it from simple DSI panel definitions.
>>
>> Can't you mark is deprecated at first ?
> 
> Not sure what would be the benefit here. There is no negative ABI impact
> here.

If we want to acknowledge the potential scenario where someone is 
booting a newer kernel with an older DT then we should keep the old 
compatible in the driver right? And marking it deprecated in bindings 
would make sense.

It could be removed from the driver in the future if there is another 
variant of the panel added or we decide to cleanup.

It's still not entirely clear to what extent we care about DT/kernel 
backwards compatibility though.
> 
> Best regards,
> Krzysztof


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 01/12] dt-bindings: panel: Add Samsung SOFEF00 DDIC with panel
  2025-11-07 13:10         ` Casey Connolly
@ 2025-11-08 11:26           ` Krzysztof Kozlowski
  0 siblings, 0 replies; 20+ messages in thread
From: Krzysztof Kozlowski @ 2025-11-08 11:26 UTC (permalink / raw)
  To: Casey Connolly, Neil Armstrong, David Heidelberg
  Cc: Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Thierry Reding, Sam Ravnborg,
	Bjorn Andersson, Konrad Dybcio, dri-devel, devicetree,
	linux-kernel, linux-arm-msm, phone-devel

On 07/11/2025 14:10, Casey Connolly wrote:
> 
> 
> On 11/7/25 12:27, Krzysztof Kozlowski wrote:
>> On 07/11/2025 12:23, Neil Armstrong wrote:
>>> On 11/6/25 09:48, Krzysztof Kozlowski wrote:
>>>> On Tue, Nov 04, 2025 at 11:16:09PM +0100, David Heidelberg wrote:
>>>>> Basic description for S6E3FC2X01 DDIC with attached panels
>>>>>
>>>>>    - Samsung AMS601NT22 6.01 inch, 1080x2160 pixels, 18:9 ratio
>>>>>    - Samsung AMS628NW01 6.28 inch, 1080x2280 pixels, 19:9 ratio
>>>>>
>>>>> This panel has three supplies, while panel-simple-dsi is limited to one.
>>>>> There is no user of this compatible, nor the compatible make sense.
>>>>
>>>> There are. git grep samsung,sofef00, gives me two users.
>>>
>>> Hmm, on -next I only see a single one:
>>>
>>> $ grep samsung,sofef00 arch/*/boot/dts/ -R
>>> arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts:  compatible = "samsung,sofef00";
>>>
>>
>> These are the users:
>>
>> arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts
>> drivers/gpu/drm/panel/panel-samsung-sofef00.c
>>
>>>>
>>>>> Remove it from simple DSI panel definitions.
>>>
>>> Can't you mark is deprecated at first ?
>>
>> Not sure what would be the benefit here. There is no negative ABI impact
>> here.
> 
> If we want to acknowledge the potential scenario where someone is 
> booting a newer kernel with an older DT then we should keep the old 
> compatible in the driver right? And marking it deprecated in bindings 
> would make sense.


We are not talking about removing compatible from the driver. If by any
chance we do, it is not explained here in this commit msg and would be
obviously a no-go.

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2025-11-08 11:26 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-04 22:16 [PATCH 00/12] Make Samsung SOFEF00 DDIC and panel work David Heidelberg via B4 Relay
2025-11-04 22:16 ` [PATCH 01/12] dt-bindings: panel: Add Samsung SOFEF00 DDIC with panel David Heidelberg via B4 Relay
2025-11-06  8:48   ` Krzysztof Kozlowski
2025-11-07 11:23     ` Neil Armstrong
2025-11-07 11:27       ` Krzysztof Kozlowski
2025-11-07 13:10         ` Casey Connolly
2025-11-08 11:26           ` Krzysztof Kozlowski
2025-11-04 22:16 ` [PATCH 02/12] arch: arm64: qcom: sdm845-enchilada: Specify panel name within the compatible David Heidelberg via B4 Relay
2025-11-05  0:55   ` Dmitry Baryshkov
2025-11-06 17:27     ` Krzysztof Kozlowski
2025-11-04 22:16 ` [PATCH 03/12] drm/panel: sofef00: Clean up panel description after s6e3fc2x01 removal David Heidelberg via B4 Relay
2025-11-04 22:16 ` [PATCH 04/12] drm/panel: sofef00: Handle all regulators David Heidelberg via B4 Relay
2025-11-04 22:16 ` [PATCH 05/12] drm/panel: sofef00: Split sending commands to the enable/disable functions David Heidelberg via B4 Relay
2025-11-04 22:16 ` [PATCH 06/12] drm/panel: sofef00: Introduce page macro David Heidelberg via B4 Relay
2025-11-04 22:16 ` [PATCH 07/12] drm/panel: sofef00: Add prepare_prev_first flag to drm_panel David Heidelberg via B4 Relay
2025-11-04 22:16 ` [PATCH 08/12] drm/panel: sofef00: Initialise at 50% brightness David Heidelberg via B4 Relay
2025-11-04 22:16 ` [PATCH 09/12] drm/panel: sofef00: Name of compatible should correspond to the panel used David Heidelberg via B4 Relay
2025-11-04 22:16 ` [PATCH 10/12] drm/panel: sofef00: Simplify get_modes David Heidelberg via B4 Relay
2025-11-04 22:16 ` [PATCH 11/12] drm/panel: sofef00: Mark the LPM mode always-on David Heidelberg via B4 Relay
2025-11-04 22:16 ` [PATCH 12/12] drm/panel: sofef00: Non-continuous mode and video burst are supported David Heidelberg via B4 Relay

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).