Skip to contentSkip to conversation

dt-bindings: display: simple: Add Innolux G156HCE-L01 panel

PATCH Applied Marek Vasut 4 participants 11 messages Jul 31, 2023 – Aug 4, 2023

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

PATCH 1/2 dt-bindings: display: simple: Add Innolux G156HCE-L01 panel

Add entry for Innolux G156HCE-L01 15.6" 1920x1080 24bpp dual-link LVDS TFT panel. Documentation is available at [1].

[1] https://www.distec.de/fileadmin/pdf/produkte/TFT-Displays/Innolux/G156HCE-L01_Rev.C3_Datasheet.pdf

---
Cc: Conor Dooley <[email protected]>
Cc: Daniel Vetter <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Krzysztof Kozlowski <[email protected]>
Cc: Neil Armstrong <[email protected]>
Cc: Rob Herring <[email protected]>
Cc: Sam Ravnborg <[email protected]>
Cc: Thierry Reding <[email protected]>
Cc: [email protected]
Cc: [email protected]

---
 .../devicetree/bindings/display/panel/panel-simple.yaml         | 2 ++
 1 file changed, 2 insertions(+)
Documentation/devicetree/bindings/display/panel/panel-simple.yaml +2 -0
index 1751ad56b158c..25b4589d4a581 100644
@@ -192,6 +192,8 @@ properties:
       - innolux,n116bge
         # InnoLux 13.3" FHD (1920x1080) eDP TFT LCD panel
       - innolux,n125hce-gn1
+        # InnoLux 15.6" FHD (1920x1080) TFT LCD panel
+      - innolux,g156hce-l01
         # InnoLux 15.6" WXGA TFT LCD panel
       - innolux,n156bge-l21
         # Innolux P120ZDG-BF1 12.02 inch eDP 2K display panel
Signature · 1 line
2.40.1
#1 lore raw

PATCH 2/2 drm/panel-simple: Add Innolux G156HCE-L01 panel entry

Add support for Innolux G156HCE-L01 15.6" 1920x1080 24bpp dual-link LVDS TFT panel. Documentation is available at [1]. The middle frequency is tuned slightly upward from 70.93 MHz to 72 MHz, otherwise the panel shows slight flicker.

[1] https://www.distec.de/fileadmin/pdf/produkte/TFT-Displays/Innolux/G156HCE-L01_Rev.C3_Datasheet.pdf

---
Cc: Conor Dooley <[email protected]>
Cc: Daniel Vetter <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Krzysztof Kozlowski <[email protected]>
Cc: Neil Armstrong <[email protected]>
Cc: Rob Herring <[email protected]>
Cc: Sam Ravnborg <[email protected]>
Cc: Thierry Reding <[email protected]>
Cc: [email protected]
Cc: [email protected]

---
 drivers/gpu/drm/panel/panel-simple.c | 34 ++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)
drivers/gpu/drm/panel/panel-simple.c +34 -0
index 396a22177c674..417dd69054fc1 100644
@@ -2377,6 +2377,37 @@ static const struct panel_desc innolux_g121x1_l03 = {
 	},
 };
 
+static const struct display_timing innolux_g156hce_l01_timings = {
+	.pixelclock = { 120000000, 144000000, 150000000 },
+	.hactive = { 1920, 1920, 1920 },
+	.hfront_porch = { 80, 90, 100 },
+	.hback_porch = { 80, 90, 100 },
+	.hsync_len = { 20, 30, 30 },
+	.vactive = { 1080, 1080, 1080 },
+	.vfront_porch = { 3, 10, 20 },
+	.vback_porch = { 3, 10, 20 },
+	.vsync_len = { 4, 10, 10 },
+};
+
+static const struct panel_desc innolux_g156hce_l01 = {
+	.timings = &innolux_g156hce_l01_timings,
+	.num_timings = 1,
+	.bpc = 8,
+	.size = {
+		.width = 344,
+		.height = 194,
+	},
+	.delay = {
+		.prepare = 1,		/* T1+T2 */
+		.enable = 450,		/* T5 */
+		.disable = 200,		/* T6 */
+		.unprepare = 10,	/* T3+T7 */
+	},
+	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+	.bus_flags = DRM_BUS_FLAG_DE_HIGH,
+	.connector_type = DRM_MODE_CONNECTOR_LVDS,
+};
+
 static const struct drm_display_mode innolux_n156bge_l21_mode = {
 	.clock = 69300,
 	.hdisplay = 1366,
@@ -4243,6 +4274,9 @@ static const struct of_device_id platform_of_match[] = {
 	}, {
 		.compatible = "innolux,g121x1-l03",
 		.data = &innolux_g121x1_l03,
+	}, {
+		.compatible = "innolux,g156hce-l01",
+		.data = &innolux_g156hce_l01,
 	}, {
 		.compatible = "innolux,n156bge-l21",
 		.data = &innolux_n156bge_l21,
Signature · 1 line
2.40.1
maintainer Reviewed-by on v1 2/2
#2 lore raw

Re: [PATCH 2/2] drm/panel-simple: Add Innolux G156HCE-L01 panel entry

Quoted 66 lines · Marek Vasut

Add support for Innolux G156HCE-L01 15.6" 1920x1080 24bpp dual-link LVDS TFT panel. Documentation is available at [1]. The middle frequency is tuned slightly upward from 70.93 MHz to 72 MHz, otherwise the panel shows slight flicker.

[1] https://www.distec.de/fileadmin/pdf/produkte/TFT-Displays/Innolux/G156HCE-L01_Rev.C3_Datasheet.pdf

---
Cc: Conor Dooley <[email protected]>
Cc: Daniel Vetter <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Krzysztof Kozlowski <[email protected]>
Cc: Neil Armstrong <[email protected]>
Cc: Rob Herring <[email protected]>
Cc: Sam Ravnborg <[email protected]>
Cc: Thierry Reding <[email protected]>
Cc: [email protected]
Cc: [email protected]

---
  drivers/gpu/drm/panel/panel-simple.c | 34 ++++++++++++++++++++++++++++
  1 file changed, 34 insertions(+)
drivers/gpu/drm/panel/panel-simple.c +31 -0
index 396a22177c674..417dd69054fc1 100644
@@ -2377,6 +2377,37 @@ static const struct panel_desc innolux_g121x1_l03 = {
  	},
  };
 
+static const struct display_timing innolux_g156hce_l01_timings = {
+	.pixelclock = { 120000000, 144000000, 150000000 },
+	.hactive = { 1920, 1920, 1920 },
+	.hfront_porch = { 80, 90, 100 },
+	.hback_porch = { 80, 90, 100 },
+	.hsync_len = { 20, 30, 30 },
+	.vactive = { 1080, 1080, 1080 },
+	.vfront_porch = { 3, 10, 20 },
+	.vback_porch = { 3, 10, 20 },
+	.vsync_len = { 4, 10, 10 },
+};
+
+static const struct panel_desc innolux_g156hce_l01 = {
+	.timings = &innolux_g156hce_l01_timings,
+	.num_timings = 1,
+	.bpc = 8,
+	.size = {
+		.width = 344,
+		.height = 194,
+	},
+	.delay = {
+		.prepare = 1,		/* T1+T2 */
+		.enable = 450,		/* T5 */
+		.disable = 200,		/* T6 */
+		.unprepare = 10,	/* T3+T7 */
+	},
+	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+	.bus_flags = DRM_BUS_FLAG_DE_HIGH,
+	.connector_type = DRM_MODE_CONNECTOR_LVDS,
+};
+
  static const struct drm_display_mode innolux_n156bge_l21_mode = {
  	.clock = 69300,
  	.hdisplay = 1366,

drivers/gpu/drm/panel/panel-simple.c static const struct of_device_id platform_of_match[] = { · line 4282

Quoted 9 lines
drivers/gpu/drm/panel/panel-simple.c +3 -0
@@ -4243,6 +4274,9 @@ static const struct of_device_id platform_of_match[] = {
  	}, {
  		.compatible = "innolux,g121x1-l03",
  		.data = &innolux_g121x1_l03,
+	}, {
+		.compatible = "innolux,g156hce-l01",
+		.data = &innolux_g156hce_l01,
  	}, {
  		.compatible = "innolux,n156bge-l21",
  		.data = &innolux_n156bge_l21,
#3 lore raw

Re: [PATCH 2/2] drm/panel-simple: Add Innolux G156HCE-L01 panel entry

In reply to Marek Vasut

Hi Marek,

Quoted 2 lines · On Mon, 31 Jul 2023 23:02:58 +0200 Marek Vasut <[email protected]> wrote:

Add support for Innolux G156HCE-L01 15.6" 1920x1080 24bpp dual-link LVDS TFT panel. Documentation is available at [1].

Interesting, I'm bringing up this exact panel right now and found your patch.

Quoted 2 lines

The middle frequency is tuned slightly upward from 70.93 MHz to 72 MHz, otherwise the panel shows slight flicker.

Using 70.93 MHz here does not show any flickering. I even tried going in the opposite direction and set 70 MHz, and to use different backlight settings, all without any flickering.

Do you think you might be using a defective device? Would you have a chance of testing another sample?

drivers/gpu/drm/panel/panel-simple.c static const struct panel_desc innolux_g121x1_l03 = { · line 2381

Quoted 10 lines
drivers/gpu/drm/panel/panel-simple.c +2 -0
index 396a22177c674..417dd69054fc1 100644
@@ -2377,6 +2377,37 @@ static const struct panel_desc innolux_g121x1_l03 = {
 	},
 };
 
+static const struct display_timing innolux_g156hce_l01_timings = {
+	.pixelclock = { 120000000, 144000000, 150000000 },

In case the 144 MHz clock is kept, I'd add a comment here to clarify the reason for diverging from the datasheet without the need for git log.

Luca

Signature · 3 lines
Luca Ceresoli, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
#4 lore raw

Re: [PATCH 2/2] drm/panel-simple: Add Innolux G156HCE-L01 panel entry

Quoted 1 line · Luca Ceresoli

Hi Marek,

Hi,

Quoted 12 lines
Quoted 2 lines · On Mon, 31 Jul 2023 23:02:58 +0200 Marek Vasut <[email protected]> wrote:

Add support for Innolux G156HCE-L01 15.6" 1920x1080 24bpp dual-link LVDS TFT panel. Documentation is available at [1].

Interesting, I'm bringing up this exact panel right now and found your patch.

Quoted 2 lines

The middle frequency is tuned slightly upward from 70.93 MHz to 72 MHz, otherwise the panel shows slight flicker.

Quoted 6 lines

Using 70.93 MHz here does not show any flickering. I even tried going in the opposite direction and set 70 MHz, and to use different backlight settings, all without any flickering.

Do you think you might be using a defective device? Would you have a chance of testing another sample?

I have literally one such display.

Which SoC do you use (and if applicable, which bridge) ?

#5 lore raw

Re: [PATCH 2/2] drm/panel-simple: Add Innolux G156HCE-L01 panel entry

Hi Marek,

Quoted 21 lines · On Thu, 3 Aug 2023 16:25:37 +0200 Marek Vasut <[email protected]> wrote:
Quoted 1 line · Luca Ceresoli

Hi Marek,

Hi,

Quoted 16 lines
Quoted 2 lines · On Mon, 31 Jul 2023 23:02:58 +0200 Marek Vasut <[email protected]> wrote:

Add support for Innolux G156HCE-L01 15.6" 1920x1080 24bpp dual-link LVDS TFT panel. Documentation is available at [1].

Interesting, I'm bringing up this exact panel right now and found your patch.

Quoted 2 lines

The middle frequency is tuned slightly upward from 70.93 MHz to 72 MHz, otherwise the panel shows slight flicker.

Using 70.93 MHz here does not show any flickering. I even tried going in the opposite direction and set 70 MHz, and to use different backlight settings, all without any flickering.

Quoted 6 lines
Quoted 2 lines

Do you think you might be using a defective device? Would you have a chance of testing another sample?

I have literally one such display.

Which SoC do you use (and if applicable, which bridge) ?

The panel is driven by the DSI-2 output of a i.MX8MP through a TI SN65DSI84 bridge.

Luca

Signature · 3 lines
Luca Ceresoli, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
#6 lore raw

Re: [PATCH 2/2] drm/panel-simple: Add Innolux G156HCE-L01 panel entry

Quoted 29 lines · Luca Ceresoli

Hi Marek,

Quoted 24 lines · On Thu, 3 Aug 2023 16:25:37 +0200 Marek Vasut <[email protected]> wrote:
Quoted 1 line · Luca Ceresoli

Hi Marek,

Hi,

Quoted 18 lines
Quoted 2 lines · On Mon, 31 Jul 2023 23:02:58 +0200 Marek Vasut <[email protected]> wrote:

Add support for Innolux G156HCE-L01 15.6" 1920x1080 24bpp dual-link LVDS TFT panel. Documentation is available at [1].

Interesting, I'm bringing up this exact panel right now and found your patch.

Quoted 2 lines

The middle frequency is tuned slightly upward from 70.93 MHz to 72 MHz, otherwise the panel shows slight flicker.

Using 70.93 MHz here does not show any flickering. I even tried going in the opposite direction and set 70 MHz, and to use different backlight settings, all without any flickering.

Do you think you might be using a defective device? Would you have a chance of testing another sample?

Quoted 6 lines
Quoted 3 lines

I have literally one such display.

Which SoC do you use (and if applicable, which bridge) ?

The panel is driven by the DSI-2 output of a i.MX8MP through a TI SN65DSI84 bridge.

I use the LT9211 , so I wonder whether this might be another Lontium specific oddity.

#7 lore raw

Re: [PATCH 2/2] drm/panel-simple: Add Innolux G156HCE-L01 panel entry

Hi Marek,

Quoted 32 lines · On Thu, 3 Aug 2023 19:10:35 +0200 Marek Vasut <[email protected]> wrote:
Quoted 31 lines · Luca Ceresoli

Hi Marek,

Quoted 26 lines · On Thu, 3 Aug 2023 16:25:37 +0200 Marek Vasut <[email protected]> wrote:
Quoted 1 line · Luca Ceresoli

Hi Marek,

Hi,

Quoted 12 lines
Quoted 2 lines · On Mon, 31 Jul 2023 23:02:58 +0200 Marek Vasut <[email protected]> wrote:

Add support for Innolux G156HCE-L01 15.6" 1920x1080 24bpp dual-link LVDS TFT panel. Documentation is available at [1].

Interesting, I'm bringing up this exact panel right now and found your patch.

Quoted 2 lines

The middle frequency is tuned slightly upward from 70.93 MHz to 72 MHz, otherwise the panel shows slight flicker.

Quoted 6 lines

Using 70.93 MHz here does not show any flickering. I even tried going in the opposite direction and set 70 MHz, and to use different backlight settings, all without any flickering.

Do you think you might be using a defective device? Would you have a chance of testing another sample?

I have literally one such display.

Quoted 7 lines
Quoted 4 lines
Quoted 1 line

Which SoC do you use (and if applicable, which bridge) ?

The panel is driven by the DSI-2 output of a i.MX8MP through a TI SN65DSI84 bridge.

I use the LT9211 , so I wonder whether this might be another Lontium specific oddity.

Or maybe not. After checking the LVDS clock with an oscilloscope I discovered I was actually sending 77 MHz. After fixing it I found that my panel (of which I only have one sample as well) does not display any output with pixel clocks <= 75 MHz. It works with clocks >= 76 MHz.

I'm trying to get more info about this.

Luca

Signature · 3 lines
Luca Ceresoli, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
#8 lore raw

Re: [PATCH 2/2] drm/panel-simple: Add Innolux G156HCE-L01 panel entry

Hi Marek, Neil,

Quoted 42 lines · On Fri, 4 Aug 2023 10:19:12 +0200 Luca Ceresoli <[email protected]>…

Hi Marek,

Quoted 37 lines · On Thu, 3 Aug 2023 19:10:35 +0200 Marek Vasut <[email protected]> wrote:
Quoted 35 lines · Luca Ceresoli

Hi Marek,

Quoted 21 lines · On Thu, 3 Aug 2023 16:25:37 +0200 Marek Vasut <[email protected]> wrote:
Quoted 1 line · Luca Ceresoli

Hi Marek,

Hi,

Quoted 16 lines
Quoted 2 lines · On Mon, 31 Jul 2023 23:02:58 +0200 Marek Vasut <[email protected]> wrote:

Add support for Innolux G156HCE-L01 15.6" 1920x1080 24bpp dual-link LVDS TFT panel. Documentation is available at [1].

Interesting, I'm bringing up this exact panel right now and found your patch.

Quoted 2 lines

The middle frequency is tuned slightly upward from 70.93 MHz to 72 MHz, otherwise the panel shows slight flicker.

Using 70.93 MHz here does not show any flickering. I even tried going in the opposite direction and set 70 MHz, and to use different backlight settings, all without any flickering.

Quoted 6 lines
Quoted 2 lines

Do you think you might be using a defective device? Would you have a chance of testing another sample?

I have literally one such display.

Which SoC do you use (and if applicable, which bridge) ?

The panel is driven by the DSI-2 output of a i.MX8MP through a TI SN65DSI84 bridge.

Quoted 7 lines
Quoted 2 lines

I use the LT9211 , so I wonder whether this might be another Lontium specific oddity.

Or maybe not. After checking the LVDS clock with an oscilloscope I discovered I was actually sending 77 MHz. After fixing it I found that my panel (of which I only have one sample as well) does not display any output with pixel clocks <= 75 MHz. It works with clocks >= 76 MHz.

After checking lots of other details in my video setup and doing cleanups, I finally managed to have this panel working with the intended 70.93 MHz clock (and also lower clocks such as 70.00 MHz).

Is it too late to change this patch? Or should I send a patch on top?

Luca

Signature · 3 lines
Luca Ceresoli, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
maintainer Applied
#10 lore raw
In reply to Marek Vasut

Hi,

Quoted 6 lines · Marek Vasut

Add entry for Innolux G156HCE-L01 15.6" 1920x1080 24bpp dual-link LVDS TFT panel. Documentation is available at [1].

[1] https://www.distec.de/fileadmin/pdf/produkte/TFT-Displays/Innolux/G156HCE-L01_Rev.C3_Datasheet.pdf

Thanks, Applied to https://anongit.freedesktop.org/git/drm/drm-misc.git (drm-misc-next)

[1/2] dt-bindings: display: simple: Add Innolux G156HCE-L01 panel

      https://cgit.freedesktop.org/drm/drm-misc/commit/?id=3c5e8aa44dfc936ab596508158d222e3e87c1a1f
[2/2] drm/panel-simple: Add Innolux G156HCE-L01 panel entry
      https://cgit.freedesktop.org/drm/drm-misc/commit/?id=eae7488814b519e49c57dd331a7437d99d8ae91b
Signature · 1 line
Neil