Commit 0656ce12 authored by Maxime Ripard's avatar Maxime Ripard

drm/vc4: crtc: Make encoder lookup helper public

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: default avatarJavier Martinez Canillas <javierm@redhat.com>
Reviewed-by: default avatarMaíra Canal <mcanal@igalia.com>
Link: https://lore.kernel.org/r/20221123-rpi-kunit-tests-v3-15-4615a663a84a@cerno.techSigned-off-by: default avatarMaxime Ripard <maxime@cerno.tech>
parent ee33ac27
...@@ -486,21 +486,6 @@ static int vc4_crtc_disable(struct drm_crtc *crtc, ...@@ -486,21 +486,6 @@ static int vc4_crtc_disable(struct drm_crtc *crtc,
return 0; 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) int vc4_crtc_disable_at_boot(struct drm_crtc *crtc)
{ {
struct drm_device *drm = crtc->dev; struct drm_device *drm = crtc->dev;
...@@ -536,7 +521,7 @@ int vc4_crtc_disable_at_boot(struct drm_crtc *crtc) ...@@ -536,7 +521,7 @@ int vc4_crtc_disable_at_boot(struct drm_crtc *crtc)
pv_data = vc4_crtc_to_vc4_pv_data(vc4_crtc); pv_data = vc4_crtc_to_vc4_pv_data(vc4_crtc);
encoder_type = pv_data->encoder_types[encoder_sel]; 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)) if (WARN_ON(!encoder))
return 0; return 0;
......
...@@ -495,6 +495,22 @@ to_vc4_encoder(const struct drm_encoder *encoder) ...@@ -495,6 +495,22 @@ to_vc4_encoder(const struct drm_encoder *encoder)
return container_of(encoder, struct vc4_encoder, base); 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 { struct vc4_crtc_data {
const char *name; const char *name;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment