Skip to contentSkip to conversation

dt-bindings: vendor-prefixes: Add prefix for EBBG

PATCH Superseded Joel Selvaraj 3 participants 12 messages May 6, 2022 – May 25, 2022 1 message not in the archive

Subsystems (5)

v1 of 4 Superseded Latest is v4 →

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

Joel Selvaraj

author maintainer
#1 lore raw

PATCH 1/3 dt-bindings: vendor-prefixes: Add prefix for EBBG

Add a prefix for EBBG. They manufacture displays which are used in some Xiaomi phones, but I could not find much details about the company.

---
 Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
 1 file changed, 2 insertions(+)
Documentation/devicetree/bindings/vendor-prefixes.yaml +2 -0
index 80e80fa53f8a..effd1cb995cf 100644
@@ -337,6 +337,8 @@ patternProperties:
     description: Embedded Artists AB
   "^ebang,.*":
     description: Zhejiang Ebang Communication Co., Ltd
+  "^ebbg,.*":
+    description: EBBG
   "^ebs-systart,.*":
     description: EBS-SYSTART GmbH
   "^ebv,.*":
Signature · 1 line
2.35.1
author maintainer
#3 lore raw

PATCH 2/3 dt-bindings: display: Add bindings for EBBG FT8719

In reply to a message not in the archive

Add bindings for the EBBG FT8719 6.18" 2246x1080 DSI video mode panel, which can be found on some Xiaomi Poco F1 phones. The backlight is managed through the QCOM WLED driver.

---
 .../bindings/display/panel/ebbg,ft8719.yaml   | 78 +++++++++++++++++++
 1 file changed, 78 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/display/panel/ebbg,ft8719.yaml
Documentation/devicetree/bindings/display/panel/ebbg,ft8719.yaml new file +78 -0
new file mode 100644
index 000000000000..fac6c9692c55
@@ -0,0 +1,78 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/panel/ebbg,ft8719.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: EBBG FT8719 MIPI-DSI LCD panel
+
+maintainers:
+  - Joel Selvaraj <[email protected]>
+
+description: |
+  The FT8719 panel from EBBG is a FHD+ LCD display panel with a resolution
+  of 1080x2246. It is a video mode DSI panel. The backlight is managed
+  through the QCOM WLED driver.
+
+allOf:
+  - $ref: panel-common.yaml#
+
+properties:
+  compatible:
+    const: ebbg,ft8719
+
+  reg:
+    description: DSI virtual channel of the peripheral
+
+  reset-gpios:
+    description: phandle of gpio for reset line
+
+  vddio-supply:
+    description: phandle of the Power IC supply regulator
+
+  vddpos-supply:
+    description: phandle of the positive boost supply regulator
+
+  vddneg-supply:
+    description: phandle of the negative boost supply regulator
+
+  backlight: true
+  port: true
+
+required:
+  - compatible
+  - reg
+  - vddio-supply
+  - vddpos-supply
+  - vddneg-supply
+  - reset-gpios
+  - port
+
+unevaluatedProperties: false
+
+examples:
+  - |+
+    #include <dt-bindings/gpio/gpio.h>
+    dsi0 {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      panel@0 {
+        compatible = "ebbg,ft8719";
+        reg = <0>;
+
+        vddio-supply = <&vreg_l14a_1p88>;
+        vddpos-supply = <&lab>;
+        vddneg-supply = <&ibb>;
+
+        reset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>;
+
+        backlight = <&pmi8998_wled>;
+
+        port {
+          ebbg_ft8719_in_0: endpoint {
+            remote-endpoint = <&dsi0_out>;
+          };
+        };
+      };
+    };
Signature · 1 line
2.35.1
#4 lore raw

Re: [PATCH 2/3] dt-bindings: display: Add bindings for EBBG FT8719

Quoted 31 lines · Joel Selvaraj

Add bindings for the EBBG FT8719 6.18" 2246x1080 DSI video mode panel, which can be found on some Xiaomi Poco F1 phones. The backlight is managed through the QCOM WLED driver.

