drm/vc4: crtc: Make encoder lookup helper public
authorMaxime Ripard <maxime@cerno.tech>
Thu, 1 Dec 2022 15:11:46 +0000 (16:11 +0100)
committerMaxime Ripard <maxime@cerno.tech>
Thu, 8 Dec 2022 08:56:56 +0000 (09:56 +0100)
We'll need a function that looks up an encoder by its vc4_encoder_type.
Such a function is already present in the CRTC code, so let's make it
public so that we can reuse it in the unit tests.

Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Reviewed-by: MaĆ­ra Canal <mcanal@igalia.com>
Link: https://lore.kernel.org/r/20221123-rpi-kunit-tests-v3-15-4615a663a84a@cerno.tech
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
drivers/gpu/drm/vc4/vc4_crtc.c
drivers/gpu/drm/vc4/vc4_drv.h

index 5f7f50a..195d2b6 100644 (file)
@@ -486,21 +486,6 @@ static int vc4_crtc_disable(struct drm_crtc *crtc,
        return 0;
 }
 
-static struct drm_encoder *vc4_crtc_get_encoder_by_type(struct drm_crtc *crtc,
-                                                       enum vc4_encoder_type type)
-{
-       struct drm_encoder *encoder;
-
-       drm_for_each_encoder(encoder, crtc->dev) {
-               struct vc4_encoder *vc4_encoder = to_vc4_encoder(encoder);
-
-               if (vc4_encoder->type == type)
-                       return encoder;
-       }
-
-       return NULL;
-}
-
 int vc4_crtc_disable_at_boot(struct drm_crtc *crtc)
 {
        struct drm_device *drm = crtc->dev;
@@ -536,7 +521,7 @@ int vc4_crtc_disable_at_boot(struct drm_crtc *crtc)
 
        pv_data = vc4_crtc_to_vc4_pv_data(vc4_crtc);
        encoder_type = pv_data->encoder_types[encoder_sel];
-       encoder = vc4_crtc_get_encoder_by_type(crtc, encoder_type);
+       encoder = vc4_find_encoder_by_type(drm, encoder_type);
        if (WARN_ON(!encoder))
                return 0;
 
index cd2002f..54352db 100644 (file)
@@ -495,6 +495,22 @@ to_vc4_encoder(const struct drm_encoder *encoder)
        return container_of(encoder, struct vc4_encoder, base);
 }
 
+static inline
+struct drm_encoder *vc4_find_encoder_by_type(struct drm_device *drm,
+                                            enum vc4_encoder_type type)
+{
+       struct drm_encoder *encoder;
+
+       drm_for_each_encoder(encoder, drm) {
+               struct vc4_encoder *vc4_encoder = to_vc4_encoder(encoder);
+
+               if (vc4_encoder->type == type)
+                       return encoder;
+       }
+
+       return NULL;
+}
+
 struct vc4_crtc_data {
        const char *name;