* LVDS panel compatible strings
@ 2023-07-14 14:38 Thierry Reding
2023-07-14 15:00 ` Svyatoslav Ryhel
0 siblings, 1 reply; 11+ messages in thread
From: Thierry Reding @ 2023-07-14 14:38 UTC (permalink / raw)
To: Dmitry Osipenko, David Heidelberg, Svyatoslav Ryhel
Cc: Raffaele Tranquillini, Ion Agorria, Maxim Schwalm,
Pedro Ângelo, Matt Merhar, Zack Pearsall, linux-tegra
[-- Attachment #1: Type: text/plain, Size: 3507 bytes --]
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
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread* Re: LVDS panel compatible strings 2023-07-14 14:38 LVDS panel compatible strings Thierry Reding @ 2023-07-14 15:00 ` Svyatoslav Ryhel 2023-07-14 15:16 ` Thierry Reding 2023-07-18 20:55 ` Maxim Schwalm 0 siblings, 2 replies; 11+ messages in thread From: Svyatoslav Ryhel @ 2023-07-14 15:00 UTC (permalink / raw) To: Thierry Reding Cc: Dmitry Osipenko, David Heidelberg, Raffaele Tranquillini, Ion Agorria, Maxim Schwalm, Pedro Ângelo, Matt Merhar, Zack Pearsall, linux-tegra пт, 14 лип. 2023 р. о 17:38 Thierry Reding <thierry.reding@gmail.com> пише: > > 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# 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. > > 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 ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: LVDS panel compatible strings 2023-07-14 15:00 ` Svyatoslav Ryhel @ 2023-07-14 15:16 ` Thierry Reding 2023-07-14 15:57 ` Svyatoslav Ryhel 2023-07-18 20:55 ` Maxim Schwalm 1 sibling, 1 reply; 11+ messages in thread From: Thierry Reding @ 2023-07-14 15:16 UTC (permalink / raw) To: Svyatoslav Ryhel Cc: Dmitry Osipenko, David Heidelberg, Raffaele Tranquillini, Ion Agorria, Maxim Schwalm, Pedro Ângelo, Matt Merhar, Zack Pearsall, linux-tegra [-- Attachment #1: Type: text/plain, Size: 4070 bytes --] On Fri, Jul 14, 2023 at 06:00:43PM +0300, Svyatoslav Ryhel wrote: > пт, 14 лип. 2023 р. о 17:38 Thierry Reding <thierry.reding@gmail.com> пише: > > > > 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# > > 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 [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: LVDS panel compatible strings 2023-07-14 15:16 ` Thierry Reding @ 2023-07-14 15:57 ` Svyatoslav Ryhel 2023-07-17 7:16 ` Thierry Reding 0 siblings, 1 reply; 11+ messages in thread From: Svyatoslav Ryhel @ 2023-07-14 15:57 UTC (permalink / raw) To: Thierry Reding Cc: Dmitry Osipenko, David Heidelberg, Raffaele Tranquillini, Ion Agorria, Maxim Schwalm, Pedro Ângelo, Matt Merhar, Zack Pearsall, linux-tegra пт, 14 лип. 2023 р. о 18:16 Thierry Reding <thierry.reding@gmail.com> пише: > > On Fri, Jul 14, 2023 at 06:00:43PM +0300, Svyatoslav Ryhel wrote: > > пт, 14 лип. 2023 р. о 17:38 Thierry Reding <thierry.reding@gmail.com> пише: > > > > > > 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# > > > > 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? > timings are different > Thierry ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: LVDS panel compatible strings 2023-07-14 15:57 ` Svyatoslav Ryhel @ 2023-07-17 7:16 ` Thierry Reding 2023-07-17 7:25 ` Svyatoslav Ryhel ` (2 more replies) 0 siblings, 3 replies; 11+ messages in thread From: Thierry Reding @ 2023-07-17 7:16 UTC (permalink / raw) To: Svyatoslav Ryhel Cc: Dmitry Osipenko, David Heidelberg, Raffaele Tranquillini, Ion Agorria, Maxim Schwalm, Pedro Ângelo, Matt Merhar, Zack Pearsall, linux-tegra [-- Attachment #1.1: Type: text/plain, Size: 8606 bytes --] On Fri, Jul 14, 2023 at 06:57:01PM +0300, Svyatoslav Ryhel wrote: > пт, 14 лип. 2023 р. о 18:16 Thierry Reding <thierry.reding@gmail.com> пише: > > > > On Fri, Jul 14, 2023 at 06:00:43PM +0300, Svyatoslav Ryhel wrote: > > > пт, 14 лип. 2023 р. о 17:38 Thierry Reding <thierry.reding@gmail.com> пише: > > > > > > > > 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# > > > > > > 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? > > > 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 --- diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c index 18dc251749fb..b2fb7943f2ed 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -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 --- diff --git a/Documentation/devicetree/bindings/display/panel/panel-lvds.yaml b/Documentation/devicetree/bindings/display/panel/panel-lvds.yaml index 929fe046d1e7..344e5df40c2f 100644 --- a/Documentation/devicetree/bindings/display/panel/panel-lvds.yaml +++ b/Documentation/devicetree/bindings/display/panel/panel-lvds.yaml @@ -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 diff --git a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml index df1cec8fd21b..f4d9da4afefd 100644 --- a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml +++ b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml @@ -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 diff --git a/arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dts b/arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dts index c81d5875c31c..4012f9c799a8 100644 --- a/arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dts +++ b/arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dts @@ -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 [-- Attachment #1.2: 0001-WIP-Use-Hannstar-HSD101PWW2-on-Pegatron-Chagall.patch --] [-- Type: text/plain, Size: 3394 bytes --] From d45f49a40b0e9db07cb4fcdcaafd29e1453e8001 Mon Sep 17 00:00:00 2001 From: Thierry Reding <treding@nvidia.com> Date: Mon, 17 Jul 2023 09:15:33 +0200 Subject: [PATCH] WIP: Use Hannstar HSD101PWW2 on Pegatron Chagall Signed-off-by: Thierry Reding <treding@nvidia.com> --- .../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(-) diff --git a/Documentation/devicetree/bindings/display/panel/panel-lvds.yaml b/Documentation/devicetree/bindings/display/panel/panel-lvds.yaml index 929fe046d1e7..344e5df40c2f 100644 --- a/Documentation/devicetree/bindings/display/panel/panel-lvds.yaml +++ b/Documentation/devicetree/bindings/display/panel/panel-lvds.yaml @@ -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 diff --git a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml index df1cec8fd21b..f4d9da4afefd 100644 --- a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml +++ b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml @@ -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 diff --git a/arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dts b/arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dts index c81d5875c31c..4012f9c799a8 100644 --- a/arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dts +++ b/arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dts @@ -2628,7 +2628,7 @@ cpu3: cpu@3 { }; display-panel { - compatible = "panel-lvds"; + compatible = "hannstar,hsd101pww2", "panel-lvds"; width-mm = <217>; height-mm = <136>; diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c index 18dc251749fb..b2fb7943f2ed 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -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, }; -- 2.41.0 [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: LVDS panel compatible strings 2023-07-17 7:16 ` Thierry Reding @ 2023-07-17 7:25 ` Svyatoslav Ryhel 2023-07-17 8:08 ` Svyatoslav Ryhel 2023-07-17 8:50 ` Dmitry Osipenko 2 siblings, 0 replies; 11+ messages in thread From: Svyatoslav Ryhel @ 2023-07-17 7:25 UTC (permalink / raw) To: Thierry Reding Cc: Dmitry Osipenko, David Heidelberg, Raffaele Tranquillini, Ion Agorria, Maxim Schwalm, Pedro Ângelo, Matt Merhar, Zack Pearsall, linux-tegra 17 липня 2023 р. 10:16:44 GMT+03:00, Thierry Reding <thierry.reding@gmail.com> написав(-ла): >On Fri, Jul 14, 2023 at 06:57:01PM +0300, Svyatoslav Ryhel wrote: >> пт, 14 лип. 2023 р. о 18:16 Thierry Reding <thierry.reding@gmail.com> пише: >> > >> > On Fri, Jul 14, 2023 at 06:00:43PM +0300, Svyatoslav Ryhel wrote: >> > > пт, 14 лип. 2023 р. о 17:38 Thierry Reding <thierry.reding@gmail.com> пише: >> > > > >> > > > 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# >> > > >> > > 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? >> > >> 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 --- >diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c >index 18dc251749fb..b2fb7943f2ed 100644 >--- a/drivers/gpu/drm/panel/panel-simple.c >+++ b/drivers/gpu/drm/panel/panel-simple.c >@@ -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 --- >diff --git a/Documentation/devicetree/bindings/display/panel/panel-lvds.yaml b/Documentation/devicetree/bindings/display/panel/panel-lvds.yaml >index 929fe046d1e7..344e5df40c2f 100644 >--- a/Documentation/devicetree/bindings/display/panel/panel-lvds.yaml >+++ b/Documentation/devicetree/bindings/display/panel/panel-lvds.yaml >@@ -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 >diff --git a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml >index df1cec8fd21b..f4d9da4afefd 100644 >--- a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml >+++ b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml >@@ -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 >diff --git a/arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dts b/arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dts >index c81d5875c31c..4012f9c799a8 100644 >--- a/arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dts >+++ b/arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dts >@@ -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. I will check if this doesn't break TF201. P. S. U-boot patches are still hanging in the void! >Thierry ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: LVDS panel compatible strings 2023-07-17 7:16 ` Thierry Reding 2023-07-17 7:25 ` Svyatoslav Ryhel @ 2023-07-17 8:08 ` Svyatoslav Ryhel 2023-07-17 8:50 ` Dmitry Osipenko 2 siblings, 0 replies; 11+ messages in thread From: Svyatoslav Ryhel @ 2023-07-17 8:08 UTC (permalink / raw) To: Thierry Reding Cc: Dmitry Osipenko, David Heidelberg, Raffaele Tranquillini, Ion Agorria, Maxim Schwalm, Pedro Ângelo, Matt Merhar, Zack Pearsall, linux-tegra пн, 17 лип. 2023 р. о 10:16 Thierry Reding <thierry.reding@gmail.com> пише: > > On Fri, Jul 14, 2023 at 06:57:01PM +0300, Svyatoslav Ryhel wrote: > > пт, 14 лип. 2023 р. о 18:16 Thierry Reding <thierry.reding@gmail.com> пише: > > > > > > On Fri, Jul 14, 2023 at 06:00:43PM +0300, Svyatoslav Ryhel wrote: > > > > пт, 14 лип. 2023 р. о 17:38 Thierry Reding <thierry.reding@gmail.com> пише: > > > > > > > > > > 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# > > > > > > > > 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? > > > > > 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 --- > diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c > index 18dc251749fb..b2fb7943f2ed 100644 > --- a/drivers/gpu/drm/panel/panel-simple.c > +++ b/drivers/gpu/drm/panel/panel-simple.c > @@ -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 --- > diff --git a/Documentation/devicetree/bindings/display/panel/panel-lvds.yaml b/Documentation/devicetree/bindings/display/panel/panel-lvds.yaml > index 929fe046d1e7..344e5df40c2f 100644 > --- a/Documentation/devicetree/bindings/display/panel/panel-lvds.yaml > +++ b/Documentation/devicetree/bindings/display/panel/panel-lvds.yaml > @@ -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 > diff --git a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml > index df1cec8fd21b..f4d9da4afefd 100644 > --- a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml > +++ b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml > @@ -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 > diff --git a/arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dts b/arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dts > index c81d5875c31c..4012f9c799a8 100644 > --- a/arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dts > +++ b/arch/arm/boot/dts/nvidia/tegra30-pegatron-chagall.dts > @@ -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. 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. > Thierry ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: LVDS panel compatible strings 2023-07-17 7:16 ` Thierry Reding 2023-07-17 7:25 ` Svyatoslav Ryhel 2023-07-17 8:08 ` Svyatoslav Ryhel @ 2023-07-17 8:50 ` Dmitry Osipenko 2023-07-17 13:25 ` Thierry Reding 2 siblings, 1 reply; 11+ messages in thread From: Dmitry Osipenko @ 2023-07-17 8:50 UTC (permalink / raw) To: Thierry Reding, Svyatoslav Ryhel Cc: David Heidelberg, Raffaele Tranquillini, Ion Agorria, Maxim Schwalm, Pedro Ângelo, Matt Merhar, Zack Pearsall, linux-tegra 17.07.2023 10:16, Thierry Reding пишет: > 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: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=a21f18a993c56566db94ba836684bc32c070a82c ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: LVDS panel compatible strings 2023-07-17 8:50 ` Dmitry Osipenko @ 2023-07-17 13:25 ` Thierry Reding 2023-07-22 1:26 ` Dmitry Osipenko 0 siblings, 1 reply; 11+ messages in thread From: Thierry Reding @ 2023-07-17 13:25 UTC (permalink / raw) To: Dmitry Osipenko Cc: Svyatoslav Ryhel, David Heidelberg, Raffaele Tranquillini, Ion Agorria, Maxim Schwalm, Pedro Ângelo, Matt Merhar, Zack Pearsall, linux-tegra [-- Attachment #1: Type: text/plain, Size: 4112 bytes --] On Mon, Jul 17, 2023 at 11:50:03AM +0300, Dmitry Osipenko wrote: > 17.07.2023 10:16, Thierry Reding пишет: > > 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: > > https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=a21f18a993c56566db94ba836684bc32c070a82c I clearly didn't look at that patch closely enough. panel-simple has supported override modes since: commit b8a2948fa2b3a5a6da67fd57aa01c7318d795125 Author: Sean Paul <seanpaul@chromium.org> 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 Cc: Doug Anderson <dianders@chromium.org> Cc: Eric Anholt <eric@anholt.net> Cc: Heiko Stuebner <heiko@sntech.de> Cc: Jeffy Chen <jeffy.chen@rock-chips.com> Cc: Rob Herring <robh+dt@kernel.org> Cc: Stéphane Marchesin <marcheu@chromium.org> Cc: Thierry Reding <thierry.reding@gmail.com> Cc: devicetree@vger.kernel.org Cc: dri-devel@lists.freedesktop.org Signed-off-by: Sean Paul <seanpaul@chromium.org> Tested-by: Enric Balletbo i Serra <enric.balletbo@collabora.com> Signed-off-by: Douglas Anderson <dianders@chromium.org> Tested-by: Heiko Stuebner <heiko@sntech.de> Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Acked-by: Thierry Reding <thierry.reding@gmail.com> Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Link: https://patchwork.freedesktop.org/patch/msgid/20190711203455.125667-2-dianders@chromium.org 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 [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: LVDS panel compatible strings 2023-07-17 13:25 ` Thierry Reding @ 2023-07-22 1:26 ` Dmitry Osipenko 0 siblings, 0 replies; 11+ messages in thread From: Dmitry Osipenko @ 2023-07-22 1:26 UTC (permalink / raw) To: Thierry Reding Cc: Svyatoslav Ryhel, David Heidelberg, Raffaele Tranquillini, Ion Agorria, Maxim Schwalm, Pedro Ângelo, Matt Merhar, Zack Pearsall, linux-tegra 17.07.2023 16:25, Thierry Reding пишет: > On Mon, Jul 17, 2023 at 11:50:03AM +0300, Dmitry Osipenko wrote: >> 17.07.2023 10:16, Thierry Reding пишет: >>> 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: >> >> https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=a21f18a993c56566db94ba836684bc32c070a82c > > I clearly didn't look at that patch closely enough. panel-simple has > supported override modes since: > > commit b8a2948fa2b3a5a6da67fd57aa01c7318d795125 > Author: Sean Paul <seanpaul@chromium.org> > 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 > > Cc: Doug Anderson <dianders@chromium.org> > Cc: Eric Anholt <eric@anholt.net> > Cc: Heiko Stuebner <heiko@sntech.de> > Cc: Jeffy Chen <jeffy.chen@rock-chips.com> > Cc: Rob Herring <robh+dt@kernel.org> > Cc: Stéphane Marchesin <marcheu@chromium.org> > Cc: Thierry Reding <thierry.reding@gmail.com> > Cc: devicetree@vger.kernel.org > Cc: dri-devel@lists.freedesktop.org > Signed-off-by: Sean Paul <seanpaul@chromium.org> > Tested-by: Enric Balletbo i Serra <enric.balletbo@collabora.com> > Signed-off-by: Douglas Anderson <dianders@chromium.org> > Tested-by: Heiko Stuebner <heiko@sntech.de> > Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> > Acked-by: Thierry Reding <thierry.reding@gmail.com> > Signed-off-by: Sam Ravnborg <sam@ravnborg.org> > Link: https://patchwork.freedesktop.org/patch/msgid/20190711203455.125667-2-dianders@chromium.org > > 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. 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. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: LVDS panel compatible strings 2023-07-14 15:00 ` Svyatoslav Ryhel 2023-07-14 15:16 ` Thierry Reding @ 2023-07-18 20:55 ` Maxim Schwalm 1 sibling, 0 replies; 11+ messages in thread From: Maxim Schwalm @ 2023-07-18 20:55 UTC (permalink / raw) To: Svyatoslav Ryhel, Thierry Reding Cc: Dmitry Osipenko, David Heidelberg, Raffaele Tranquillini, Ion Agorria, Pedro Ângelo, Matt Merhar, Zack Pearsall, linux-tegra Hi, On 14.07.23 17:00, Svyatoslav Ryhel wrote: > пт, 14 лип. 2023 р. о 17:38 Thierry Reding <thierry.reding@gmail.com> пише: >> >> 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# > > 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 ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2023-07-22 1:26 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-07-14 14:38 LVDS panel compatible strings Thierry Reding 2023-07-14 15:00 ` Svyatoslav Ryhel 2023-07-14 15:16 ` Thierry Reding 2023-07-14 15:57 ` Svyatoslav Ryhel 2023-07-17 7:16 ` Thierry Reding 2023-07-17 7:25 ` Svyatoslav Ryhel 2023-07-17 8:08 ` Svyatoslav Ryhel 2023-07-17 8:50 ` Dmitry Osipenko 2023-07-17 13:25 ` Thierry Reding 2023-07-22 1:26 ` Dmitry Osipenko 2023-07-18 20:55 ` Maxim Schwalm
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.