---
 .../bindings/display/panel/ebbg,ft8719.yaml   | 78 +++++++++++++++++++
 1 file changed, 78 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/display/panel/ebbg,ft8719.yaml
Documentation/devicetree/bindings/display/panel/ebbg,ft8719.yaml new file +15 -0
new file mode 100644
index 000000000000..fac6c9692c55
@@ -0,0 +1,78 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/panel/ebbg,ft8719.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: EBBG FT8719 MIPI-DSI LCD panel
+
+maintainers:
+  - Joel Selvaraj <[email protected]>
+
+description: |
+  The FT8719 panel from EBBG is a FHD+ LCD display panel with a resolution
+  of 1080x2246. It is a video mode DSI panel. The backlight is managed
+  through the QCOM WLED driver.

Documentation/devicetree/bindings/display/panel/ebbg,ft8719.yaml line 25

Quoted 10 lines
Documentation/devicetree/bindings/display/panel/ebbg,ft8719.yaml new file +10 -0
+
+allOf:
+  - $ref: panel-common.yaml#
+
+properties:
+  compatible:
+    const: ebbg,ft8719
+
+  reg:
+    description: DSI virtual channel of the peripheral

maxItems

Documentation/devicetree/bindings/display/panel/ebbg,ft8719.yaml line 28

Quoted 3 lines
Documentation/devicetree/bindings/display/panel/ebbg,ft8719.yaml new file +3 -0
+
+  reset-gpios:
+    description: phandle of gpio for reset line

Skip description - it's obvious.

Documentation/devicetree/bindings/display/panel/ebbg,ft8719.yaml line 31

Quoted 3 lines
Documentation/devicetree/bindings/display/panel/ebbg,ft8719.yaml new file +3 -0
+
+  vddio-supply:
+    description: phandle of the Power IC supply regulator

s/phandle of//

Documentation/devicetree/bindings/display/panel/ebbg,ft8719.yaml line 40

Quoted 9 lines
Documentation/devicetree/bindings/display/panel/ebbg,ft8719.yaml new file +9 -0
+
+  vddpos-supply:
+    description: phandle of the positive boost supply regulator
+
+  vddneg-supply:
+    description: phandle of the negative boost supply regulator
+
+  backlight: true
+  port: true

Both should not be needed - they come from panel-common.yaml. They might stay in list

Quoted 4 lines
Documentation/devicetree/bindings/display/panel/ebbg,ft8719.yaml new file +4 -0
+
+required:
+  - compatible
+  - reg

Documentation/devicetree/bindings/display/panel/ebbg,ft8719.yaml line 54

Quoted 10 lines
Documentation/devicetree/bindings/display/panel/ebbg,ft8719.yaml new file +10 -0
+  - vddio-supply
+  - vddpos-supply
+  - vddneg-supply
+  - reset-gpios
+  - port
+
+unevaluatedProperties: false
+
+examples:
+  - |+

No need for +

Documentation/devicetree/bindings/display/panel/ebbg,ft8719.yaml line 56

Quoted 2 lines
Documentation/devicetree/bindings/display/panel/ebbg,ft8719.yaml new file +2 -0
+    #include <dt-bindings/gpio/gpio.h>
+    dsi0 {

Just dsi

Best regards,
Krzysztof

author maintainer
#5 lore raw

Re: [PATCH 2/3] dt-bindings: display: Add bindings for EBBG FT8719

Hi Krzysztof Kozlowski,

Thank you for your review. Will fix them in v2.

Regards
Joel Selvaraj

author maintainer
#6 lore raw

Re: [PATCH 2/3] dt-bindings: display: Add bindings for EBBG FT8719

In reply to Krzysztof Kozlowski

Hi Krzysztof Kozlowski,

A quick question.

Quoted 5 lines · Krzysztof Kozlowski

Documentation/devicetree/bindings/display/panel/ebbg,ft8719.yaml line 40

Quoted 2 lines
Documentation/devicetree/bindings/display/panel/ebbg,ft8719.yaml new file +2 -0
+  backlight: true
+  port: true

Both should not be needed - they come from panel-common.yaml. They might stay in list

I see that almost 54 panels mention "port: true" and 46 panels mention "backlight: true". Almost all panels refer the panel-common.yaml too.

So I think specifying them as true is just for extra clarity that these properties are usually used by this panel? But I am not very sure.

Should I leave them be? or it's still recommended to remove them?

Best Regards,
Joel Selvaraj

#7 lore raw

Re: [PATCH 2/3] dt-bindings: display: Add bindings for EBBG FT8719

Quoted 5 lines · Joel Selvaraj

Hi Krzysztof Kozlowski,

A quick question.

On 07/05/22 21:02, Krzysztof Kozlowski wrote:

Quoted 8 lines
Quoted 5 lines

Documentation/devicetree/bindings/display/panel/ebbg,ft8719.yaml line 40

Quoted 2 lines
Documentation/devicetree/bindings/display/panel/ebbg,ft8719.yaml new file +2 -0
+  backlight: true
+  port: true

Both should not be needed - they come from panel-common.yaml. They might stay in list

I see that almost 54 panels mention "port: true" and 46 panels mention "backlight: true". Almost all panels refer the panel-common.yaml too.

They need them only if they use "additionalProperties:false".

Quoted 3 lines

So I think specifying them as true is just for extra clarity that these properties are usually used by this panel? But I am not very sure.

If they don't use additionalProperties:false, then the explanation could be:
1. Just for clarity as you say, because they might want to require property/node which is listed in the properties, otherwise it is a bit confusing.
2. They were copying first example without actually checking...

Quoted 1 line

Should I leave them be? or it's still recommended to remove them?

It's not a big deal and I do not have strong opinion, but I would propose to remove them from list of properties and still keep port in "required"

Best regards,
Krzysztof

author maintainer
#8 lore raw

PATCH 3/3 drm/panel: introduce ebbg,ft8719 panel

In reply to a message not in the archive

Add DRM panel driver for EBBG FT8719 6.18" 2246x1080 DSI video mode panel, which can be found on some Xiaomi Poco F1 phones. The panel's backlight is managed through QCOM WLED driver.

---
 MAINTAINERS                               |   7 +
 drivers/gpu/drm/panel/Kconfig             |  11 +
 drivers/gpu/drm/panel/Makefile            |   1 +
 drivers/gpu/drm/panel/panel-ebbg-ft8719.c | 362 ++++++++++++++++++++++
 4 files changed, 381 insertions(+)
 create mode 100644 drivers/gpu/drm/panel/panel-ebbg-ft8719.c
MAINTAINERS +7 -0
index cd0f68d4a34a..dfd2c53aea00 100644
@@ -6018,6 +6018,13 @@ S:	Maintained
 F:	Documentation/devicetree/bindings/display/bridge/chipone,icn6211.yaml
 F:	drivers/gpu/drm/bridge/chipone-icn6211.c
 
+DRM DRIVER FOR EBBG FT8719 PANEL
+M:	Joel Selvaraj <[email protected]>
+S:	Maintained
+T:	git git://anongit.freedesktop.org/drm/drm-misc
+F:	Documentation/devicetree/bindings/display/panel/ebbg,ft8719.yaml
+F:	drivers/gpu/drm/panel/panel-ebbg-ft8719.c
+
 DRM DRIVER FOR FARADAY TVE200 TV ENCODER
 M:	Linus Walleij <[email protected]>
 S:	Maintained
drivers/gpu/drm/panel/Kconfig +11 -0
index 9989a316fe88..77176df2e2ec 100644
@@ -114,6 +114,17 @@ config DRM_PANEL_EDP
 	  that it can be automatically turned off when the panel goes into a
 	  low power state.
 
+config DRM_PANEL_EBBG_FT8719
+	tristate "EBBG FT8719 panel driver"
+	depends on OF
+	depends on DRM_MIPI_DSI
+	depends on BACKLIGHT_CLASS_DEVICE
+	help
+	  Say Y here if you want to enable support for the EBBG FT8719
+	  video mode panel. Mainly found on Xiaomi Poco F1 mobile phone.
+	  The panel has a resolution of 1080x2246. It provides a MIPI DSI
+	  interface to the host.
+
 config DRM_PANEL_ELIDA_KD35T133
 	tristate "Elida KD35T133 panel driver"
 	depends on OF
drivers/gpu/drm/panel/Makefile +1 -0
index d99fbbce49d1..47cc20c1a770 100644
@@ -9,6 +9,7 @@ obj-$(CONFIG_DRM_PANEL_DSI_CM) += panel-dsi-cm.o
 obj-$(CONFIG_DRM_PANEL_LVDS) += panel-lvds.o
 obj-$(CONFIG_DRM_PANEL_SIMPLE) += panel-simple.o
 obj-$(CONFIG_DRM_PANEL_EDP) += panel-edp.o
+obj-$(CONFIG_DRM_PANEL_EBBG_FT8719) += panel-ebbg-ft8719.o
 obj-$(CONFIG_DRM_PANEL_ELIDA_KD35T133) += panel-elida-kd35t133.o
 obj-$(CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02) += panel-feixin-k101-im2ba02.o
 obj-$(CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D) += panel-feiyang-fy07024di26a30d.o
drivers/gpu/drm/panel/panel-ebbg-ft8719.c new file +362 -0

362 lines not on this page · raw message

Signature · 1 line
2.35.1
#9 lore raw

Re: [PATCH 3/3] drm/panel: introduce ebbg,ft8719 panel

Quoted 5 lines · Joel Selvaraj

Add DRM panel driver for EBBG FT8719 6.18" 2246x1080 DSI video mode panel, which can be found on some Xiaomi Poco F1 phones. The panel's backlight is managed through QCOM WLED driver.

Cool!

Quoted 5 lines
drivers/gpu/drm/panel/panel-ebbg-ft8719.c new file +5 -0
+#define dsi_generic_write_seq(dsi, seq...) do {                                \
+               static const u8 d[] = { seq };                          \
+               int ret;                                                \
+               ret = mipi_dsi_generic_write(dsi, d, ARRAY_SIZE(d));    \
+               if (ret < 0)                                            \

drivers/gpu/drm/panel/panel-ebbg-ft8719.c line 62

Quoted 10 lines
drivers/gpu/drm/panel/panel-ebbg-ft8719.c new file +10 -0
+                       return ret;                                     \
+       } while (0)
+
+#define dsi_dcs_write_seq(dsi, seq...) do {                            \
+               static const u8 d[] = { seq };                          \
+               int ret;                                                \
+               ret = mipi_dsi_dcs_write_buffer(dsi, d, ARRAY_SIZE(d)); \
+               if (ret < 0)                                            \
+                       return ret;                                     \
+       } while (0)

