]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
ofnode: support panel-timings in ofnode_decode_display_timing
authorRaphael Gallais-Pou <raphael.gallais-pou@foss.st.com>
Thu, 4 Sep 2025 12:53:05 +0000 (14:53 +0200)
committerTom Rini <trini@konsulko.com>
Mon, 17 Nov 2025 16:43:26 +0000 (10:43 -0600)
The "Display Timings" in panel-common.yaml can be provided by 2 properties
- panel-timing: when display panels are restricted to a single resolution
                the "panel-timing" node expresses the required timings.
- display-timings: several resolutions with different timings are supported
                   with several timing subnode of "display-timings" node

This patch update the parsing function to handle this 2 possibility
when index = 0.

Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Yannick Fertre <yannick.fertre@foss.st.com>
Signed-off-by: Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com>
drivers/core/ofnode.c

index 071d998a0a51311e73fe14e16605c22e83033003..cf1cf8abfbe5ba146e1fdf8c28497f6de7a74d02 100644 (file)
@@ -1221,13 +1221,16 @@ int ofnode_decode_display_timing(ofnode parent, int index,
        int ret = 0;
 
        timings = ofnode_find_subnode(parent, "display-timings");
-       if (!ofnode_valid(timings))
-               return -EINVAL;
-
-       i = 0;
-       ofnode_for_each_subnode(node, timings) {
-               if (i++ == index)
-                       break;
+       if (ofnode_valid(timings)) {
+               i = 0;
+               ofnode_for_each_subnode(node, timings) {
+                       if (i++ == index)
+                               break;
+               }
+       } else {
+               if (index != 0)
+                       return -EINVAL;
+               node = ofnode_find_subnode(parent, "panel-timing");
        }
 
        if (!ofnode_valid(node))