[PATCH 1/5] drm: Add DRM_DEBUG_ATOMIC
Rob Clark
robdclark at gmail.com
Sun Feb 22 08:09:02 PST 2015
On Sun, Feb 22, 2015 at 6:24 AM, Daniel Vetter <daniel.vetter at ffwll.ch> wrote:
> Atomic state handling adds a lot of indirection and complexity between
> simple updates and drivers. For easier debugging the diagnostic output
> is therefore rather chatty. Which is great for tracking down atomic
> issues, but really annoying otherwise.
>
> Add a new DRM_DEBUG_ATOMIC to be able to filter this out.
>
> Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
> Signed-off-by: Daniel Vetter <daniel.vetter at intel.com>
Reviewed-by: Rob Clark <robdclark at gmail.com>
> ---
> drivers/gpu/drm/drm_atomic.c | 100 +++++++++++++++--------------
> drivers/gpu/drm/drm_atomic_helper.c | 124 ++++++++++++++++++------------------
> include/drm/drmP.h | 9 +++
> 3 files changed, 122 insertions(+), 111 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
> index c2e9c5283136..321e098ddf04 100644
> --- a/drivers/gpu/drm/drm_atomic.c
> +++ b/drivers/gpu/drm/drm_atomic.c
> @@ -92,7 +92,7 @@ drm_atomic_state_alloc(struct drm_device *dev)
>
> state->dev = dev;
>
> - DRM_DEBUG_KMS("Allocate atomic state %p\n", state);
> + DRM_DEBUG_ATOMIC("Allocate atomic state %p\n", state);
>
> return state;
> fail:
> @@ -122,7 +122,7 @@ void drm_atomic_state_clear(struct drm_atomic_state *state)
> struct drm_mode_config *config = &dev->mode_config;
> int i;
>
> - DRM_DEBUG_KMS("Clearing atomic state %p\n", state);
> + DRM_DEBUG_ATOMIC("Clearing atomic state %p\n", state);
>
> for (i = 0; i < state->num_connector; i++) {
> struct drm_connector *connector = state->connectors[i];
> @@ -172,7 +172,7 @@ void drm_atomic_state_free(struct drm_atomic_state *state)
> {
> drm_atomic_state_clear(state);
>
> - DRM_DEBUG_KMS("Freeing atomic state %p\n", state);
> + DRM_DEBUG_ATOMIC("Freeing atomic state %p\n", state);
>
> kfree_state(state);
> }
> @@ -217,8 +217,8 @@ drm_atomic_get_crtc_state(struct drm_atomic_state *state,
> state->crtcs[index] = crtc;
> crtc_state->state = state;
>
> - DRM_DEBUG_KMS("Added [CRTC:%d] %p state to %p\n",
> - crtc->base.id, crtc_state, state);
> + DRM_DEBUG_ATOMIC("Added [CRTC:%d] %p state to %p\n",
> + crtc->base.id, crtc_state, state);
>
> return crtc_state;
> }
> @@ -293,8 +293,8 @@ static int drm_atomic_crtc_check(struct drm_crtc *crtc,
> */
>
> if (state->active && !state->enable) {
> - DRM_DEBUG_KMS("[CRTC:%d] active without enabled\n",
> - crtc->base.id);
> + DRM_DEBUG_ATOMIC("[CRTC:%d] active without enabled\n",
> + crtc->base.id);
> return -EINVAL;
> }
>
> @@ -340,8 +340,8 @@ drm_atomic_get_plane_state(struct drm_atomic_state *state,
> state->planes[index] = plane;
> plane_state->state = state;
>
> - DRM_DEBUG_KMS("Added [PLANE:%d] %p state to %p\n",
> - plane->base.id, plane_state, state);
> + DRM_DEBUG_ATOMIC("Added [PLANE:%d] %p state to %p\n",
> + plane->base.id, plane_state, state);
>
> if (plane_state->crtc) {
> struct drm_crtc_state *crtc_state;
> @@ -477,10 +477,10 @@ static int drm_atomic_plane_check(struct drm_plane *plane,
>
> /* either *both* CRTC and FB must be set, or neither */
> if (WARN_ON(state->crtc && !state->fb)) {
> - DRM_DEBUG_KMS("CRTC set but no FB\n");
> + DRM_DEBUG_ATOMIC("CRTC set but no FB\n");
> return -EINVAL;
> } else if (WARN_ON(state->fb && !state->crtc)) {
> - DRM_DEBUG_KMS("FB set but no CRTC\n");
> + DRM_DEBUG_ATOMIC("FB set but no CRTC\n");
> return -EINVAL;
> }
>
> @@ -490,7 +490,7 @@ static int drm_atomic_plane_check(struct drm_plane *plane,
>
> /* Check whether this plane is usable on this CRTC */
> if (!(plane->possible_crtcs & drm_crtc_mask(state->crtc))) {
> - DRM_DEBUG_KMS("Invalid crtc for plane\n");
> + DRM_DEBUG_ATOMIC("Invalid crtc for plane\n");
> return -EINVAL;
> }
>
> @@ -499,8 +499,8 @@ static int drm_atomic_plane_check(struct drm_plane *plane,
> if (state->fb->pixel_format == plane->format_types[i])
> break;
> if (i == plane->format_count) {
> - DRM_DEBUG_KMS("Invalid pixel format %s\n",
> - drm_get_format_name(state->fb->pixel_format));
> + DRM_DEBUG_ATOMIC("Invalid pixel format %s\n",
> + drm_get_format_name(state->fb->pixel_format));
> return -EINVAL;
> }
>
> @@ -509,9 +509,9 @@ static int drm_atomic_plane_check(struct drm_plane *plane,
> state->crtc_x > INT_MAX - (int32_t) state->crtc_w ||
> state->crtc_h > INT_MAX ||
> state->crtc_y > INT_MAX - (int32_t) state->crtc_h) {
> - DRM_DEBUG_KMS("Invalid CRTC coordinates %ux%u+%d+%d\n",
> - state->crtc_w, state->crtc_h,
> - state->crtc_x, state->crtc_y);
> + DRM_DEBUG_ATOMIC("Invalid CRTC coordinates %ux%u+%d+%d\n",
> + state->crtc_w, state->crtc_h,
> + state->crtc_x, state->crtc_y);
> return -ERANGE;
> }
>
> @@ -523,12 +523,12 @@ static int drm_atomic_plane_check(struct drm_plane *plane,
> state->src_x > fb_width - state->src_w ||
> state->src_h > fb_height ||
> state->src_y > fb_height - state->src_h) {
> - DRM_DEBUG_KMS("Invalid source coordinates "
> - "%u.%06ux%u.%06u+%u.%06u+%u.%06u\n",
> - state->src_w >> 16, ((state->src_w & 0xffff) * 15625) >> 10,
> - state->src_h >> 16, ((state->src_h & 0xffff) * 15625) >> 10,
> - state->src_x >> 16, ((state->src_x & 0xffff) * 15625) >> 10,
> - state->src_y >> 16, ((state->src_y & 0xffff) * 15625) >> 10);
> + DRM_DEBUG_ATOMIC("Invalid source coordinates "
> + "%u.%06ux%u.%06u+%u.%06u+%u.%06u\n",
> + state->src_w >> 16, ((state->src_w & 0xffff) * 15625) >> 10,
> + state->src_h >> 16, ((state->src_h & 0xffff) * 15625) >> 10,
> + state->src_x >> 16, ((state->src_x & 0xffff) * 15625) >> 10,
> + state->src_y >> 16, ((state->src_y & 0xffff) * 15625) >> 10);
> return -ENOSPC;
> }
>
> @@ -575,7 +575,7 @@ drm_atomic_get_connector_state(struct drm_atomic_state *state,
> * at most the array is a bit too large.
> */
> if (index >= state->num_connector) {
> - DRM_DEBUG_KMS("Hot-added connector would overflow state array, restarting\n");
> + DRM_DEBUG_ATOMIC("Hot-added connector would overflow state array, restarting\n");
> return ERR_PTR(-EAGAIN);
> }
>
> @@ -590,8 +590,8 @@ drm_atomic_get_connector_state(struct drm_atomic_state *state,
> state->connectors[index] = connector;
> connector_state->state = state;
>
> - DRM_DEBUG_KMS("Added [CONNECTOR:%d] %p state to %p\n",
> - connector->base.id, connector_state, state);
> + DRM_DEBUG_ATOMIC("Added [CONNECTOR:%d] %p state to %p\n",
> + connector->base.id, connector_state, state);
>
> if (connector_state->crtc) {
> struct drm_crtc_state *crtc_state;
> @@ -752,10 +752,11 @@ drm_atomic_set_crtc_for_plane(struct drm_plane_state *plane_state,
> }
>
> if (crtc)
> - DRM_DEBUG_KMS("Link plane state %p to [CRTC:%d]\n",
> - plane_state, crtc->base.id);
> + DRM_DEBUG_ATOMIC("Link plane state %p to [CRTC:%d]\n",
> + plane_state, crtc->base.id);
> else
> - DRM_DEBUG_KMS("Link plane state %p to [NOCRTC]\n", plane_state);
> + DRM_DEBUG_ATOMIC("Link plane state %p to [NOCRTC]\n",
> + plane_state);
>
> return 0;
> }
> @@ -782,10 +783,11 @@ drm_atomic_set_fb_for_plane(struct drm_plane_state *plane_state,
> plane_state->fb = fb;
>
> if (fb)
> - DRM_DEBUG_KMS("Set [FB:%d] for plane state %p\n",
> - fb->base.id, plane_state);
> + DRM_DEBUG_ATOMIC("Set [FB:%d] for plane state %p\n",
> + fb->base.id, plane_state);
> else
> - DRM_DEBUG_KMS("Set [NOFB] for plane state %p\n", plane_state);
> + DRM_DEBUG_ATOMIC("Set [NOFB] for plane state %p\n",
> + plane_state);
> }
> EXPORT_SYMBOL(drm_atomic_set_fb_for_plane);
>
> @@ -818,11 +820,11 @@ drm_atomic_set_crtc_for_connector(struct drm_connector_state *conn_state,
> conn_state->crtc = crtc;
>
> if (crtc)
> - DRM_DEBUG_KMS("Link connector state %p to [CRTC:%d]\n",
> - conn_state, crtc->base.id);
> + DRM_DEBUG_ATOMIC("Link connector state %p to [CRTC:%d]\n",
> + conn_state, crtc->base.id);
> else
> - DRM_DEBUG_KMS("Link connector state %p to [NOCRTC]\n",
> - conn_state);
> + DRM_DEBUG_ATOMIC("Link connector state %p to [NOCRTC]\n",
> + conn_state);
>
> return 0;
> }
> @@ -858,8 +860,8 @@ drm_atomic_add_affected_connectors(struct drm_atomic_state *state,
> if (ret)
> return ret;
>
> - DRM_DEBUG_KMS("Adding all current connectors for [CRTC:%d] to %p\n",
> - crtc->base.id, state);
> + DRM_DEBUG_ATOMIC("Adding all current connectors for [CRTC:%d] to %p\n",
> + crtc->base.id, state);
>
> /*
> * Changed connectors are already in @state, so only need to look at the
> @@ -901,8 +903,8 @@ drm_atomic_connectors_for_crtc(struct drm_atomic_state *state,
> num_connected_connectors++;
> }
>
> - DRM_DEBUG_KMS("State %p has %i connectors for [CRTC:%d]\n",
> - state, num_connected_connectors, crtc->base.id);
> + DRM_DEBUG_ATOMIC("State %p has %i connectors for [CRTC:%d]\n",
> + state, num_connected_connectors, crtc->base.id);
>
> return num_connected_connectors;
> }
> @@ -953,7 +955,7 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
> int ncrtcs = config->num_crtc;
> int i, ret = 0;
>
> - DRM_DEBUG_KMS("checking %p\n", state);
> + DRM_DEBUG_ATOMIC("checking %p\n", state);
>
> for (i = 0; i < nplanes; i++) {
> struct drm_plane *plane = state->planes[i];
> @@ -963,8 +965,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
>
> ret = drm_atomic_plane_check(plane, state->plane_states[i]);
> if (ret) {
> - DRM_DEBUG_KMS("[PLANE:%d] atomic core check failed\n",
> - plane->base.id);
> + DRM_DEBUG_ATOMIC("[PLANE:%d] atomic core check failed\n",
> + plane->base.id);
> return ret;
> }
> }
> @@ -977,8 +979,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
>
> ret = drm_atomic_crtc_check(crtc, state->crtc_states[i]);
> if (ret) {
> - DRM_DEBUG_KMS("[CRTC:%d] atomic core check failed\n",
> - crtc->base.id);
> + DRM_DEBUG_ATOMIC("[CRTC:%d] atomic core check failed\n",
> + crtc->base.id);
> return ret;
> }
> }
> @@ -996,8 +998,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
>
> if (crtc_state->mode_changed ||
> crtc_state->active_changed) {
> - DRM_DEBUG_KMS("[CRTC:%d] requires full modeset\n",
> - crtc->base.id);
> + DRM_DEBUG_ATOMIC("[CRTC:%d] requires full modeset\n",
> + crtc->base.id);
> return -EINVAL;
> }
> }
> @@ -1032,7 +1034,7 @@ int drm_atomic_commit(struct drm_atomic_state *state)
> if (ret)
> return ret;
>
> - DRM_DEBUG_KMS("commiting %p\n", state);
> + DRM_DEBUG_ATOMIC("commiting %p\n", state);
>
> return config->funcs->atomic_commit(state->dev, state, false);
> }
> @@ -1063,7 +1065,7 @@ int drm_atomic_async_commit(struct drm_atomic_state *state)
> if (ret)
> return ret;
>
> - DRM_DEBUG_KMS("commiting %p asynchronously\n", state);
> + DRM_DEBUG_ATOMIC("commiting %p asynchronously\n", state);
>
> return config->funcs->atomic_commit(state->dev, state, true);
> }
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> index 7e3a52b97c7d..5ac38c89be94 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -116,9 +116,9 @@ steal_encoder(struct drm_atomic_state *state,
> */
> WARN_ON(!drm_modeset_is_locked(&config->connection_mutex));
>
> - DRM_DEBUG_KMS("[ENCODER:%d:%s] in use on [CRTC:%d], stealing it\n",
> - encoder->base.id, encoder->name,
> - encoder_crtc->base.id);
> + DRM_DEBUG_ATOMIC("[ENCODER:%d:%s] in use on [CRTC:%d], stealing it\n",
> + encoder->base.id, encoder->name,
> + encoder_crtc->base.id);
>
> crtc_state = drm_atomic_get_crtc_state(state, encoder_crtc);
> if (IS_ERR(crtc_state))
> @@ -130,9 +130,9 @@ steal_encoder(struct drm_atomic_state *state,
> if (connector->state->best_encoder != encoder)
> continue;
>
> - DRM_DEBUG_KMS("Stealing encoder from [CONNECTOR:%d:%s]\n",
> - connector->base.id,
> - connector->name);
> + DRM_DEBUG_ATOMIC("Stealing encoder from [CONNECTOR:%d:%s]\n",
> + connector->base.id,
> + connector->name);
>
> connector_state = drm_atomic_get_connector_state(state,
> connector);
> @@ -165,9 +165,9 @@ update_connector_routing(struct drm_atomic_state *state, int conn_idx)
> if (!connector)
> return 0;
>
> - DRM_DEBUG_KMS("Updating routing for [CONNECTOR:%d:%s]\n",
> - connector->base.id,
> - connector->name);
> + DRM_DEBUG_ATOMIC("Updating routing for [CONNECTOR:%d:%s]\n",
> + connector->base.id,
> + connector->name);
>
> if (connector->state->crtc != connector_state->crtc) {
> if (connector->state->crtc) {
> @@ -186,7 +186,7 @@ update_connector_routing(struct drm_atomic_state *state, int conn_idx)
> }
>
> if (!connector_state->crtc) {
> - DRM_DEBUG_KMS("Disabling [CONNECTOR:%d:%s]\n",
> + DRM_DEBUG_ATOMIC("Disabling [CONNECTOR:%d:%s]\n",
> connector->base.id,
> connector->name);
>
> @@ -199,19 +199,19 @@ update_connector_routing(struct drm_atomic_state *state, int conn_idx)
> new_encoder = funcs->best_encoder(connector);
>
> if (!new_encoder) {
> - DRM_DEBUG_KMS("No suitable encoder found for [CONNECTOR:%d:%s]\n",
> - connector->base.id,
> - connector->name);
> + DRM_DEBUG_ATOMIC("No suitable encoder found for [CONNECTOR:%d:%s]\n",
> + connector->base.id,
> + connector->name);
> return -EINVAL;
> }
>
> if (new_encoder == connector_state->best_encoder) {
> - DRM_DEBUG_KMS("[CONNECTOR:%d:%s] keeps [ENCODER:%d:%s], now on [CRTC:%d]\n",
> - connector->base.id,
> - connector->name,
> - new_encoder->base.id,
> - new_encoder->name,
> - connector_state->crtc->base.id);
> + DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] keeps [ENCODER:%d:%s], now on [CRTC:%d]\n",
> + connector->base.id,
> + connector->name,
> + new_encoder->base.id,
> + new_encoder->name,
> + connector_state->crtc->base.id);
>
> return 0;
> }
> @@ -222,9 +222,9 @@ update_connector_routing(struct drm_atomic_state *state, int conn_idx)
> if (encoder_crtc) {
> ret = steal_encoder(state, new_encoder, encoder_crtc);
> if (ret) {
> - DRM_DEBUG_KMS("Encoder stealing failed for [CONNECTOR:%d:%s]\n",
> - connector->base.id,
> - connector->name);
> + DRM_DEBUG_ATOMIC("Encoder stealing failed for [CONNECTOR:%d:%s]\n",
> + connector->base.id,
> + connector->name);
> return ret;
> }
> }
> @@ -235,12 +235,12 @@ update_connector_routing(struct drm_atomic_state *state, int conn_idx)
> crtc_state = state->crtc_states[idx];
> crtc_state->mode_changed = true;
>
> - DRM_DEBUG_KMS("[CONNECTOR:%d:%s] using [ENCODER:%d:%s] on [CRTC:%d]\n",
> - connector->base.id,
> - connector->name,
> - new_encoder->base.id,
> - new_encoder->name,
> - connector_state->crtc->base.id);
> + DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] using [ENCODER:%d:%s] on [CRTC:%d]\n",
> + connector->base.id,
> + connector->name,
> + new_encoder->base.id,
> + new_encoder->name,
> + connector_state->crtc->base.id);
>
> return 0;
> }
> @@ -292,7 +292,7 @@ mode_fixup(struct drm_atomic_state *state)
> encoder->bridge, &crtc_state->mode,
> &crtc_state->adjusted_mode);
> if (!ret) {
> - DRM_DEBUG_KMS("Bridge fixup failed\n");
> + DRM_DEBUG_ATOMIC("Bridge fixup failed\n");
> return -EINVAL;
> }
> }
> @@ -301,16 +301,16 @@ mode_fixup(struct drm_atomic_state *state)
> ret = funcs->atomic_check(encoder, crtc_state,
> conn_state);
> if (ret) {
> - DRM_DEBUG_KMS("[ENCODER:%d:%s] check failed\n",
> - encoder->base.id, encoder->name);
> + DRM_DEBUG_ATOMIC("[ENCODER:%d:%s] check failed\n",
> + encoder->base.id, encoder->name);
> return ret;
> }
> } else {
> ret = funcs->mode_fixup(encoder, &crtc_state->mode,
> &crtc_state->adjusted_mode);
> if (!ret) {
> - DRM_DEBUG_KMS("[ENCODER:%d:%s] fixup failed\n",
> - encoder->base.id, encoder->name);
> + DRM_DEBUG_ATOMIC("[ENCODER:%d:%s] fixup failed\n",
> + encoder->base.id, encoder->name);
> return -EINVAL;
> }
> }
> @@ -330,8 +330,8 @@ mode_fixup(struct drm_atomic_state *state)
> ret = funcs->mode_fixup(crtc, &crtc_state->mode,
> &crtc_state->adjusted_mode);
> if (!ret) {
> - DRM_DEBUG_KMS("[CRTC:%d] fixup failed\n",
> - crtc->base.id);
> + DRM_DEBUG_ATOMIC("[CRTC:%d] fixup failed\n",
> + crtc->base.id);
> return -EINVAL;
> }
> }
> @@ -384,14 +384,14 @@ drm_atomic_helper_check_modeset(struct drm_device *dev,
> continue;
>
> if (!drm_mode_equal(&crtc->state->mode, &crtc_state->mode)) {
> - DRM_DEBUG_KMS("[CRTC:%d] mode changed\n",
> - crtc->base.id);
> + DRM_DEBUG_ATOMIC("[CRTC:%d] mode changed\n",
> + crtc->base.id);
> crtc_state->mode_changed = true;
> }
>
> if (crtc->state->enable != crtc_state->enable) {
> - DRM_DEBUG_KMS("[CRTC:%d] enable changed\n",
> - crtc->base.id);
> + DRM_DEBUG_ATOMIC("[CRTC:%d] enable changed\n",
> + crtc->base.id);
> crtc_state->mode_changed = true;
> }
> }
> @@ -428,17 +428,17 @@ drm_atomic_helper_check_modeset(struct drm_device *dev,
> * a full modeset because update_connector_routing force that.
> */
> if (crtc->state->active != crtc_state->active) {
> - DRM_DEBUG_KMS("[CRTC:%d] active changed\n",
> - crtc->base.id);
> + DRM_DEBUG_ATOMIC("[CRTC:%d] active changed\n",
> + crtc->base.id);
> crtc_state->active_changed = true;
> }
>
> if (!needs_modeset(crtc_state))
> continue;
>
> - DRM_DEBUG_KMS("[CRTC:%d] needs all connectors, enable: %c, active: %c\n",
> - crtc->base.id,
> - crtc_state->enable ? 'y' : 'n',
> + DRM_DEBUG_ATOMIC("[CRTC:%d] needs all connectors, enable: %c, active: %c\n",
> + crtc->base.id,
> + crtc_state->enable ? 'y' : 'n',
> crtc_state->active ? 'y' : 'n');
>
> ret = drm_atomic_add_affected_connectors(state, crtc);
> @@ -449,8 +449,8 @@ drm_atomic_helper_check_modeset(struct drm_device *dev,
> crtc);
>
> if (crtc_state->enable != !!num_connectors) {
> - DRM_DEBUG_KMS("[CRTC:%d] enabled/connectors mismatch\n",
> - crtc->base.id);
> + DRM_DEBUG_ATOMIC("[CRTC:%d] enabled/connectors mismatch\n",
> + crtc->base.id);
>
> return -EINVAL;
> }
> @@ -497,8 +497,8 @@ drm_atomic_helper_check_planes(struct drm_device *dev,
>
> ret = funcs->atomic_check(plane, plane_state);
> if (ret) {
> - DRM_DEBUG_KMS("[PLANE:%d] atomic driver check failed\n",
> - plane->base.id);
> + DRM_DEBUG_ATOMIC("[PLANE:%d] atomic driver check failed\n",
> + plane->base.id);
> return ret;
> }
> }
> @@ -517,8 +517,8 @@ drm_atomic_helper_check_planes(struct drm_device *dev,
>
> ret = funcs->atomic_check(crtc, state->crtc_states[i]);
> if (ret) {
> - DRM_DEBUG_KMS("[CRTC:%d] atomic driver check failed\n",
> - crtc->base.id);
> + DRM_DEBUG_ATOMIC("[CRTC:%d] atomic driver check failed\n",
> + crtc->base.id);
> return ret;
> }
> }
> @@ -600,8 +600,8 @@ disable_outputs(struct drm_device *dev, struct drm_atomic_state *old_state)
>
> funcs = encoder->helper_private;
>
> - DRM_DEBUG_KMS("disabling [ENCODER:%d:%s]\n",
> - encoder->base.id, encoder->name);
> + DRM_DEBUG_ATOMIC("disabling [ENCODER:%d:%s]\n",
> + encoder->base.id, encoder->name);
>
> /*
> * Each encoder has at most one connector (since we always steal
> @@ -639,8 +639,8 @@ disable_outputs(struct drm_device *dev, struct drm_atomic_state *old_state)
>
> funcs = crtc->helper_private;
>
> - DRM_DEBUG_KMS("disabling [CRTC:%d]\n",
> - crtc->base.id);
> + DRM_DEBUG_ATOMIC("disabling [CRTC:%d]\n",
> + crtc->base.id);
>
>
> /* Right function depends upon target state. */
> @@ -724,8 +724,8 @@ crtc_set_mode(struct drm_device *dev, struct drm_atomic_state *old_state)
> funcs = crtc->helper_private;
>
> if (crtc->state->enable) {
> - DRM_DEBUG_KMS("modeset on [CRTC:%d]\n",
> - crtc->base.id);
> + DRM_DEBUG_ATOMIC("modeset on [CRTC:%d]\n",
> + crtc->base.id);
>
> funcs->mode_set_nofb(crtc);
> }
> @@ -752,8 +752,8 @@ crtc_set_mode(struct drm_device *dev, struct drm_atomic_state *old_state)
> if (!new_crtc_state->mode_changed)
> continue;
>
> - DRM_DEBUG_KMS("modeset on [ENCODER:%d:%s]\n",
> - encoder->base.id, encoder->name);
> + DRM_DEBUG_ATOMIC("modeset on [ENCODER:%d:%s]\n",
> + encoder->base.id, encoder->name);
>
> /*
> * Each encoder has at most one connector (since we always steal
> @@ -816,8 +816,8 @@ void drm_atomic_helper_commit_post_planes(struct drm_device *dev,
> funcs = crtc->helper_private;
>
> if (crtc->state->enable) {
> - DRM_DEBUG_KMS("enabling [CRTC:%d]\n",
> - crtc->base.id);
> + DRM_DEBUG_ATOMIC("enabling [CRTC:%d]\n",
> + crtc->base.id);
>
> if (funcs->enable)
> funcs->enable(crtc);
> @@ -842,8 +842,8 @@ void drm_atomic_helper_commit_post_planes(struct drm_device *dev,
> encoder = connector->state->best_encoder;
> funcs = encoder->helper_private;
>
> - DRM_DEBUG_KMS("enabling [ENCODER:%d:%s]\n",
> - encoder->base.id, encoder->name);
> + DRM_DEBUG_ATOMIC("enabling [ENCODER:%d:%s]\n",
> + encoder->base.id, encoder->name);
>
> /*
> * Each encoder has at most one connector (since we always steal
> diff --git a/include/drm/drmP.h b/include/drm/drmP.h
> index e928625a9da0..52999ba9fbaf 100644
> --- a/include/drm/drmP.h
> +++ b/include/drm/drmP.h
> @@ -104,6 +104,9 @@ struct dma_buf_attachment;
> * PRIME: used in the prime code.
> * This is the category used by the DRM_DEBUG_PRIME() macro.
> *
> + * ATOMIC: used in the atomic code.
> + * This is the category used by the DRM_DEBUG_ATOMIC() macro.
> + *
> * Enabling verbose debug messages is done through the drm.debug parameter,
> * each category being enabled by a bit.
> *
> @@ -121,6 +124,7 @@ struct dma_buf_attachment;
> #define DRM_UT_DRIVER 0x02
> #define DRM_UT_KMS 0x04
> #define DRM_UT_PRIME 0x08
> +#define DRM_UT_ATOMIC 0x10
>
> extern __printf(2, 3)
> void drm_ut_debug_printk(const char *function_name,
> @@ -207,6 +211,11 @@ void drm_err(const char *format, ...);
> if (unlikely(drm_debug & DRM_UT_PRIME)) \
> drm_ut_debug_printk(__func__, fmt, ##args); \
> } while (0)
> +#define DRM_DEBUG_ATOMIC(fmt, args...) \
> + do { \
> + if (unlikely(drm_debug & DRM_UT_ATOMIC)) \
> + drm_ut_debug_printk(__func__, fmt, ##args); \
> + } while (0)
>
> /*@}*/
>
> --
> 2.1.4
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
More information about the dri-devel
mailing list