> +     } else if (b->num_supported_fmts > 1 && b->supported_fmts) {
> +             *selected_bus_fmt = b->supported_fmts[0];
> +             return 0;

Here, `!a->num_supported_fmts &&` is missing otherwise this code will
select b->supported_fmts[0] whatever the supported formats of a.

> +     } else if (a->num_supported_fmts > 1 && a->supported_fmts) {
> +             *selected_bus_fmt = a->supported_fmts[0];
> +             return 0;

Here, `!b->num_supported_fmts &&` is missing otherwise this code will
select a->supported_fmts[0] whatever the supported formats of b.

Signed-off-by: Neil Armstrong <narmstr...@baylibre.com>
---
 drivers/gpu/drm/drm_bridge.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/drm_bridge.c b/drivers/gpu/drm/drm_bridge.c
index 5f0925467292..82fe7728fcd1 100644
--- a/drivers/gpu/drm/drm_bridge.c
+++ b/drivers/gpu/drm/drm_bridge.c
@@ -615,10 +615,12 @@ int drm_find_best_bus_format(const struct drm_bus_caps *a,
        if (!a->num_supported_fmts && !b->num_supported_fmts) {
                *selected_bus_fmt = 0;
                return 0;
-       } else if (b->num_supported_fmts > 1 && b->supported_fmts) {
+       } else if (!a->num_supported_fmts &&
+                  b->num_supported_fmts > 1 && b->supported_fmts) {
                *selected_bus_fmt = b->supported_fmts[0];
                return 0;
-       } else if (a->num_supported_fmts > 1 && a->supported_fmts) {
+       } else if (!b->num_supported_fmts &&
+                  a->num_supported_fmts > 1 && a->supported_fmts) {
                *selected_bus_fmt = a->supported_fmts[0];
                return 0;
        } else if (!a->num_supported_fmts || !a->supported_fmts ||
-- 
2.22.0

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to