Commit 9f4c97a2 authored by Ville Syrjälä's avatar Ville Syrjälä Committed by Daniel Vetter

drm: Add plane->name and use it in debug prints

Show a sensible name for the plane in debug mesages. The driver
may supply its own name, otherwise the core genrates the name
("plane-0", "plane-1" etc.).

v2: kstrdup() the name passed by the caller (Jani)
v3: Generate a default name if the driver doesn't supply one
Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/1449592922-5545-7-git-send-email-ville.syrjala@linux.intel.com
parent fa3ab4c2
...@@ -549,8 +549,8 @@ drm_atomic_get_plane_state(struct drm_atomic_state *state, ...@@ -549,8 +549,8 @@ drm_atomic_get_plane_state(struct drm_atomic_state *state,
state->planes[index] = plane; state->planes[index] = plane;
plane_state->state = state; plane_state->state = state;
DRM_DEBUG_ATOMIC("Added [PLANE:%d] %p state to %p\n", DRM_DEBUG_ATOMIC("Added [PLANE:%d:%s] %p state to %p\n",
plane->base.id, plane_state, state); plane->base.id, plane->name, plane_state, state);
if (plane_state->crtc) { if (plane_state->crtc) {
struct drm_crtc_state *crtc_state; struct drm_crtc_state *crtc_state;
...@@ -770,8 +770,8 @@ static int drm_atomic_plane_check(struct drm_plane *plane, ...@@ -770,8 +770,8 @@ static int drm_atomic_plane_check(struct drm_plane *plane,
} }
if (plane_switching_crtc(state->state, plane, state)) { if (plane_switching_crtc(state->state, plane, state)) {
DRM_DEBUG_ATOMIC("[PLANE:%d] switching CRTC directly\n", DRM_DEBUG_ATOMIC("[PLANE:%d:%s] switching CRTC directly\n",
plane->base.id); plane->base.id, plane->name);
return -EINVAL; return -EINVAL;
} }
...@@ -1248,8 +1248,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state) ...@@ -1248,8 +1248,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
for_each_plane_in_state(state, plane, plane_state, i) { for_each_plane_in_state(state, plane, plane_state, i) {
ret = drm_atomic_plane_check(plane, plane_state); ret = drm_atomic_plane_check(plane, plane_state);
if (ret) { if (ret) {
DRM_DEBUG_ATOMIC("[PLANE:%d] atomic core check failed\n", DRM_DEBUG_ATOMIC("[PLANE:%d:%s] atomic core check failed\n",
plane->base.id); plane->base.id, plane->name);
return ret; return ret;
} }
} }
......
...@@ -545,8 +545,8 @@ drm_atomic_helper_check_planes(struct drm_device *dev, ...@@ -545,8 +545,8 @@ drm_atomic_helper_check_planes(struct drm_device *dev,
ret = funcs->atomic_check(plane, plane_state); ret = funcs->atomic_check(plane, plane_state);
if (ret) { if (ret) {
DRM_DEBUG_ATOMIC("[PLANE:%d] atomic driver check failed\n", DRM_DEBUG_ATOMIC("[PLANE:%d:%s] atomic driver check failed\n",
plane->base.id); plane->base.id, plane->name);
return ret; return ret;
} }
} }
......
...@@ -1181,6 +1181,18 @@ void drm_encoder_cleanup(struct drm_encoder *encoder) ...@@ -1181,6 +1181,18 @@ void drm_encoder_cleanup(struct drm_encoder *encoder)
} }
EXPORT_SYMBOL(drm_encoder_cleanup); EXPORT_SYMBOL(drm_encoder_cleanup);
static unsigned int drm_num_planes(struct drm_device *dev)
{
unsigned int num = 0;
struct drm_plane *tmp;
drm_for_each_plane(tmp, dev) {
num++;
}
return num;
}
/** /**
* drm_universal_plane_init - Initialize a new universal plane object * drm_universal_plane_init - Initialize a new universal plane object
* @dev: DRM device * @dev: DRM device
...@@ -1224,6 +1236,22 @@ int drm_universal_plane_init(struct drm_device *dev, struct drm_plane *plane, ...@@ -1224,6 +1236,22 @@ int drm_universal_plane_init(struct drm_device *dev, struct drm_plane *plane,
return -ENOMEM; return -ENOMEM;
} }
if (name) {
va_list ap;
va_start(ap, name);
plane->name = kvasprintf(GFP_KERNEL, name, ap);
va_end(ap);
} else {
plane->name = kasprintf(GFP_KERNEL, "plane-%d",
drm_num_planes(dev));
}
if (!plane->name) {
kfree(plane->format_types);
drm_mode_object_put(dev, &plane->base);
return -ENOMEM;
}
memcpy(plane->format_types, formats, format_count * sizeof(uint32_t)); memcpy(plane->format_types, formats, format_count * sizeof(uint32_t));
plane->format_count = format_count; plane->format_count = format_count;
plane->possible_crtcs = possible_crtcs; plane->possible_crtcs = possible_crtcs;
...@@ -1314,6 +1342,8 @@ void drm_plane_cleanup(struct drm_plane *plane) ...@@ -1314,6 +1342,8 @@ void drm_plane_cleanup(struct drm_plane *plane)
if (plane->state && plane->funcs->atomic_destroy_state) if (plane->state && plane->funcs->atomic_destroy_state)
plane->funcs->atomic_destroy_state(plane, plane->state); plane->funcs->atomic_destroy_state(plane, plane->state);
kfree(plane->name);
memset(plane, 0, sizeof(*plane)); memset(plane, 0, sizeof(*plane));
} }
EXPORT_SYMBOL(drm_plane_cleanup); EXPORT_SYMBOL(drm_plane_cleanup);
......
...@@ -1496,6 +1496,8 @@ struct drm_plane { ...@@ -1496,6 +1496,8 @@ struct drm_plane {
struct drm_device *dev; struct drm_device *dev;
struct list_head head; struct list_head head;
char *name;
struct drm_modeset_lock mutex; struct drm_modeset_lock mutex;
struct drm_mode_object base; struct drm_mode_object base;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment