drm/vc4: dpi: Ensure a default format is selected
authorDave Stevenson <dave.stevenson@raspberrypi.com>
Thu, 2 Dec 2021 18:28:29 +0000 (18:28 +0000)
committerDom Cobley <popcornmix@gmail.com>
Mon, 21 Mar 2022 16:04:32 +0000 (16:04 +0000)
In a couple of error/incomplete configuration cases, the
DPI_FORMAT bits wouldn't get set.

Adopt a default of RGB666 in all these cases.

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
drivers/gpu/drm/vc4/vc4_dpi.c

index e19c34d..08147d0 100644 (file)
@@ -173,6 +173,10 @@ static void vc4_dpi_encoder_enable(struct drm_encoder *encoder)
                                dpi_c |= VC4_SET_FIELD(DPI_ORDER_BGR,
                                                       DPI_ORDER);
                                break;
+                       default:
+                               DRM_ERROR("Unknown media bus format %d\n",
+                                         bus_format);
+                               fallthrough;
                        case MEDIA_BUS_FMT_RGB666_1X18:
                                dpi_c |= VC4_SET_FIELD(DPI_FORMAT_18BIT_666_RGB_1,
                                                       DPI_FORMAT);
@@ -187,11 +191,12 @@ static void vc4_dpi_encoder_enable(struct drm_encoder *encoder)
                                dpi_c |= VC4_SET_FIELD(DPI_FORMAT_16BIT_565_RGB_3,
                                                       DPI_FORMAT);
                                break;
-                       default:
-                               DRM_ERROR("Unknown media bus format %d\n",
-                                         bus_format);
-                               break;
                        }
+               } else {
+                       /* Default to 18bit if no connector found. */
+                       dpi_c |= VC4_SET_FIELD(DPI_FORMAT_18BIT_666_RGB_1,
+                                              DPI_FORMAT);
+
                }
 
                if (connector->display_info.bus_flags &