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: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1449592922-5545-7-git-send-email-ville.syrjala@linux.intel.com
This commit is contained in:
parent
fa3ab4c211
commit
9f4c97a236
|
@ -549,8 +549,8 @@ drm_atomic_get_plane_state(struct drm_atomic_state *state,
|
|||
state->planes[index] = plane;
|
||||
plane_state->state = state;
|
||||
|
||||
DRM_DEBUG_ATOMIC("Added [PLANE:%d] %p state to %p\n",
|
||||
plane->base.id, plane_state, state);
|
||||
DRM_DEBUG_ATOMIC("Added [PLANE:%d:%s] %p state to %p\n",
|
||||
plane->base.id, plane->name, plane_state, state);
|
||||
|
||||
if (plane_state->crtc) {
|
||||
struct drm_crtc_state *crtc_state;
|
||||
|
@ -770,8 +770,8 @@ static int drm_atomic_plane_check(struct drm_plane *plane,
|
|||
}
|
||||
|
||||
if (plane_switching_crtc(state->state, plane, state)) {
|
||||
DRM_DEBUG_ATOMIC("[PLANE:%d] switching CRTC directly\n",
|
||||
plane->base.id);
|
||||
DRM_DEBUG_ATOMIC("[PLANE:%d:%s] switching CRTC directly\n",
|
||||
plane->base.id, plane->name);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
|
@ -1248,8 +1248,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
|
|||
for_each_plane_in_state(state, plane, plane_state, i) {
|
||||
ret = drm_atomic_plane_check(plane, plane_state);
|
||||
if (ret) {
|
||||
DRM_DEBUG_ATOMIC("[PLANE:%d] atomic core check failed\n",
|
||||
plane->base.id);
|
||||
DRM_DEBUG_ATOMIC("[PLANE:%d:%s] atomic core check failed\n",
|
||||
plane->base.id, plane->name);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -545,8 +545,8 @@ drm_atomic_helper_check_planes(struct drm_device *dev,
|
|||
|
||||
ret = funcs->atomic_check(plane, plane_state);
|
||||
if (ret) {
|
||||
DRM_DEBUG_ATOMIC("[PLANE:%d] atomic driver check failed\n",
|
||||
plane->base.id);
|
||||
DRM_DEBUG_ATOMIC("[PLANE:%d:%s] atomic driver check failed\n",
|
||||
plane->base.id, plane->name);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1181,6 +1181,18 @@ void drm_encoder_cleanup(struct drm_encoder *encoder)
|
|||
}
|
||||
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
|
||||
* @dev: DRM device
|
||||
|
@ -1224,6 +1236,22 @@ int drm_universal_plane_init(struct drm_device *dev, struct drm_plane *plane,
|
|||
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));
|
||||
plane->format_count = format_count;
|
||||
plane->possible_crtcs = possible_crtcs;
|
||||
|
@ -1314,6 +1342,8 @@ void drm_plane_cleanup(struct drm_plane *plane)
|
|||
if (plane->state && plane->funcs->atomic_destroy_state)
|
||||
plane->funcs->atomic_destroy_state(plane, plane->state);
|
||||
|
||||
kfree(plane->name);
|
||||
|
||||
memset(plane, 0, sizeof(*plane));
|
||||
}
|
||||
EXPORT_SYMBOL(drm_plane_cleanup);
|
||||
|
|
|
@ -1496,6 +1496,8 @@ struct drm_plane {
|
|||
struct drm_device *dev;
|
||||
struct list_head head;
|
||||
|
||||
char *name;
|
||||
|
||||
struct drm_modeset_lock mutex;
|
||||
|
||||
struct drm_mode_object base;
|
||||
|
|
Loading…
Reference in New Issue