First I don't see what the do {} while (0) buys you, just use a basic block {}.

Second look at mipi_dbi_command() in include/drm/drm_mipi_dbi.h this is very similar.

So this utility macro should be in a generic file such as include/drm/drm_mipi_dsi.h. (Can be added in a separate patch.)

Third I think you need only one macro (see below).

drivers/gpu/drm/panel/panel-ebbg-ft8719.c line 83

Quoted 10 lines
drivers/gpu/drm/panel/panel-ebbg-ft8719.c new file +10 -0
+static int ebbg_ft8719_on(struct ebbg_ft8719 *ctx)
+{
+       struct mipi_dsi_device *dsi = ctx->dsi;
+       struct device *dev = &dsi->dev;
+       int ret;
+
+       dsi->mode_flags |= MIPI_DSI_MODE_LPM;
+
+       dsi_dcs_write_seq(dsi, 0x00, 0x00);
+       dsi_generic_write_seq(dsi, 0xff, 0x87, 0x19, 0x01);

It's dubious that you always have dsi_dcs_write_seq() followed by dsi_generic_write_seq().

That means mipi_dsi_generic_write() followed by mipi_dsi_dcs_write_buffer(). But if you look at these commands in drivers/gpu/drm/drm_mipi_dsi.c you see that they do the same thing!

Doesn't it work to combine them into one call for each pair?

drivers/gpu/drm/panel/panel-ebbg-ft8719.c line 85

Quoted 2 lines
drivers/gpu/drm/panel/panel-ebbg-ft8719.c new file +2 -0
+       dsi_dcs_write_seq(dsi, 0x00, 0x80);
+       dsi_generic_write_seq(dsi, 0xff, 0x87, 0x19);

Lots of magic numbers. You don't have a datasheet do you? So you could #define some of the magic?

Quoted 2 lines
(quoted diff) +2 -0
+       if (ctx->prepared)
+               return 0;

(...)

Quoted 2 lines
(quoted diff) +2 -0
+       ctx->prepared = true;
+       return 0;

(...)

Quoted 2 lines
(quoted diff) +2 -0
+       if (!ctx->prepared)
+               return 0;

(...)

drivers/gpu/drm/panel/panel-ebbg-ft8719.c line 230

Quoted 2 lines
drivers/gpu/drm/panel/panel-ebbg-ft8719.c new file +2 -0
+       ctx->prepared = false;
+       return 0;

Drop this state variable it is a reimplementation of something that the core will track for you.

The rest looks nice!

Yours,
Linus Walleij

author maintainer
#10 lore raw

Re: [PATCH 3/3] drm/panel: introduce ebbg,ft8719 panel

Hi Linus Walleij,

Quoted 11 lines · Linus Walleij

drivers/gpu/drm/panel/panel-ebbg-ft8719.c line 62

Quoted 7 lines · Joel Selvaraj
drivers/gpu/drm/panel/panel-ebbg-ft8719.c new file +7 -0
+#define dsi_dcs_write_seq(dsi, seq...) do {                            \
+               static const u8 d[] = { seq };                          \
+               int ret;                                                \
+               ret = mipi_dsi_dcs_write_buffer(dsi, d, ARRAY_SIZE(d)); \
+               if (ret < 0)                                            \
+                       return ret;                                     \
+       } while (0)

