mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-22 15:02:32 +00:00
79 lines
2.3 KiB
Diff
79 lines
2.3 KiB
Diff
|
From 5607ae85bd64208356567c77fed84a395d4e2182 Mon Sep 17 00:00:00 2001
|
||
|
From: Maxime Ripard <maxime@cerno.tech>
|
||
|
Date: Mon, 14 Nov 2022 16:18:09 +0100
|
||
|
Subject: [PATCH] drm/vc4: crtc: Make encoder lookup helper public
|
||
|
MIME-Version: 1.0
|
||
|
Content-Type: text/plain; charset=UTF-8
|
||
|
Content-Transfer-Encoding: 8bit
|
||
|
|
||
|
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>
|
||
|
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||
|
---
|
||
|
drivers/gpu/drm/vc4/vc4_crtc.c | 17 +----------------
|
||
|
drivers/gpu/drm/vc4/vc4_drv.h | 16 ++++++++++++++++
|
||
|
2 files changed, 17 insertions(+), 16 deletions(-)
|
||
|
|
||
|
--- a/drivers/gpu/drm/vc4/vc4_crtc.c
|
||
|
+++ b/drivers/gpu/drm/vc4/vc4_crtc.c
|
||
|
@@ -520,21 +520,6 @@ static int vc4_crtc_disable(struct drm_c
|
||
|
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;
|
||
|
@@ -570,7 +555,7 @@ int vc4_crtc_disable_at_boot(struct drm_
|
||
|
|
||
|
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;
|
||
|
|
||
|
--- a/drivers/gpu/drm/vc4/vc4_drv.h
|
||
|
+++ b/drivers/gpu/drm/vc4/vc4_drv.h
|
||
|
@@ -500,6 +500,22 @@ to_vc4_encoder(const struct drm_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;
|
||
|
|