aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorMaarten Lankhorst <maarten.lankhorst@linux.intel.com>2016-01-04 06:53:16 -0500
committerDaniel Vetter <daniel.vetter@ffwll.ch>2016-01-05 03:40:58 -0500
commit4cd39917ddb2fb5691e05b13b13f1f2398343b3e (patch)
tree52c3576c292b9130493b98452e18836322668fe4 /drivers/gpu
parent5350a031247680590724a1badc112d1217f721d6 (diff)
drm/atomic: Add __drm_atomic_helper_connector_reset, v2.
This is useful for drivers that subclass connector_state, like tegra. Changes since v1: - Docbook updates. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/1451908400-25147-2-git-send-email-maarten.lankhorst@linux.intel.com Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/drm_atomic_helper.c30
1 files changed, 26 insertions, 4 deletions
diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
index 268d37f26960..26d258d0618b 100644
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
@@ -2606,6 +2606,28 @@ void drm_atomic_helper_plane_destroy_state(struct drm_plane *plane,
2606EXPORT_SYMBOL(drm_atomic_helper_plane_destroy_state); 2606EXPORT_SYMBOL(drm_atomic_helper_plane_destroy_state);
2607 2607
2608/** 2608/**
2609 * __drm_atomic_helper_connector_reset - reset state on connector
2610 * @connector: drm connector
2611 * @conn_state: connector state to assign
2612 *
2613 * Initializes the newly allocated @conn_state and assigns it to
2614 * #connector ->state, usually required when initializing the drivers
2615 * or when called from the ->reset hook.
2616 *
2617 * This is useful for drivers that subclass the connector state.
2618 */
2619void
2620__drm_atomic_helper_connector_reset(struct drm_connector *connector,
2621 struct drm_connector_state *conn_state)
2622{
2623 if (conn_state)
2624 conn_state->connector = connector;
2625
2626 connector->state = conn_state;
2627}
2628EXPORT_SYMBOL(__drm_atomic_helper_connector_reset);
2629
2630/**
2609 * drm_atomic_helper_connector_reset - default ->reset hook for connectors 2631 * drm_atomic_helper_connector_reset - default ->reset hook for connectors
2610 * @connector: drm connector 2632 * @connector: drm connector
2611 * 2633 *
@@ -2615,11 +2637,11 @@ EXPORT_SYMBOL(drm_atomic_helper_plane_destroy_state);
2615 */ 2637 */
2616void drm_atomic_helper_connector_reset(struct drm_connector *connector) 2638void drm_atomic_helper_connector_reset(struct drm_connector *connector)
2617{ 2639{
2618 kfree(connector->state); 2640 struct drm_connector_state *conn_state =
2619 connector->state = kzalloc(sizeof(*connector->state), GFP_KERNEL); 2641 kzalloc(sizeof(*conn_state), GFP_KERNEL);
2620 2642
2621 if (connector->state) 2643 kfree(connector->state);
2622 connector->state->connector = connector; 2644 __drm_atomic_helper_connector_reset(connector, conn_state);
2623} 2645}
2624EXPORT_SYMBOL(drm_atomic_helper_connector_reset); 2646EXPORT_SYMBOL(drm_atomic_helper_connector_reset);
2625 2647