First I don't see what the do {} while (0) buys you, just use a basic block {}.

The do {} while (0) in macro ensures there is a semicolon when it's used. With normal blocking, it would have issues with if conditions? I read about them here: https://stackoverflow.com/a/2381339

Quoted 2 lines

Second look at mipi_dbi_command() in include/drm/drm_mipi_dbi.h this is very similar.

Does the ({..}) style blocking used in mipi_dbi_command help workaround the semicolon issue I mentioned above?

Quoted 3 lines

So this utility macro should be in a generic file such as include/drm/drm_mipi_dsi.h. (Can be added in a separate patch.)

I agree. Could be done in another patch.

Quoted 16 lines

Third I think you need only one macro (see below).

drivers/gpu/drm/panel/panel-ebbg-ft8719.c line 83

Quoted 10 lines
drivers/gpu/drm/panel/panel-ebbg-ft8719.c new file +10 -0
+static int ebbg_ft8719_on(struct ebbg_ft8719 *ctx)
+{
+       struct mipi_dsi_device *dsi = ctx->dsi;
+       struct device *dev = &dsi->dev;
+       int ret;
+
+       dsi->mode_flags |= MIPI_DSI_MODE_LPM;
+
+       dsi_dcs_write_seq(dsi, 0x00, 0x00);
+       dsi_generic_write_seq(dsi, 0xff, 0x87, 0x19, 0x01);

It's dubious that you always have dsi_dcs_write_seq() followed by dsi_generic_write_seq().

Quoted 4 lines

That means mipi_dsi_generic_write() followed by mipi_dsi_dcs_write_buffer(). But if you look at these commands in drivers/gpu/drm/drm_mipi_dsi.c you see that they do the same thing!

They almost do the same thing except for the msg.type values? Mostly the msg.type value is used to just check whether it's a long or short write in the msm dsi_host code. However, in mipi_dsi_create_packet function, the msg->type value is used to calculate packet->header[0] as follows:

packet->header[0] = ((msg->channel & 0x3) << 6) | (msg->type & 0x3f);

Wouldn't the difference between the mipi_dsi_dcs_write_buffer's and mipi_dsi_generic_write's msg.type values cause issue here?

I tried using mipi_dsi_dcs_write_buffer for all commands and the panel worked fine, but I am not sure if it's correct to do so?

Quoted 2 lines

Lots of magic numbers. You don't have a datasheet do you? So you could #define some of the magic?

Unfortunately, I don't have a datasheet and the power on sequence is taken from downstream android dts. It works pretty well though. So I don't think I can #define any of these magic.

Quoted 4 lines

Doesn't it work to combine them into one call for each pair?

Quoted 2 lines
drivers/gpu/drm/panel/panel-ebbg-ft8719.c new file +2 -0
+       dsi_dcs_write_seq(dsi, 0x00, 0x80);
+       dsi_generic_write_seq(dsi, 0xff, 0x87, 0x19);

By using a macro? We can... but I am not sure what (0x00, 0x80), (0x00, 0xa0),etc type of commands signify without the datasheet, so I am not sure what to name them in the macro and make any sensible meaning out of it.

Quoted 7 lines
Quoted 3 lines
(quoted diff) +2 -0
+       if (ctx->prepared)
+               return 0;

(...)

Quoted 2 lines
(quoted diff) +2 -0
+       ctx->prepared = true;
+       return 0;

(...)

Quoted 8 lines
Quoted 2 lines
(quoted diff) +2 -0
+       if (!ctx->prepared)
+               return 0;

(...)

drivers/gpu/drm/panel/panel-ebbg-ft8719.c line 230

Quoted 2 lines
drivers/gpu/drm/panel/panel-ebbg-ft8719.c new file +2 -0
+       ctx->prepared = false;
+       return 0;

Drop this state variable it is a reimplementation of something that the core will track for you.

ok. Will drop them in the next version.

Quoted 1 line

The rest looks nice!

Thanks for your review!

Quoted 2 lines

Yours,
Linus Walleij

Best Regards,
Joel Selvaraj

#11 lore raw

Re: [PATCH 3/3] drm/panel: introduce ebbg,ft8719 panel

Quoted 10 lines · Joel Selvaraj
Quoted 9 lines · Linus Walleij
Quoted 7 lines · Joel Selvaraj
drivers/gpu/drm/panel/panel-ebbg-ft8719.c new file +7 -0
+#define dsi_dcs_write_seq(dsi, seq...) do {                            \
+               static const u8 d[] = { seq };                          \
+               int ret;                                                \
+               ret = mipi_dsi_dcs_write_buffer(dsi, d, ARRAY_SIZE(d)); \
+               if (ret < 0)                                            \
+                       return ret;                                     \
+       } while (0)
Quoted 6 lines
Quoted 2 lines

