Эх сурвалжийг харах

drm/exynos: Add create_connector callback

This creates a new display hook called create_connector. The purpose is
to allow the display driver to create its own drm_connector instead of
using the exynos_drm_connector. This moves things closer to completely
removing the exynos_drm_connector abstraction.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Sean Paul 11 жил өмнө
parent
commit
c37f42cd18

+ 3 - 0
drivers/gpu/drm/exynos/exynos_drm_core.c

@@ -44,6 +44,9 @@ static int exynos_drm_create_enc_conn(struct drm_device *dev,
 		return -EFAULT;
 		return -EFAULT;
 	}
 	}
 
 
+	if (display->ops->create_connector)
+		return display->ops->create_connector(display, encoder);
+
 	/*
 	/*
 	 * create and initialize a connector for this sub driver and
 	 * create and initialize a connector for this sub driver and
 	 * attach the encoder created above to the connector.
 	 * attach the encoder created above to the connector.

+ 2 - 0
drivers/gpu/drm/exynos/exynos_drm_drv.h

@@ -139,6 +139,8 @@ struct exynos_drm_display;
 struct exynos_drm_display_ops {
 struct exynos_drm_display_ops {
 	int (*initialize)(struct exynos_drm_display *display,
 	int (*initialize)(struct exynos_drm_display *display,
 				struct drm_device *drm_dev);
 				struct drm_device *drm_dev);
+	int (*create_connector)(struct exynos_drm_display *display,
+				struct drm_encoder *encoder);
 	void (*remove)(struct exynos_drm_display *display);
 	void (*remove)(struct exynos_drm_display *display);
 	bool (*is_connected)(struct exynos_drm_display *display);
 	bool (*is_connected)(struct exynos_drm_display *display);
 	void (*get_max_resol)(struct exynos_drm_display *display,
 	void (*get_max_resol)(struct exynos_drm_display *display,