drm: Add checks for atomic_[duplicate/destroy]_state with atomic drivers
Subsystems (2)
PATCH 1/1 drm: Add checks for atomic_[duplicate/destroy]_state with atomic drivers
This patch add checks for atomic_[duplicate/destroy]_state of drm_[connector/crtc/plane]_funcs for atomic drivers in the relevant drm_*_init functions since these callback are mandatory for atomic drivers.
Update the kerneldoc comments for those callbacks.
--- drivers/gpu/drm/drm_connector.c | 4 ++++ drivers/gpu/drm/drm_crtc.c | 4 ++++ drivers/gpu/drm/drm_plane.c | 4 ++++ include/drm/drm_connector.h | 4 ++++ include/drm/drm_crtc.h | 4 ++++ include/drm/drm_plane.h | 4 ++++ 6 files changed, 24 insertions(+)
drivers/gpu/drm/drm_connector.c +4 -0
@@ -195,6 +195,10 @@ int drm_connector_init(struct drm_device *dev,struct ida *connector_ida = &drm_connector_enum_list[connector_type].ida; +WARN_ON (drm_drv_uses_atomic_modeset (dev) && + (!funcs->atomic_destroy_state || + !funcs->atomic_duplicate_state)); + ret =__drm_mode_object_add (dev, &connector->base,DRM_MODE_OBJECT_CONNECTOR , false, drm_connector_free);
drivers/gpu/drm/drm_crtc.c +4 -0
@@ -286,6 +286,10 @@ int drm_crtc_init_with_planes(struct drm_device *dev, struct drm_crtc *crtc,if (WARN_ON (config->num_crtc >=32 ))return -EINVAL ; +WARN_ON (drm_drv_uses_atomic_modeset (dev) && + (!funcs->atomic_destroy_state || + !funcs->atomic_duplicate_state)); + crtc->dev = dev; crtc->funcs = funcs;
drivers/gpu/drm/drm_plane.c +4 -0
@@ -177,6 +177,10 @@ int drm_universal_plane_init(struct drm_device *dev, struct drm_plane *plane,if (WARN_ON (config->num_total_plane >=32 ))return -EINVAL ; +WARN_ON (drm_drv_uses_atomic_modeset (dev) && + (!funcs->atomic_destroy_state || + !funcs->atomic_duplicate_state)); + ret =drm_mode_object_add (dev, &plane->base,DRM_MODE_OBJECT_PLANE );if (ret)return ret;
include/drm/drm_connector.h +4 -0
@@ -608,6 +608,8 @@ struct drm_connector_funcs {* cleaned up by calling the @atomic_destroy_state hook in this * structure. * +* This callback is mandatory for atomic drivers. +* * Atomic drivers which don't subclass &struct drm_connector_state should use * drm_atomic_helper_connector_duplicate_state(). Drivers that subclass the * state structure to extend it with driver-private state should use
@@ -634,6 +636,8 @@ struct drm_connector_funcs {* * Destroy a state duplicated with @atomic_duplicate_state and release * or unreference all resources it references +* +* This callback is mandatory for atomic drivers. */ void (*atomic_destroy_state)(struct drm_connector *connector,struct drm_connector_state *state);
include/drm/drm_crtc.h +4 -0
@@ -503,6 +503,8 @@ struct drm_crtc_funcs {* cleaned up by calling the @atomic_destroy_state hook in this * structure. * +* This callback is mandatory for atomic drivers. +* * Atomic drivers which don't subclass &struct drm_crtc_state should use * drm_atomic_helper_crtc_duplicate_state(). Drivers that subclass the * state structure to extend it with driver-private state should use
@@ -529,6 +531,8 @@ struct drm_crtc_funcs {* * Destroy a state duplicated with @atomic_duplicate_state and release * or unreference all resources it references +* +* This callback is mandatory for atomic drivers. */ void (*atomic_destroy_state)(struct drm_crtc *crtc,struct drm_crtc_state *state);
include/drm/drm_plane.h +4 -0
@@ -277,6 +277,8 @@ struct drm_plane_funcs {* cleaned up by calling the @atomic_destroy_state hook in this * structure. * +* This callback is mandatory for atomic drivers. +* * Atomic drivers which don't subclass &struct drm_plane_state should use * drm_atomic_helper_plane_duplicate_state(). Drivers that subclass the * state structure to extend it with driver-private state should use
@@ -303,6 +305,8 @@ struct drm_plane_funcs {* * Destroy a state duplicated with @atomic_duplicate_state and release * or unreference all resources it references +* +* This callback is mandatory for atomic drivers. */ void (*atomic_destroy_state)(struct drm_plane *plane,struct drm_plane_state *state);
Signature · 6 lines
2.17.0 _______________________________________________ dri-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/dri-devel
Quoted 8 lines · Haneen Mohammed
This patch add checks for atomic_[duplicate/destroy]_state of drm_[connector/crtc/plane]_funcs for atomic drivers in the relevant drm_*_init functions since these callback are mandatory for atomic drivers.
Update the kerneldoc comments for those callbacks.
Signed-off-by Haneen Mohammed <[email protected]>
---
Quoted 136 lines
drivers/gpu/drm/drm_connector.c | 4 ++++ drivers/gpu/drm/drm_crtc.c | 4 ++++ drivers/gpu/drm/drm_plane.c | 4 ++++ include/drm/drm_connector.h | 4 ++++ include/drm/drm_crtc.h | 4 ++++ include/drm/drm_plane.h | 4 ++++ 6 files changed, 24 insertions(+)drivers/gpu/drm/drm_connector.c +4
-0@@ -195,6 +195,10 @@ int drm_connector_init(struct drm_device *dev,struct ida *connector_ida = &drm_connector_enum_list[connector_type].ida; +WARN_ON (drm_drv_uses_atomic_modeset (dev) && + (!funcs->atomic_destroy_state || + !funcs->atomic_duplicate_state)); + ret =__drm_mode_object_add (dev, &connector->base,DRM_MODE_OBJECT_CONNECTOR , false, drm_connector_free);drivers/gpu/drm/drm_crtc.c +4
-0@@ -286,6 +286,10 @@ int drm_crtc_init_with_planes(struct drm_device *dev, struct drm_crtc *crtc, if (WARN_ON(config->num_crtc >= 32)) return -EINVAL; +WARN_ON (drm_drv_uses_atomic_modeset (dev) && + (!funcs->atomic_destroy_state || + !funcs->atomic_duplicate_state)); + crtc->dev = dev; crtc->funcs = funcs;drivers/gpu/drm/drm_plane.c +4
-0@@ -177,6 +177,10 @@ int drm_universal_plane_init(struct drm_device *dev, struct drm_plane *plane, if (WARN_ON(config->num_total_plane >= 32)) return -EINVAL; +WARN_ON (drm_drv_uses_atomic_modeset (dev) && + (!funcs->atomic_destroy_state || + !funcs->atomic_duplicate_state)); + ret =drm_mode_object_add (dev, &plane->base,DRM_MODE_OBJECT_PLANE );if (ret) return ret;include/drm/drm_connector.h +2
-0@@ -608,6 +608,8 @@ struct drm_connector_funcs {* cleaned up by calling the @atomic_destroy_state hook in this * structure. * +* This callback is mandatory for atomic drivers. +* * Atomic drivers which don't subclass &struct drm_connector_state should use
*drm_atomic_helper_connector_duplicate_state(). Drivers that
subclass the
* state structure to extend it with driver-private state should
useinclude/drm/drm_connector.h +0
-0@@ -634,6 +636,8 @@ struct drm_connector_funcs {* * Destroy a state duplicated with @atomic_duplicate_state and release
* or unreference all resources it referencesinclude/drm/drm_connector.h +2
-0+* +* This callback is mandatory for atomic drivers. */ void (*atomic_destroy_state)(struct drm_connector *connector,struct drm_connector_state *state);include/drm/drm_crtc.h +2
-0@@ -503,6 +503,8 @@ struct drm_crtc_funcs {* cleaned up by calling the @atomic_destroy_state hook in this * structure. * +* This callback is mandatory for atomic drivers. +* * Atomic drivers which don't subclass &struct drm_crtc_state should use
*drm_atomic_helper_crtc_duplicate_state(). Drivers that subclass
the
* state structure to extend it with driver-private state should
useinclude/drm/drm_crtc.h +0
-0@@ -529,6 +531,8 @@ struct drm_crtc_funcs {* * Destroy a state duplicated with @atomic_duplicate_state and release
* or unreference all resources it referencesinclude/drm/drm_crtc.h +2
-0+* +* This callback is mandatory for atomic drivers. */ void (*atomic_destroy_state)(struct drm_crtc *crtc,struct drm_crtc_state *state);include/drm/drm_plane.h +2
-0@@ -277,6 +277,8 @@ struct drm_plane_funcs {* cleaned up by calling the @atomic_destroy_state hook in this * structure. * +* This callback is mandatory for atomic drivers. +* * Atomic drivers which don't subclass &struct drm_plane_state should use
*drm_atomic_helper_plane_duplicate_state(). Drivers that
subclass the
* state structure to extend it with driver-private state should
useinclude/drm/drm_plane.h +0
-0@@ -303,6 +305,8 @@ struct drm_plane_funcs {* * Destroy a state duplicated with @atomic_duplicate_state and release
* or unreference all resources it referencesinclude/drm/drm_plane.h +2
-1+* +* This callback is mandatory for atomic drivers. */ void (*atomic_destroy_state)(struct drm_plane *plane,struct drm_plane_state *state); --
Quoted 3 lines
2.17.0
_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel
Daniel Vetter
AppliedQuoted 7 lines · Sean Paul
Quoted 4 lines · Haneen Mohammed
This patch add checks for atomic_[duplicate/destroy]_state of drm_[connector/crtc/plane]_funcs for atomic drivers in the relevant drm_*_init functions since these callback are mandatory for atomic drivers.
Quoted 6 lines
Quoted 4 lines
Update the kerneldoc comments for those callbacks.
Signed-off-by Haneen Mohammed <[email protected]>Reviewed-by Sean Paul <[email protected]>
Applied, thanks for the patch&review.
-Daniel
Quoted 141 lines
---
Quoted 139 lines
drivers/gpu/drm/drm_connector.c | 4 ++++ drivers/gpu/drm/drm_crtc.c | 4 ++++ drivers/gpu/drm/drm_plane.c | 4 ++++ include/drm/drm_connector.h | 4 ++++ include/drm/drm_crtc.h | 4 ++++ include/drm/drm_plane.h | 4 ++++ 6 files changed, 24 insertions(+)drivers/gpu/drm/drm_connector.c +4
-0@@ -195,6 +195,10 @@ int drm_connector_init(struct drm_device *dev,struct ida *connector_ida = &drm_connector_enum_list[connector_type].ida; +WARN_ON (drm_drv_uses_atomic_modeset (dev) && + (!funcs->atomic_destroy_state || + !funcs->atomic_duplicate_state)); + ret =__drm_mode_object_add (dev, &connector->base,DRM_MODE_OBJECT_CONNECTOR , false, drm_connector_free);drivers/gpu/drm/drm_crtc.c +4
-0@@ -286,6 +286,10 @@ int drm_crtc_init_with_planes(struct drm_device *dev, struct drm_crtc *crtc, if (WARN_ON(config->num_crtc >= 32)) return -EINVAL; +WARN_ON (drm_drv_uses_atomic_modeset (dev) && + (!funcs->atomic_destroy_state || + !funcs->atomic_duplicate_state)); + crtc->dev = dev; crtc->funcs = funcs;drivers/gpu/drm/drm_plane.c +4
-0@@ -177,6 +177,10 @@ int drm_universal_plane_init(struct drm_device *dev, struct drm_plane *plane, if (WARN_ON(config->num_total_plane >= 32)) return -EINVAL; +WARN_ON (drm_drv_uses_atomic_modeset (dev) && + (!funcs->atomic_destroy_state || + !funcs->atomic_duplicate_state)); + ret =drm_mode_object_add (dev, &plane->base,DRM_MODE_OBJECT_PLANE );if (ret) return ret;include/drm/drm_connector.h +2
-0@@ -608,6 +608,8 @@ struct drm_connector_funcs {* cleaned up by calling the @atomic_destroy_state hook in this * structure. * +* This callback is mandatory for atomic drivers. +* * Atomic drivers which don't subclass &struct drm_connector_state should use
*drm_atomic_helper_connector_duplicate_state(). Drivers that
subclass the
* state structure to extend it with driver-private state should
useinclude/drm/drm_connector.h +0
-0@@ -634,6 +636,8 @@ struct drm_connector_funcs {* * Destroy a state duplicated with @atomic_duplicate_state and release
* or unreference all resources it referencesinclude/drm/drm_connector.h +2
-0+* +* This callback is mandatory for atomic drivers. */ void (*atomic_destroy_state)(struct drm_connector *connector,struct drm_connector_state *state);include/drm/drm_crtc.h +2
-0@@ -503,6 +503,8 @@ struct drm_crtc_funcs {* cleaned up by calling the @atomic_destroy_state hook in this * structure. * +* This callback is mandatory for atomic drivers. +* * Atomic drivers which don't subclass &struct drm_crtc_state should use
*drm_atomic_helper_crtc_duplicate_state(). Drivers that subclass
the
* state structure to extend it with driver-private state should
useinclude/drm/drm_crtc.h +0
-0@@ -529,6 +531,8 @@ struct drm_crtc_funcs {* * Destroy a state duplicated with @atomic_duplicate_state and release
* or unreference all resources it referencesinclude/drm/drm_crtc.h +2
-0+* +* This callback is mandatory for atomic drivers. */ void (*atomic_destroy_state)(struct drm_crtc *crtc,struct drm_crtc_state *state);include/drm/drm_plane.h +2
-0@@ -277,6 +277,8 @@ struct drm_plane_funcs {* cleaned up by calling the @atomic_destroy_state hook in this * structure. * +* This callback is mandatory for atomic drivers. +* * Atomic drivers which don't subclass &struct drm_plane_state should use
*drm_atomic_helper_plane_duplicate_state(). Drivers that
subclass the
* state structure to extend it with driver-private state should
useinclude/drm/drm_plane.h +0
-0@@ -303,6 +305,8 @@ struct drm_plane_funcs {* * Destroy a state duplicated with @atomic_duplicate_state and release
* or unreference all resources it referencesinclude/drm/drm_plane.h +2
-1+* +* This callback is mandatory for atomic drivers. */ void (*atomic_destroy_state)(struct drm_plane *plane,struct drm_plane_state *state); --2.17.0
Signature · 7 lines
Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/dri-devel