First I don't see what the do {} while (0) buys you, just use a basic block {}.

The do {} while (0) in macro ensures there is a semicolon when it's used. With normal blocking, it would have issues with if conditions? I read about them here: https://stackoverflow.com/a/2381339

Hm that seems true, it enforces the semicolon ; at the end of the statement which is nice. I suppose we should fix the other macro as well.

Noralf added this ({}) form in 02dd95fe31693, so maybe he wants to chip in.

Quoted 5 lines
Quoted 2 lines

Second look at mipi_dbi_command() in include/drm/drm_mipi_dbi.h this is very similar.

Does the ({..}) style blocking used in mipi_dbi_command help workaround the semicolon issue I mentioned above?

Nope. But add the rate limited error print please!

Quoted 13 lines
Quoted 7 lines

It's dubious that you always have dsi_dcs_write_seq() followed by dsi_generic_write_seq().

That means mipi_dsi_generic_write() followed by mipi_dsi_dcs_write_buffer(). But if you look at these commands in drivers/gpu/drm/drm_mipi_dsi.c you see that they do the same thing!

They almost do the same thing except for the msg.type values? Mostly the msg.type value is used to just check whether it's a long or short write in the msm dsi_host code. However, in mipi_dsi_create_packet function, the msg->type value is used to calculate packet->header[0] as follows:

