dt-bindings: vendor-prefixes: Add prefix for EBBG
Subsystems (5)
A message that is not in the archive (sent off-list or not yet received): [email protected]
Joel Selvaraj
maintainerPATCH 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
@@ -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
Quoted 4 lines · Joel Selvaraj
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.
Signed-off-by Joel Selvaraj <[email protected]>
Best regards,
Krzysztof
Joel Selvaraj
maintainerPATCH 2/3 dt-bindings: display: Add bindings for EBBG FT8719
In reply to a message not in the archiveAdd 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
@@ -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
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.
Signed-off-by Joel Selvaraj <[email protected]>--- .../bindings/display/panel/ebbg,ft8719.yaml | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/panel/ebbg,ft8719.yamlDocumentation/devicetree/bindings/display/panel/ebbg,ft8719.yaml new file +15
-0@@ -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
Joel Selvaraj
maintainerRe: [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
Joel Selvaraj
maintainerRe: [PATCH 2/3] dt-bindings: display: Add bindings for EBBG FT8719
In reply to Krzysztof KozlowskiHi 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: trueBoth 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
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: trueBoth should not be needed - they come from
panel-common.yaml. They might stay in listI see that almost 54 panels mention "port: true" and 46 panels mention "backlight: true". Almost all panels refer the
panel-common.yamltoo.
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
Joel Selvaraj
maintainerPATCH 3/3 drm/panel: introduce ebbg,ft8719 panel
In reply to a message not in the archiveAdd 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
@@ -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
@@ -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
@@ -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
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.
Signed-off-by Joel Selvaraj <[email protected]>
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
Joel Selvaraj
maintainerRe: [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()ininclude/drm/drm_mipi_dbi.hthis 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 bydsi_generic_write_seq().
Quoted 4 lines
That means
mipi_dsi_generic_write()followed bymipi_dsi_dcs_write_buffer(). But if you look at these commands indrivers/gpu/drm/drm_mipi_dsi.cyou 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
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()ininclude/drm/drm_mipi_dbi.hthis is very similar.Does the ({..}) style blocking used in
mipi_dbi_commandhelp 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 bydsi_generic_write_seq().That means
mipi_dsi_generic_write()followed bymipi_dsi_dcs_write_buffer(). But if you look at these commands indrivers/gpu/drm/drm_mipi_dsi.cyou 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_hostcode. However, inmipi_dsi_create_packetfunction, themsg->typevalue 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_bufferfor 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
Joel Selvaraj
maintainerRe: [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