From d947d1b71deb1efa0e7b2600f09e7fe7ea1e622b Mon Sep 17 00:00:00 2001 From: Sinclair Yeh Date: Thu, 23 Mar 2017 14:23:20 -0700 Subject: [PATCH] drm/vmwgfx: Add and connect connector helper function These helpers won't be called until we flip on the atomic support flag or set drm_crtc_funcs->set_config to using the atomic helper. v2 Use drm_atomic_helper_best_encoder() rather than a vmwgfx-specific one Signed-off-by: Sinclair Yeh Reviewed-by: Thomas Hellstrom Acked-by: Daniel Vetter --- drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c | 7 +++++++ drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 9 +++++++++ drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 8 ++++++++ 3 files changed, 24 insertions(+) diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c b/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c index 1d734de1e6e1..1b9e08335cce 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c @@ -389,6 +389,11 @@ static const struct drm_connector_funcs vmw_legacy_connector_funcs = { .atomic_get_property = vmw_du_connector_atomic_get_property, }; +static const struct +drm_connector_helper_funcs vmw_ldu_connector_helper_funcs = { + .best_encoder = drm_atomic_helper_best_encoder, +}; + /* * Legacy Display Plane Functions */ @@ -555,6 +560,8 @@ static int vmw_ldu_init(struct vmw_private *dev_priv, unsigned unit) DRM_ERROR("Failed to initialize connector\n"); goto err_free; } + + drm_connector_helper_add(connector, &vmw_ldu_connector_helper_funcs); connector->status = vmw_du_connector_detect(connector, true); vmw_connector_state_to_vcs(connector->state)->is_implicit = true; diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c b/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c index eca055ec27c8..536f4b55492e 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c @@ -608,6 +608,14 @@ static const struct drm_connector_funcs vmw_sou_connector_funcs = { .atomic_get_property = vmw_du_connector_atomic_get_property, }; + +static const struct +drm_connector_helper_funcs vmw_sou_connector_helper_funcs = { + .best_encoder = drm_atomic_helper_best_encoder, +}; + + + /* * Screen Object Display Plane Functions */ @@ -827,6 +835,7 @@ static int vmw_sou_init(struct vmw_private *dev_priv, unsigned unit) goto err_free; } + drm_connector_helper_add(connector, &vmw_sou_connector_helper_funcs); connector->status = vmw_du_connector_detect(connector, true); vmw_connector_state_to_vcs(connector->state)->is_implicit = false; diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c index cce5e5b02e20..76ca5fa1e3bf 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c @@ -1189,6 +1189,12 @@ static const struct drm_connector_funcs vmw_stdu_connector_funcs = { }; +static const struct +drm_connector_helper_funcs vmw_stdu_connector_helper_funcs = { + .best_encoder = drm_atomic_helper_best_encoder, +}; + + /****************************************************************************** * Screen Target Display Plane Functions @@ -1549,6 +1555,8 @@ static int vmw_stdu_init(struct vmw_private *dev_priv, unsigned unit) DRM_ERROR("Failed to initialize connector\n"); goto err_free; } + + drm_connector_helper_add(connector, &vmw_stdu_connector_helper_funcs); connector->status = vmw_du_connector_detect(connector, false); vmw_connector_state_to_vcs(connector->state)->is_implicit = false;