Quoted 7 lines

packet->header[0] = ((msg->channel & 0x3) << 6) | (msg->type & 0x3f);

Wouldn't the difference between the mipi_dsi_dcs_write_buffer's and mipi_dsi_generic_write's msg.type values cause issue here?

I tried using mipi_dsi_dcs_write_buffer for all commands and the panel worked fine, but I am not sure if it's correct to do so?

I think it's fine? The only issue would be if there is a DSI host controller that only supports short writes, and in that case it should emulate long writes by breaking long messages apart. (My amateur view at least.)

Quoted 6 lines
Quoted 2 lines

Lots of magic numbers. You don't have a datasheet do you? So you could #define some of the magic?

Unfortunately, I don't have a datasheet and the power on sequence is taken from downstream android dts. It works pretty well though. So I don't think I can #define any of these magic.

If you know which display controller the display is using (usually Novatek nnnnn, Ilitek nnnn etc someting like that) there is often a datasheet for the display controller available but the display per se often obscures the display controller.

Quoted 8 lines
Quoted 4 lines

Doesn't it work to combine them into one call for each pair?

Quoted 2 lines
(quoted diff) +2 -0
+       dsi_dcs_write_seq(dsi, );
+       dsi_generic_write_seq(dsi, 0xff, 0x87, 0x19);

By using a macro? We can... but I am not sure what (0x00, 0x80), (0x00, 0xa0),etc type of commands signify without the datasheet, so I am not sure what to name them in the macro and make any sensible meaning out of it.

I meant just sending dsi_generic_write_seq() with everything in it:

dsi_generic_write_seq(dsi, 0x00, 0x80, 0xff, 0x87, 0x19);

Instead of two writes. Doesn't this work?

Yours,
Linus Walleij

author maintainer
#12 lore raw

Re: [PATCH 3/3] drm/panel: introduce ebbg,ft8719 panel

Hi Linus Walleij

Quoted 1 line · Linus Walleij

Nope. But add the rate limited error print please!

Will do.

Quoted 11 lines
Quoted 6 lines
Quoted 2 lines

Lots of magic numbers. You don't have a datasheet do you? So you could #define some of the magic?

Unfortunately, I don't have a datasheet and the power on sequence is taken from downstream android dts. It works pretty well though. So I don't think I can #define any of these magic.

If you know which display controller the display is using (usually Novatek nnnnn, Ilitek nnnn etc someting like that) there is often a datasheet for the display controller available but the display per se often obscures the display controller.

Well, I recently figured that the panel works perfectly without all the magic commands. So, no need for #defines of those magics/documentation for now.

Quoted 9 lines
Quoted 8 lines
Quoted 4 lines

Doesn't it work to combine them into one call for each pair?

Quoted 2 lines
(quoted diff) +2 -0
+       dsi_dcs_write_seq(dsi, );
+       dsi_generic_write_seq(dsi, 0xff, 0x87, 0x19);

By using a macro? We can... but I am not sure what (0x00, 0x80), (0x00, 0xa0),etc type of commands signify without the datasheet, so I am not sure what to name them in the macro and make any sensible meaning out of it.

Quoted 6 lines

I meant just sending dsi_generic_write_seq() with everything in it:

dsi_generic_write_seq(dsi, 0x00, 0x80, 0xff, 0x87, 0x19);

Instead of two writes. Doesn't this work?

I am not sure about whether it will work. Can multiple DCS commands can be combined into single write? Don't know much about this.

Anyways since the panel works without all these magic commands, these will be removed in the next version.

Quoted 2 lines

Yours,
Linus Walleij

Thanks and Regards
Joel Selvaraj