On Sun, Feb 22, 2015 at 6:24 AM, Daniel Vetter <daniel.vetter@xxxxxxxx> 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@xxxxxxxxxxxxxxx> > Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxxx> Reviewed-by: Rob Clark <robdclark@xxxxxxxxx> > --- > 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@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/dri-devel _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx