LVDS panel compatible strings
Subsystems (6)
Hi everyone,
I've been working on converting all Tegra-related device tree bindings to json-schema so that eventually we can fully validate device tree files. Getting all the bindings reviewed and merged has been slow, but I have a local tree where pretty much all validation errors and warnings have been fixed. The remaining warnings that I'm not sure how to resolve are these:
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-tilapia-E1565.dtb: display-panel: compatible:0: 'panel-lvds' is not one of ['auo,b101ew05', 'tbs,a711-panel']
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-tilapia-E1565.dtb: display-panel: compatible: ['panel-lvds'] is too short
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-tilapia-E1565.dtb: display-panel: Unevaluated properties are not allowed ('compatible' was unexpected)
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-E1565.dtb: display-panel: compatible:0: 'panel-lvds' is not one of ['auo,b101ew05', 'tbs,a711-panel']
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-E1565.dtb: display-panel: compatible: ['panel-lvds'] is too short
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-E1565.dtb: display-panel: Unevaluated properties are not allowed ('compatible' was unexpected)
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-PM269.dtb: display-panel: compatible:0: 'panel-lvds' is not one of ['auo,b101ew05', 'tbs,a711-panel']
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-PM269.dtb: display-panel: compatible: ['panel-lvds'] is too short
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-PM269.dtb: display-panel: Unevaluated properties are not allowed ('compatible' was unexpected)
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dtb: display-panel: compatible:0: 'panel-lvds' is not one of ['auo,b101ew05', 'tbs,a711-panel']
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dtb: display-panel: compatible: ['panel-lvds'] is too short
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dtb: display-panel: Unevaluated properties are not allowed ('compatible' was unexpected)
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
The reason for these is that the device tree files use:
compatible = "panel-lvds";
but that's not valid as per the bindings. So what we really want is a specific compatible string that specifies the exact panel that each of these devices uses in addition to the "panel-lvds" fallback. Do you guys have information about these that could help fix up the DT files?
Thanks,
Thierry
пт, 14 лип. 2023 р. о 17:38 Thierry Reding <[email protected]> пише:
Quoted 26 lines
Hi everyone,
I've been working on converting all Tegra-related device tree bindings to json-schema so that eventually we can fully validate device tree files. Getting all the bindings reviewed and merged has been slow, but I have a local tree where pretty much all validation errors and warnings have been fixed. The remaining warnings that I'm not sure how to resolve are these:
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-tilapia-E1565.dtb: display-panel: compatible:0: 'panel-lvds' is not one of ['auo,b101ew05', 'tbs,a711-panel']
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-tilapia-E1565.dtb: display-panel: compatible: ['panel-lvds'] is too short
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-tilapia-E1565.dtb: display-panel: Unevaluated properties are not allowed ('compatible' was unexpected)
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-E1565.dtb: display-panel: compatible:0: 'panel-lvds' is not one of ['auo,b101ew05', 'tbs,a711-panel']
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-E1565.dtb: display-panel: compatible: ['panel-lvds'] is too short
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-E1565.dtb: display-panel: Unevaluated properties are not allowed ('compatible' was unexpected)
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-PM269.dtb: display-panel: compatible:0: 'panel-lvds' is not one of ['auo,b101ew05', 'tbs,a711-panel']
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-PM269.dtb: display-panel: compatible: ['panel-lvds'] is too short
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
Quoted 8 lines
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-PM269.dtb: display-panel: Unevaluated properties are not allowed ('compatible' was unexpected)
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dtb: display-panel: compatible:0: 'panel-lvds' is not one of ['auo,b101ew05', 'tbs,a711-panel']
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dtb: display-panel: compatible: ['panel-lvds'] is too short
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dtb: display-panel: Unevaluated properties are not allowed ('compatible' was unexpected)
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
Hello Thierry! Pegatron Chagall uses a Hannstar similar to one used in ASUS TF201 but unfortunately it is not compatible with existing simple panel setup (blurry image if used). My assumption is that chagall as different revision of this panel like HSD101PWW3-B00 or HSD101PWW1-A00 which is more likely or panel is highly modified which is unlikely. I propose to use "hannstar,hsd101pww1" which is more wide spread.
Best regards,
Svyatoslav R.
Quoted 12 lines
The reason for these is that the device tree files use:
compatible = "panel-lvds";but that's not valid as per the bindings. So what we really want is a specific compatible string that specifies the exact panel that each of these devices uses in addition to the "panel-lvds" fallback. Do you guys have information about these that could help fix up the DT files?
Thanks,
Thierry
Quoted 36 lines · Svyatoslav Ryhel
пт, 14 лип. 2023 р. о 17:38 Thierry Reding <[email protected]> пише:
Quoted 26 lines
Hi everyone,
I've been working on converting all Tegra-related device tree bindings to json-schema so that eventually we can fully validate device tree files. Getting all the bindings reviewed and merged has been slow, but I have a local tree where pretty much all validation errors and warnings have been fixed. The remaining warnings that I'm not sure how to resolve are these:
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-tilapia-E1565.dtb: display-panel: compatible:0: 'panel-lvds' is not one of ['auo,b101ew05', 'tbs,a711-panel']
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-tilapia-E1565.dtb: display-panel: compatible: ['panel-lvds'] is too short
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-tilapia-E1565.dtb: display-panel: Unevaluated properties are not allowed ('compatible' was unexpected)
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-E1565.dtb: display-panel: compatible:0: 'panel-lvds' is not one of ['auo,b101ew05', 'tbs,a711-panel']
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-E1565.dtb: display-panel: compatible: ['panel-lvds'] is too short
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-E1565.dtb: display-panel: Unevaluated properties are not allowed ('compatible' was unexpected)
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-PM269.dtb: display-panel: compatible:0: 'panel-lvds' is not one of ['auo,b101ew05', 'tbs,a711-panel']
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-PM269.dtb: display-panel: compatible: ['panel-lvds'] is too short
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#Quoted 8 lines
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-PM269.dtb: display-panel: Unevaluated properties are not allowed ('compatible' was unexpected)
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dtb: display-panel: compatible:0: 'panel-lvds' is not one of ['auo,b101ew05', 'tbs,a711-panel']
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dtb: display-panel: compatible: ['panel-lvds'] is too short
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dtb: display-panel: Unevaluated properties are not allowed ('compatible' was unexpected)
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
Quoted 7 lines
Hello Thierry! Pegatron Chagall uses a Hannstar similar to one used in ASUS TF201 but unfortunately it is not compatible with existing simple panel setup (blurry image if used). My assumption is that chagall as different revision of this panel like HSD101PWW3-B00 or HSD101PWW1-A00 which is more likely or panel is highly modified which is unlikely. I propose to use "hannstar,hsd101pww1" which is more wide spread.
Interesting. So is the problem the HSD101PWW2 timings that are off, or is it because the panel-lvds code does something special to make this blurry image go away?
Thierry
пт, 14 лип. 2023 р. о 18:16 Thierry Reding <[email protected]> пише:
Quoted 46 lines · Svyatoslav Ryhel
Quoted 36 lines
пт, 14 лип. 2023 р. о 17:38 Thierry Reding <[email protected]> пише:
Quoted 26 lines
Hi everyone,
I've been working on converting all Tegra-related device tree bindings to json-schema so that eventually we can fully validate device tree files. Getting all the bindings reviewed and merged has been slow, but I have a local tree where pretty much all validation errors and warnings have been fixed. The remaining warnings that I'm not sure how to resolve are these:
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-tilapia-E1565.dtb: display-panel: compatible:0: 'panel-lvds' is not one of ['auo,b101ew05', 'tbs,a711-panel']
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-tilapia-E1565.dtb: display-panel: compatible: ['panel-lvds'] is too short
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-tilapia-E1565.dtb: display-panel: Unevaluated properties are not allowed ('compatible' was unexpected)
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-E1565.dtb: display-panel: compatible:0: 'panel-lvds' is not one of ['auo,b101ew05', 'tbs,a711-panel']
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-E1565.dtb: display-panel: compatible: ['panel-lvds'] is too short
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-E1565.dtb: display-panel: Unevaluated properties are not allowed ('compatible' was unexpected)
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-PM269.dtb: display-panel: compatible:0: 'panel-lvds' is not one of ['auo,b101ew05', 'tbs,a711-panel']
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-PM269.dtb: display-panel: compatible: ['panel-lvds'] is too short
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#Quoted 8 lines
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-PM269.dtb: display-panel: Unevaluated properties are not allowed ('compatible' was unexpected)
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dtb: display-panel: compatible:0: 'panel-lvds' is not one of ['auo,b101ew05', 'tbs,a711-panel']
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dtb: display-panel: compatible: ['panel-lvds'] is too short
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dtb: display-panel: Unevaluated properties are not allowed ('compatible' was unexpected)
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#Quoted 7 lines
Hello Thierry! Pegatron Chagall uses a Hannstar similar to one used in ASUS TF201 but unfortunately it is not compatible with existing simple panel setup (blurry image if used). My assumption is that chagall as different revision of this panel like HSD101PWW3-B00 or HSD101PWW1-A00 which is more likely or panel is highly modified which is unlikely. I propose to use "hannstar,hsd101pww1" which is more wide spread.
Quoted 4 lines
Interesting. So is the problem the HSD101PWW2 timings that are off, or is it because the panel-lvds code does something special to make this blurry image go away?
timings are different
Quoted 1 line
Thierry
Quoted 47 lines · Svyatoslav Ryhel
пт, 14 лип. 2023 р. о 18:16 Thierry Reding <[email protected]> пише:
Quoted 46 lines · Svyatoslav Ryhel
Quoted 43 lines
пт, 14 лип. 2023 р. о 17:38 Thierry Reding <[email protected]> пише:
Quoted 26 lines
Hi everyone,
I've been working on converting all Tegra-related device tree bindings to json-schema so that eventually we can fully validate device tree files. Getting all the bindings reviewed and merged has been slow, but I have a local tree where pretty much all validation errors and warnings have been fixed. The remaining warnings that I'm not sure how to resolve are these:
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-tilapia-E1565.dtb: display-panel: compatible:0: 'panel-lvds' is not one of ['auo,b101ew05', 'tbs,a711-panel']
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-tilapia-E1565.dtb: display-panel: compatible: ['panel-lvds'] is too short
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-tilapia-E1565.dtb: display-panel: Unevaluated properties are not allowed ('compatible' was unexpected)
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-E1565.dtb: display-panel: compatible:0: 'panel-lvds' is not one of ['auo,b101ew05', 'tbs,a711-panel']
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-E1565.dtb: display-panel: compatible: ['panel-lvds'] is too short
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-E1565.dtb: display-panel: Unevaluated properties are not allowed ('compatible' was unexpected)
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-PM269.dtb: display-panel: compatible:0: 'panel-lvds' is not one of ['auo,b101ew05', 'tbs,a711-panel']
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-PM269.dtb: display-panel: compatible: ['panel-lvds'] is too short
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#Quoted 8 lines
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-PM269.dtb: display-panel: Unevaluated properties are not allowed ('compatible' was unexpected)
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dtb: display-panel: compatible:0: 'panel-lvds' is not one of ['auo,b101ew05', 'tbs,a711-panel']
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dtb: display-panel: compatible: ['panel-lvds'] is too short
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dtb: display-panel: Unevaluated properties are not allowed ('compatible' was unexpected)
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#Hello Thierry! Pegatron Chagall uses a Hannstar similar to one used in ASUS TF201 but unfortunately it is not compatible with existing simple panel setup (blurry image if used). My assumption is that chagall as different revision of this panel like HSD101PWW3-B00 or HSD101PWW1-A00 which is more likely or panel is highly modified which is unlikely. I propose to use "hannstar,hsd101pww1" which is more wide spread.
Quoted 5 lines
Quoted 4 lines
Interesting. So is the problem the HSD101PWW2 timings that are off, or is it because the panel-lvds code does something special to make this blurry image go away?
timings are different
For cases where the timings are the only things that differ, the DT bindings allow overriding the timings specifically. So you might get away with using one of the existing panels if it is close enough and patch up the timings in DT.
Comparing what you've got for Chagall, the porches exceed what the HSD101PWW2 allows, but the timing values in the simple-panel driver look a little arbitrary, to be honest, so I think those could be extended. Looking at a datasheet that I found online, it's very unspecific about the porch lengths since it only mentions minimum, typical and maximum values for the total frame blanking times:
vertical: 3, 23, 223 horizontal: 54, 160, 681
So I think we can be more generous in how these are split up. So we could for example do this:
--- >8 ---
drivers/gpu/drm/panel/panel-simple.c +6 -6
@@ -2108,13 +2108,13 @@ static const struct panel_desc hannstar_hsd100pxn1 = {static const struct display_timing hannstar_hsd101pww2_timing = { .pixelclock = {64300000 ,71100000 ,82000000 }, .hactive = {1280 ,1280 ,1280 }, - .hfront_porch = {1 ,1 ,10 }, - .hback_porch = {1 ,1 ,10 }, - .hsync_len = {58 ,158 ,661 }, + .hfront_porch = {1 ,1 ,64 }, + .hback_porch = {1 ,1 ,64 }, + .hsync_len = {58 ,158 ,553 }, .vactive = {800 ,800 ,800 }, - .vfront_porch = {1 ,1 ,10 }, - .vback_porch = {1 ,1 ,10 }, - .vsync_len = {1 ,21 ,203 }, + .vfront_porch = {1 ,1 ,32 }, + .vback_porch = {1 ,1 ,32 }, + .vsync_len = {1 ,21 ,159 }, .flags =DISPLAY_FLAGS_DE_HIGH , };
--- >8 ---
And then we could move the compatible string from simple to LVDS:
--- >8 ---
Documentation/devicetree/bindings/display/panel/panel-lvds.yaml +2 -0
@@ -40,6 +40,8 @@ properties: items: - enum: - auo,b101ew05 + # HannStar Display Corp. HSD101PWW2 10.1" WXGA (1280x800) LVDS panel + - hannstar,hsd101pww2 - tbs,a711-panel - const: panel-lvds
Documentation/devicetree/bindings/display/panel/panel-simple.yaml +0 -2
@@ -168,8 +168,6 @@ properties: - hannstar,hsd070pww1 # HannStar Display Corp. HSD100PXN1 10.1" XGA LVDS panel - hannstar,hsd100pxn1 - # HannStar Display Corp. HSD101PWW2 10.1" WXGA (1280x800) LVDS panel - - hannstar,hsd101pww2 # Hitachi Ltd. Corporation 9" WVGA (800x480) TFT LCD panel - hit,tx23d38vm0caa # InfoVision Optoelectronics M133NWF4 R0 13.3" FHD (1920x1080) TFT LCD panel
arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dts +1 -1
@@ -2628,7 +2628,7 @@ cpu3: cpu@3 { }; display-panel { - compatible = "panel-lvds"; + compatible = "hannstar,hsd101pww2", "panel-lvds"; width-mm = <217>; height-mm = <136>;
--- >8 ---
That gets rid of the DT validation warning for me. Would you be able to test this on actual hardware? I think the compatible matching would result in this matching the simple-panel driver and that does have some support for LVDS, but I'm not sure if it's exactly equal to what you get with only the panel-lvds matching, which makes this get handled by the panel-lvds driver.
I'm attaching the full patch to make it a bit easier to apply this.
Thierry
From d45f49a40b0e9db07cb4fcdcaafd29e1453e8001 Mon Sep 17 00:00:00 2001
From: Thierry Reding <[email protected]>
Date: Mon, 17 Jul 2023 09:15:33 +0200
Subject: [PATCH] WIP: Use Hannstar HSD101PWW2 on Pegatron Chagall
--- .../bindings/display/panel/panel-lvds.yaml | 2 ++ .../bindings/display/panel/panel-simple.yaml | 2 -- .../arm/boot/dts/nvidia/tegra30-pegatron-chagall.dts | 2 +- drivers/gpu/drm/panel/panel-simple.c | 12 ++++++------ 4 files changed, 9 insertions(+), 9 deletions(-)
Documentation/devicetree/bindings/display/panel/panel-lvds.yaml +2 -0
@@ -40,6 +40,8 @@ properties: items: - enum: - auo,b101ew05 + # HannStar Display Corp. HSD101PWW2 10.1" WXGA (1280x800) LVDS panel + - hannstar,hsd101pww2 - tbs,a711-panel - const: panel-lvds
Documentation/devicetree/bindings/display/panel/panel-simple.yaml +0 -2
@@ -168,8 +168,6 @@ properties: - hannstar,hsd070pww1 # HannStar Display Corp. HSD100PXN1 10.1" XGA LVDS panel - hannstar,hsd100pxn1 - # HannStar Display Corp. HSD101PWW2 10.1" WXGA (1280x800) LVDS panel - - hannstar,hsd101pww2 # Hitachi Ltd. Corporation 9" WVGA (800x480) TFT LCD panel - hit,tx23d38vm0caa # InfoVision Optoelectronics M133NWF4 R0 13.3" FHD (1920x1080) TFT LCD panel
arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dts +1 -1
@@ -2628,7 +2628,7 @@ cpu3: cpu@3 { }; display-panel { - compatible = "panel-lvds"; + compatible = "hannstar,hsd101pww2", "panel-lvds"; width-mm = <217>; height-mm = <136>;
drivers/gpu/drm/panel/panel-simple.c +6 -6
@@ -2108,13 +2108,13 @@ static const struct panel_desc hannstar_hsd100pxn1 = {static const struct display_timing hannstar_hsd101pww2_timing = { .pixelclock = {64300000 ,71100000 ,82000000 }, .hactive = {1280 ,1280 ,1280 }, - .hfront_porch = {1 ,1 ,10 }, - .hback_porch = {1 ,1 ,10 }, - .hsync_len = {58 ,158 ,661 }, + .hfront_porch = {1 ,1 ,64 }, + .hback_porch = {1 ,1 ,64 }, + .hsync_len = {58 ,158 ,553 }, .vactive = {800 ,800 ,800 }, - .vfront_porch = {1 ,1 ,10 }, - .vback_porch = {1 ,1 ,10 }, - .vsync_len = {1 ,21 ,203 }, + .vfront_porch = {1 ,1 ,32 }, + .vback_porch = {1 ,1 ,32 }, + .vsync_len = {1 ,21 ,159 }, .flags =DISPLAY_FLAGS_DE_HIGH , };
Signature · 1 line
2.41.0
17 липня 2023 р. 10:16:44 GMT+03:00, Thierry Reding <[email protected]> написав(-ла):
Quoted 143 lines · Svyatoslav Ryhel
Quoted 47 lines
пт, 14 лип. 2023 р. о 18:16 Thierry Reding <[email protected]> пише:
Quoted 46 lines · Svyatoslav Ryhel
Quoted 43 lines
пт, 14 лип. 2023 р. о 17:38 Thierry Reding <[email protected]> пише:
Quoted 26 lines
Hi everyone,
I've been working on converting all Tegra-related device tree bindings to json-schema so that eventually we can fully validate device tree files. Getting all the bindings reviewed and merged has been slow, but I have a local tree where pretty much all validation errors and warnings have been fixed. The remaining warnings that I'm not sure how to resolve are these:
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-tilapia-E1565.dtb: display-panel: compatible:0: 'panel-lvds' is not one of ['auo,b101ew05', 'tbs,a711-panel']
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-tilapia-E1565.dtb: display-panel: compatible: ['panel-lvds'] is too short
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-tilapia-E1565.dtb: display-panel: Unevaluated properties are not allowed ('compatible' was unexpected)
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-E1565.dtb: display-panel: compatible:0: 'panel-lvds' is not one of ['auo,b101ew05', 'tbs,a711-panel']
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-E1565.dtb: display-panel: compatible: ['panel-lvds'] is too short
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-E1565.dtb: display-panel: Unevaluated properties are not allowed ('compatible' was unexpected)
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-PM269.dtb: display-panel: compatible:0: 'panel-lvds' is not one of ['auo,b101ew05', 'tbs,a711-panel']
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-PM269.dtb: display-panel: compatible: ['panel-lvds'] is too short
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#Quoted 8 lines
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-PM269.dtb: display-panel: Unevaluated properties are not allowed ('compatible' was unexpected)
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dtb: display-panel: compatible:0: 'panel-lvds' is not one of ['auo,b101ew05', 'tbs,a711-panel']
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dtb: display-panel: compatible: ['panel-lvds'] is too short
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dtb: display-panel: Unevaluated properties are not allowed ('compatible' was unexpected)
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#Hello Thierry! Pegatron Chagall uses a Hannstar similar to one used in ASUS TF201 but unfortunately it is not compatible with existing simple panel setup (blurry image if used). My assumption is that chagall as different revision of this panel like HSD101PWW3-B00 or HSD101PWW1-A00 which is more likely or panel is highly modified which is unlikely. I propose to use "hannstar,hsd101pww1" which is more wide spread.
Quoted 5 lines
Quoted 4 lines
Interesting. So is the problem the HSD101PWW2 timings that are off, or is it because the panel-lvds code does something special to make this blurry image go away?
timings are different
For cases where the timings are the only things that differ, the DT bindings allow overriding the timings specifically. So you might get away with using one of the existing panels if it is close enough and patch up the timings in DT.
Comparing what you've got for Chagall, the porches exceed what the HSD101PWW2 allows, but the timing values in the simple-panel driver look a little arbitrary, to be honest, so I think those could be extended. Looking at a datasheet that I found online, it's very unspecific about the porch lengths since it only mentions minimum, typical and maximum values for the total frame blanking times:
vertical: 3, 23, 223 horizontal: 54, 160, 681So I think we can be more generous in how these are split up. So we could for example do this:
--- >8 ---
drivers/gpu/drm/panel/panel-simple.c +6
-7@@ -2108,13 +2108,13 @@ static const struct panel_desc hannstar_hsd100pxn1 = {static const struct display_timing hannstar_hsd101pww2_timing = { .pixelclock = {64300000 ,71100000 ,82000000 }, .hactive = {1280 ,1280 ,1280 }, - .hfront_porch = {1 ,1 ,10 }, - .hback_porch = {1 ,1 ,10 }, - .hsync_len = {58 ,158 ,661 }, + .hfront_porch = {1 ,1 ,64 }, + .hback_porch = {1 ,1 ,64 }, + .hsync_len = {58 ,158 ,553 }, .vactive = {800 ,800 ,800 }, - .vfront_porch = {1 ,1 ,10 }, - .vback_porch = {1 ,1 ,10 }, - .vsync_len = {1 ,21 ,203 }, + .vfront_porch = {1 ,1 ,32 }, + .vback_porch = {1 ,1 ,32 }, + .vsync_len = {1 ,21 ,159 }, .flags =DISPLAY_FLAGS_DE_HIGH , }; --- >8 ---And then we could move the compatible string from simple to LVDS:
--- >8 ---
Documentation/devicetree/bindings/display/panel/panel-lvds.yaml +2
-0@@ -40,6 +40,8 @@ properties: items: - enum: - auo,b101ew05 + # HannStar Display Corp. HSD101PWW2 10.1" WXGA (1280x800) LVDS panel + - hannstar,hsd101pww2 - tbs,a711-panel - const: panel-lvdsDocumentation/devicetree/bindings/display/panel/panel-simple.yaml +0
-2@@ -168,8 +168,6 @@ properties: - hannstar,hsd070pww1 # HannStar Display Corp. HSD100PXN1 10.1" XGA LVDS panel - hannstar,hsd100pxn1 - # HannStar Display Corp. HSD101PWW2 10.1" WXGA (1280x800) LVDS panel - - hannstar,hsd101pww2 # Hitachi Ltd. Corporation 9" WVGA (800x480) TFT LCD panel - hit,tx23d38vm0caa # InfoVision Optoelectronics M133NWF4 R0 13.3" FHD (1920x1080) TFT LCD panelarch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dts +1
-2@@ -2628,7 +2628,7 @@ cpu3: cpu@3 { }; display-panel { - compatible = "panel-lvds"; + compatible = "hannstar,hsd101pww2", "panel-lvds"; width-mm = <217>; height-mm = <136>; --- >8 ---
Quoted 8 lines
That gets rid of the DT validation warning for me. Would you be able to test this on actual hardware? I think the compatible matching would result in this matching the simple-panel driver and that does have some support for LVDS, but I'm not sure if it's exactly equal to what you get with only the panel-lvds matching, which makes this get handled by the panel-lvds driver.
I'm attaching the full patch to make it a bit easier to apply this.
I will check if this doesn't break TF201.
P. S. U-boot patches are still hanging in the void!
Quoted 1 line
Thierry
пн, 17 лип. 2023 р. о 10:16 Thierry Reding <[email protected]> пише:
Quoted 144 lines · Svyatoslav Ryhel
Quoted 47 lines
пт, 14 лип. 2023 р. о 18:16 Thierry Reding <[email protected]> пише:
Quoted 46 lines · Svyatoslav Ryhel
Quoted 43 lines
пт, 14 лип. 2023 р. о 17:38 Thierry Reding <[email protected]> пише:
Quoted 26 lines
Hi everyone,
I've been working on converting all Tegra-related device tree bindings to json-schema so that eventually we can fully validate device tree files. Getting all the bindings reviewed and merged has been slow, but I have a local tree where pretty much all validation errors and warnings have been fixed. The remaining warnings that I'm not sure how to resolve are these:
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-tilapia-E1565.dtb: display-panel: compatible:0: 'panel-lvds' is not one of ['auo,b101ew05', 'tbs,a711-panel']
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-tilapia-E1565.dtb: display-panel: compatible: ['panel-lvds'] is too short
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-tilapia-E1565.dtb: display-panel: Unevaluated properties are not allowed ('compatible' was unexpected)
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-E1565.dtb: display-panel: compatible:0: 'panel-lvds' is not one of ['auo,b101ew05', 'tbs,a711-panel']
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-E1565.dtb: display-panel: compatible: ['panel-lvds'] is too short
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-E1565.dtb: display-panel: Unevaluated properties are not allowed ('compatible' was unexpected)
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-PM269.dtb: display-panel: compatible:0: 'panel-lvds' is not one of ['auo,b101ew05', 'tbs,a711-panel']
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-PM269.dtb: display-panel: compatible: ['panel-lvds'] is too short
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#Quoted 8 lines
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-PM269.dtb: display-panel: Unevaluated properties are not allowed ('compatible' was unexpected)
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dtb: display-panel: compatible:0: 'panel-lvds' is not one of ['auo,b101ew05', 'tbs,a711-panel']
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dtb: display-panel: compatible: ['panel-lvds'] is too short
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dtb: display-panel: Unevaluated properties are not allowed ('compatible' was unexpected)
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#Hello Thierry! Pegatron Chagall uses a Hannstar similar to one used in ASUS TF201 but unfortunately it is not compatible with existing simple panel setup (blurry image if used). My assumption is that chagall as different revision of this panel like HSD101PWW3-B00 or HSD101PWW1-A00 which is more likely or panel is highly modified which is unlikely. I propose to use "hannstar,hsd101pww1" which is more wide spread.
Quoted 5 lines
Quoted 4 lines
Interesting. So is the problem the HSD101PWW2 timings that are off, or is it because the panel-lvds code does something special to make this blurry image go away?
timings are different
For cases where the timings are the only things that differ, the DT bindings allow overriding the timings specifically. So you might get away with using one of the existing panels if it is close enough and patch up the timings in DT.
Comparing what you've got for Chagall, the porches exceed what the HSD101PWW2 allows, but the timing values in the simple-panel driver look a little arbitrary, to be honest, so I think those could be extended. Looking at a datasheet that I found online, it's very unspecific about the porch lengths since it only mentions minimum, typical and maximum values for the total frame blanking times:
vertical: 3, 23, 223 horizontal: 54, 160, 681So I think we can be more generous in how these are split up. So we could for example do this:
--- >8 ---
drivers/gpu/drm/panel/panel-simple.c +6
-7@@ -2108,13 +2108,13 @@ static const struct panel_desc hannstar_hsd100pxn1 = {static const struct display_timing hannstar_hsd101pww2_timing = { .pixelclock = {64300000 ,71100000 ,82000000 }, .hactive = {1280 ,1280 ,1280 }, - .hfront_porch = {1 ,1 ,10 }, - .hback_porch = {1 ,1 ,10 }, - .hsync_len = {58 ,158 ,661 }, + .hfront_porch = {1 ,1 ,64 }, + .hback_porch = {1 ,1 ,64 }, + .hsync_len = {58 ,158 ,553 }, .vactive = {800 ,800 ,800 }, - .vfront_porch = {1 ,1 ,10 }, - .vback_porch = {1 ,1 ,10 }, - .vsync_len = {1 ,21 ,203 }, + .vfront_porch = {1 ,1 ,32 }, + .vback_porch = {1 ,1 ,32 }, + .vsync_len = {1 ,21 ,159 }, .flags =DISPLAY_FLAGS_DE_HIGH , }; --- >8 ---And then we could move the compatible string from simple to LVDS:
--- >8 ---
Documentation/devicetree/bindings/display/panel/panel-lvds.yaml +2
-0@@ -40,6 +40,8 @@ properties: items: - enum: - auo,b101ew05 + # HannStar Display Corp. HSD101PWW2 10.1" WXGA (1280x800) LVDS panel + - hannstar,hsd101pww2 - tbs,a711-panel - const: panel-lvdsDocumentation/devicetree/bindings/display/panel/panel-simple.yaml +0
-2@@ -168,8 +168,6 @@ properties: - hannstar,hsd070pww1 # HannStar Display Corp. HSD100PXN1 10.1" XGA LVDS panel - hannstar,hsd100pxn1 - # HannStar Display Corp. HSD101PWW2 10.1" WXGA (1280x800) LVDS panel - - hannstar,hsd101pww2 # Hitachi Ltd. Corporation 9" WVGA (800x480) TFT LCD panel - hit,tx23d38vm0caa # InfoVision Optoelectronics M133NWF4 R0 13.3" FHD (1920x1080) TFT LCD panelarch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dts +1
-2@@ -2628,7 +2628,7 @@ cpu3: cpu@3 { }; display-panel { - compatible = "panel-lvds"; + compatible = "hannstar,hsd101pww2", "panel-lvds"; width-mm = <217>; height-mm = <136>; --- >8 ---
Quoted 8 lines
That gets rid of the DT validation warning for me. Would you be able to test this on actual hardware? I think the compatible matching would result in this matching the simple-panel driver and that does have some support for LVDS, but I'm not sure if it's exactly equal to what you get with only the panel-lvds matching, which makes this get handled by the panel-lvds driver.
I'm attaching the full patch to make it a bit easier to apply this.
I have just tested new timings with my TF201 and can confirm that I see no regressions for TF201. Testing on Chagall will be nearly impossible because the owner of Chagall does not have it in reach and will not be able to test it in
the next few months.
As for now I see no downsides of this patch for both Chagall and TF201. Chagall will substitute its own timings and TF201 is confirmed to work fine.
Best Regards,
Svyatoslav R.
Quoted 1 line
Thierry
17.07.2023 10:16, Thierry Reding пишет:
Quoted 4 lines
For cases where the timings are the only things that differ, the DT bindings allow overriding the timings specifically. So you might get away with using one of the existing panels if it is close enough and patch up the timings in DT.
If panel-simple supported timings override from DT, then panel-lvds indeed could be removed. But panel-simple doesn't support it:
Thierry Reding
Tested-by Enric Balletbo i Serra Tested-by Heiko Stuebner Reviewed-by Boris Brezillon Acked-byQuoted 10 lines · Dmitry Osipenko
17.07.2023 10:16, Thierry Reding пишет:
Quoted 4 lines
For cases where the timings are the only things that differ, the DT bindings allow overriding the timings specifically. So you might get away with using one of the existing panels if it is close enough and patch up the timings in DT.
If panel-simple supported timings override from DT, then panel-lvds indeed could be removed. But panel-simple doesn't support it:
I clearly didn't look at that patch closely enough. panel-simple has supported override modes since:
commit b8a2948fa2b3a5a6da67fd57aa01c7318d795125
Author: Sean Paul <[email protected]> Date: Thu Jul 11 13:34:53 2019 -0700
drm/panel: simple: Add ability to override typical timing
This patch adds the ability to override the typical display timing for a given panel. This is useful for devices which have timing constraints that do not apply across the entire display driver (eg: to avoid crosstalk between panel and digitizer on certain laptops). The rules are as follows:
- panel must not specify fixed mode (since the override mode will either be the same as the fixed mode, or we'll be unable to check the bounds of the overried)
- panel must specify at least one display_timing range which will be used to ensure the override mode fits within its bounds
Changes in v2:
- Parse the full display-timings node (using the native-mode) (Rob)
Changes in v3:
- No longer parse display-timings subnode, use panel-timing (Rob)
Changes in v4:
- Don't add mode from timing if override was specified (Thierry)
- Add warning if timing and fixed mode was specified (Thierry)
- Don't add fixed mode if timing was specified (Thierry)
- Refactor/rename a bit to avoid extra indentation from "if" tests
- i should be unsigned (Thierry)
- Add annoying WARN_ONs for some cases (Thierry)
- Simplify 'No display_timing found' handling (Thierry)
- Rename to panel_simple_parse_override_mode() (Thierry)
Changes in v5:
- Added Heiko's Tested-by
Changes in v6:
- Rebased to drm-misc next
- Added tags
Looking at the error message cited in the linked commit, the problem is that the Chunghwa panel has a fixed mode listed in the driver. However I don't see a reason why we can't get rid of that. The only place where I can find the compatible string for that used is for the Nexus 7, so we should be able to replace the fixed mode with the timings for that panel and remove the fixed mode.
The initial Chunghwa panel driver support doesn't seem to have been based on the Nexus 7, so I suppose if we make the above change we could technically be breaking some setup out there, but since we have no way of knowing which device this was on, or if anybody still has access, the best we can do is hope that nothing breaks and fix things up if somebody complains.
Thierry
17.07.2023 16:25, Thierry Reding пишет:
Quoted 77 lines · Dmitry Osipenko
Quoted 10 lines
17.07.2023 10:16, Thierry Reding пишет:
Quoted 4 lines
For cases where the timings are the only things that differ, the DT bindings allow overriding the timings specifically. So you might get away with using one of the existing panels if it is close enough and patch up the timings in DT.
If panel-simple supported timings override from DT, then panel-lvds indeed could be removed. But panel-simple doesn't support it:
I clearly didn't look at that patch closely enough. panel-simple has supported override modes since:
commit
b8a2948fa2b3a5a6da67fd57aa01c7318d795125Author: Sean Paul <[email protected]> Date: Thu Jul 11 13:34:53 2019 -0700drm/panel: simple: Add ability to override typical timing
This patch adds the ability to override the typical display timing for a given panel. This is useful for devices which have timing constraints that do not apply across the entire display driver (eg: to avoid crosstalk between panel and digitizer on certain laptops). The rules are as follows:
- panel must not specify fixed mode (since the override mode will either be the same as the fixed mode, or we'll be unable to check the bounds of the overried)
- panel must specify at least onedisplay_timingrange which will be used to ensure the override mode fits within its boundsChanges in v2:
- Parse the full display-timings node (using the native-mode) (Rob)
Changes in v3:
- No longer parse display-timings subnode, use panel-timing (Rob)
Changes in v4:
- Don't add mode from timing if override was specified (Thierry)
- Add warning if timing and fixed mode was specified (Thierry)
- Don't add fixed mode if timing was specified (Thierry)
- Refactor/rename a bit to avoid extra indentation from "if" tests
- i should be unsigned (Thierry)
- Add annoyingWARN_ONsfor some cases (Thierry)
- Simplify 'Nodisplay_timingfound' handling (Thierry)
- Rename topanel_simple_parse_override_mode()(Thierry)
Changes in v5:
- Added Heiko's Tested-by
Changes in v6:
- Rebased to drm-misc next
- Added tagsCc Doug Anderson <[email protected]>Cc Eric Anholt <[email protected]>Cc Heiko Stuebner <[email protected]>Cc Jeffy Chen <[email protected]>Cc Rob Herring <[email protected]>Cc Stéphane Marchesin <[email protected]>Cc Thierry Reding <[email protected]>Signed-off-by Sean Paul <[email protected]>Signed-off-by Douglas Anderson <[email protected]>Tested-by Heiko Stuebner <[email protected]>Reviewed-by Boris Brezillon <[email protected]>Acked-by Thierry Reding <[email protected]>Signed-off-by Sam Ravnborg <[email protected]>Looking at the error message cited in the linked commit, the problem is that the Chunghwa panel has a fixed mode listed in the driver. However I don't see a reason why we can't get rid of that. The only place where I can find the compatible string for that used is for the Nexus 7, so we should be able to replace the fixed mode with the timings for that panel and remove the fixed mode.
Quoted 6 lines
The initial Chunghwa panel driver support doesn't seem to have been based on the Nexus 7, so I suppose if we make the above change we could technically be breaking some setup out there, but since we have no way of knowing which device this was on, or if anybody still has access, the best we can do is hope that nothing breaks and fix things up if somebody complains.
Sounds good. For the Chunghwa there is no other user than N7 in upstream kernel, nothing to worry about. Indeed, it should be timing ranges and not the fixed mode.
For the Hydis panel there is no definition in panel-simple, it needs to be added. It also should be in a form of timing ranges, though I don't see ranges in the datasheet, not sure where to get them.
Hi,
Quoted 36 lines · Svyatoslav Ryhel
пт, 14 лип. 2023 р. о 17:38 Thierry Reding <[email protected]> пише:
Quoted 26 lines
Hi everyone,
I've been working on converting all Tegra-related device tree bindings to json-schema so that eventually we can fully validate device tree files. Getting all the bindings reviewed and merged has been slow, but I have a local tree where pretty much all validation errors and warnings have been fixed. The remaining warnings that I'm not sure how to resolve are these:
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-tilapia-E1565.dtb: display-panel: compatible:0: 'panel-lvds' is not one of ['auo,b101ew05', 'tbs,a711-panel']
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-tilapia-E1565.dtb: display-panel: compatible: ['panel-lvds'] is too short
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-tilapia-E1565.dtb: display-panel: Unevaluated properties are not allowed ('compatible' was unexpected)
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-E1565.dtb: display-panel: compatible:0: 'panel-lvds' is not one of ['auo,b101ew05', 'tbs,a711-panel']
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-E1565.dtb: display-panel: compatible: ['panel-lvds'] is too short
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-E1565.dtb: display-panel: Unevaluated properties are not allowed ('compatible' was unexpected)
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-PM269.dtb: display-panel: compatible:0: 'panel-lvds' is not one of ['auo,b101ew05', 'tbs,a711-panel']
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-PM269.dtb: display-panel: compatible: ['panel-lvds'] is too short
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#Quoted 8 lines
arch/arm/boot/dts/nvidia/tegra30-asus-nexus7-grouper-PM269.dtb: display-panel: Unevaluated properties are not allowed ('compatible' was unexpected)
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dtb: display-panel: compatible:0: 'panel-lvds' is not one of ['auo,b101ew05', 'tbs,a711-panel']
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dtb: display-panel: compatible: ['panel-lvds'] is too short
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dtb: display-panel: Unevaluated properties are not allowed ('compatible' was unexpected)
from schema $id: http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
Quoted 7 lines
Hello Thierry! Pegatron Chagall uses a Hannstar similar to one used in ASUS TF201 but unfortunately it is not compatible with existing simple panel setup (blurry image if used). My assumption is that chagall as different revision of this panel like HSD101PWW3-B00 or HSD101PWW1-A00 which is more likely or panel is highly modified which is unlikely. I propose to use "hannstar,hsd101pww1" which is more wide spread.
perhaps we should check the EDID from Chagall before getting to conclusions.
Best regards,
Maxim