@@ -87,6 +87,9 @@ static int exynos_drm_create_enc_conn(struct drm_device *dev,
return 0;
}
+ if (display->ops->create_connector)
+ return display->ops->create_connector(display, encoder);
+
/*
* create and initialize a connector for this sub driver and
* attach the encoder created above to the connector.
@@ -139,6 +139,8 @@ struct exynos_drm_display;
struct exynos_drm_display_ops {
int (*initialize)(struct exynos_drm_display *display,
struct drm_device *drm_dev);
+ int (*create_connector)(struct exynos_drm_display *display,
+ struct drm_encoder *encoder);
void (*remove)(struct exynos_drm_display *display);
bool (*is_connected)(struct exynos_drm_display *display);
void (*get_max_resol)(struct exynos_drm_display *display,
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> --- Changes in v3: - Added to the patchset Changes in v4: None drivers/gpu/drm/exynos/exynos_drm_core.c | 3 +++ drivers/gpu/drm/exynos/exynos_drm_drv.h | 2 ++ 2 files changed, 5 insertions(+)