aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2015-12-08 11:41:53 -0500
committerDaniel Vetter <daniel.vetter@ffwll.ch>2015-12-11 03:13:48 -0500
commitfa3ab4c2113c74a9eae9b6a718b167f7c8833e78 (patch)
tree90a47e8049e4ea83058ec804340c52d059e96eab
parent86bf546b339914b29f9068bcbb7696355e246a47 (diff)
drm: Add crtc->name and use it in debug messages
Show a sensible name for the crtc in debug mesages. The driver may supply its own name, otherwise the core genrates the name ("crtc-0", "crtc-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-6-git-send-email-ville.syrjala@linux.intel.com
-rw-r--r--drivers/gpu/drm/drm_atomic.c41
-rw-r--r--drivers/gpu/drm/drm_atomic_helper.c56
-rw-r--r--drivers/gpu/drm/drm_crtc.c34
-rw-r--r--drivers/gpu/drm/drm_crtc_helper.c24
-rw-r--r--include/drm/drm_crtc.h2
5 files changed, 97 insertions, 60 deletions
diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
index 07ab75e22b2b..feb66895e48c 100644
--- a/drivers/gpu/drm/drm_atomic.c
+++ b/drivers/gpu/drm/drm_atomic.c
@@ -288,8 +288,8 @@ drm_atomic_get_crtc_state(struct drm_atomic_state *state,
288 state->crtcs[index] = crtc; 288 state->crtcs[index] = crtc;
289 crtc_state->state = state; 289 crtc_state->state = state;
290 290
291 DRM_DEBUG_ATOMIC("Added [CRTC:%d] %p state to %p\n", 291 DRM_DEBUG_ATOMIC("Added [CRTC:%d:%s] %p state to %p\n",
292 crtc->base.id, crtc_state, state); 292 crtc->base.id, crtc->name, crtc_state, state);
293 293
294 return crtc_state; 294 return crtc_state;
295} 295}
@@ -486,8 +486,8 @@ static int drm_atomic_crtc_check(struct drm_crtc *crtc,
486 */ 486 */
487 487
488 if (state->active && !state->enable) { 488 if (state->active && !state->enable) {
489 DRM_DEBUG_ATOMIC("[CRTC:%d] active without enabled\n", 489 DRM_DEBUG_ATOMIC("[CRTC:%d:%s] active without enabled\n",
490 crtc->base.id); 490 crtc->base.id, crtc->name);
491 return -EINVAL; 491 return -EINVAL;
492 } 492 }
493 493
@@ -496,15 +496,15 @@ static int drm_atomic_crtc_check(struct drm_crtc *crtc,
496 * be able to trigger. */ 496 * be able to trigger. */
497 if (drm_core_check_feature(crtc->dev, DRIVER_ATOMIC) && 497 if (drm_core_check_feature(crtc->dev, DRIVER_ATOMIC) &&
498 WARN_ON(state->enable && !state->mode_blob)) { 498 WARN_ON(state->enable && !state->mode_blob)) {
499 DRM_DEBUG_ATOMIC("[CRTC:%d] enabled without mode blob\n", 499 DRM_DEBUG_ATOMIC("[CRTC:%d:%s] enabled without mode blob\n",
500 crtc->base.id); 500 crtc->base.id, crtc->name);
501 return -EINVAL; 501 return -EINVAL;
502 } 502 }
503 503
504 if (drm_core_check_feature(crtc->dev, DRIVER_ATOMIC) && 504 if (drm_core_check_feature(crtc->dev, DRIVER_ATOMIC) &&
505 WARN_ON(!state->enable && state->mode_blob)) { 505 WARN_ON(!state->enable && state->mode_blob)) {
506 DRM_DEBUG_ATOMIC("[CRTC:%d] disabled with mode blob\n", 506 DRM_DEBUG_ATOMIC("[CRTC:%d:%s] disabled with mode blob\n",
507 crtc->base.id); 507 crtc->base.id, crtc->name);
508 return -EINVAL; 508 return -EINVAL;
509 } 509 }
510 510
@@ -1004,8 +1004,8 @@ drm_atomic_set_crtc_for_plane(struct drm_plane_state *plane_state,
1004 } 1004 }
1005 1005
1006 if (crtc) 1006 if (crtc)
1007 DRM_DEBUG_ATOMIC("Link plane state %p to [CRTC:%d]\n", 1007 DRM_DEBUG_ATOMIC("Link plane state %p to [CRTC:%d:%s]\n",
1008 plane_state, crtc->base.id); 1008 plane_state, crtc->base.id, crtc->name);
1009 else 1009 else
1010 DRM_DEBUG_ATOMIC("Link plane state %p to [NOCRTC]\n", 1010 DRM_DEBUG_ATOMIC("Link plane state %p to [NOCRTC]\n",
1011 plane_state); 1011 plane_state);
@@ -1072,8 +1072,8 @@ drm_atomic_set_crtc_for_connector(struct drm_connector_state *conn_state,
1072 conn_state->crtc = crtc; 1072 conn_state->crtc = crtc;
1073 1073
1074 if (crtc) 1074 if (crtc)
1075 DRM_DEBUG_ATOMIC("Link connector state %p to [CRTC:%d]\n", 1075 DRM_DEBUG_ATOMIC("Link connector state %p to [CRTC:%d:%s]\n",
1076 conn_state, crtc->base.id); 1076 conn_state, crtc->base.id, crtc->name);
1077 else 1077 else
1078 DRM_DEBUG_ATOMIC("Link connector state %p to [NOCRTC]\n", 1078 DRM_DEBUG_ATOMIC("Link connector state %p to [NOCRTC]\n",
1079 conn_state); 1079 conn_state);
@@ -1112,8 +1112,8 @@ drm_atomic_add_affected_connectors(struct drm_atomic_state *state,
1112 if (ret) 1112 if (ret)
1113 return ret; 1113 return ret;
1114 1114
1115 DRM_DEBUG_ATOMIC("Adding all current connectors for [CRTC:%d] to %p\n", 1115 DRM_DEBUG_ATOMIC("Adding all current connectors for [CRTC:%d:%s] to %p\n",
1116 crtc->base.id, state); 1116 crtc->base.id, crtc->name, state);
1117 1117
1118 /* 1118 /*
1119 * Changed connectors are already in @state, so only need to look at the 1119 * Changed connectors are already in @state, so only need to look at the
@@ -1193,8 +1193,9 @@ drm_atomic_connectors_for_crtc(struct drm_atomic_state *state,
1193 num_connected_connectors++; 1193 num_connected_connectors++;
1194 } 1194 }
1195 1195
1196 DRM_DEBUG_ATOMIC("State %p has %i connectors for [CRTC:%d]\n", 1196 DRM_DEBUG_ATOMIC("State %p has %i connectors for [CRTC:%d:%s]\n",
1197 state, num_connected_connectors, crtc->base.id); 1197 state, num_connected_connectors,
1198 crtc->base.id, crtc->name);
1198 1199
1199 return num_connected_connectors; 1200 return num_connected_connectors;
1200} 1201}
@@ -1256,8 +1257,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
1256 for_each_crtc_in_state(state, crtc, crtc_state, i) { 1257 for_each_crtc_in_state(state, crtc, crtc_state, i) {
1257 ret = drm_atomic_crtc_check(crtc, crtc_state); 1258 ret = drm_atomic_crtc_check(crtc, crtc_state);
1258 if (ret) { 1259 if (ret) {
1259 DRM_DEBUG_ATOMIC("[CRTC:%d] atomic core check failed\n", 1260 DRM_DEBUG_ATOMIC("[CRTC:%d:%s] atomic core check failed\n",
1260 crtc->base.id); 1261 crtc->base.id, crtc->name);
1261 return ret; 1262 return ret;
1262 } 1263 }
1263 } 1264 }
@@ -1268,8 +1269,8 @@ int drm_atomic_check_only(struct drm_atomic_state *state)
1268 if (!state->allow_modeset) { 1269 if (!state->allow_modeset) {
1269 for_each_crtc_in_state(state, crtc, crtc_state, i) { 1270 for_each_crtc_in_state(state, crtc, crtc_state, i) {
1270 if (drm_atomic_crtc_needs_modeset(crtc_state)) { 1271 if (drm_atomic_crtc_needs_modeset(crtc_state)) {
1271 DRM_DEBUG_ATOMIC("[CRTC:%d] requires full modeset\n", 1272 DRM_DEBUG_ATOMIC("[CRTC:%d:%s] requires full modeset\n",
1272 crtc->base.id); 1273 crtc->base.id, crtc->name);
1273 return -EINVAL; 1274 return -EINVAL;
1274 } 1275 }
1275 } 1276 }
diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
index 110f3db8dd05..6ba3fe5639e4 100644
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
@@ -143,9 +143,9 @@ steal_encoder(struct drm_atomic_state *state,
143 */ 143 */
144 WARN_ON(!drm_modeset_is_locked(&config->connection_mutex)); 144 WARN_ON(!drm_modeset_is_locked(&config->connection_mutex));
145 145
146 DRM_DEBUG_ATOMIC("[ENCODER:%d:%s] in use on [CRTC:%d], stealing it\n", 146 DRM_DEBUG_ATOMIC("[ENCODER:%d:%s] in use on [CRTC:%d:%s], stealing it\n",
147 encoder->base.id, encoder->name, 147 encoder->base.id, encoder->name,
148 encoder_crtc->base.id); 148 encoder_crtc->base.id, encoder_crtc->name);
149 149
150 crtc_state = drm_atomic_get_crtc_state(state, encoder_crtc); 150 crtc_state = drm_atomic_get_crtc_state(state, encoder_crtc);
151 if (IS_ERR(crtc_state)) 151 if (IS_ERR(crtc_state))
@@ -246,12 +246,13 @@ update_connector_routing(struct drm_atomic_state *state, int conn_idx)
246 } 246 }
247 247
248 if (new_encoder == connector_state->best_encoder) { 248 if (new_encoder == connector_state->best_encoder) {
249 DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] keeps [ENCODER:%d:%s], now on [CRTC:%d]\n", 249 DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] keeps [ENCODER:%d:%s], now on [CRTC:%d:%s]\n",
250 connector->base.id, 250 connector->base.id,
251 connector->name, 251 connector->name,
252 new_encoder->base.id, 252 new_encoder->base.id,
253 new_encoder->name, 253 new_encoder->name,
254 connector_state->crtc->base.id); 254 connector_state->crtc->base.id,
255 connector_state->crtc->name);
255 256
256 return 0; 257 return 0;
257 } 258 }
@@ -285,12 +286,13 @@ update_connector_routing(struct drm_atomic_state *state, int conn_idx)
285 crtc_state = state->crtc_states[idx]; 286 crtc_state = state->crtc_states[idx];
286 crtc_state->connectors_changed = true; 287 crtc_state->connectors_changed = true;
287 288
288 DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] using [ENCODER:%d:%s] on [CRTC:%d]\n", 289 DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] using [ENCODER:%d:%s] on [CRTC:%d:%s]\n",
289 connector->base.id, 290 connector->base.id,
290 connector->name, 291 connector->name,
291 new_encoder->base.id, 292 new_encoder->base.id,
292 new_encoder->name, 293 new_encoder->name,
293 connector_state->crtc->base.id); 294 connector_state->crtc->base.id,
295 connector_state->crtc->name);
294 296
295 return 0; 297 return 0;
296} 298}
@@ -374,8 +376,8 @@ mode_fixup(struct drm_atomic_state *state)
374 ret = funcs->mode_fixup(crtc, &crtc_state->mode, 376 ret = funcs->mode_fixup(crtc, &crtc_state->mode,
375 &crtc_state->adjusted_mode); 377 &crtc_state->adjusted_mode);
376 if (!ret) { 378 if (!ret) {
377 DRM_DEBUG_ATOMIC("[CRTC:%d] fixup failed\n", 379 DRM_DEBUG_ATOMIC("[CRTC:%d:%s] fixup failed\n",
378 crtc->base.id); 380 crtc->base.id, crtc->name);
379 return -EINVAL; 381 return -EINVAL;
380 } 382 }
381 } 383 }
@@ -422,14 +424,14 @@ drm_atomic_helper_check_modeset(struct drm_device *dev,
422 424
423 for_each_crtc_in_state(state, crtc, crtc_state, i) { 425 for_each_crtc_in_state(state, crtc, crtc_state, i) {
424 if (!drm_mode_equal(&crtc->state->mode, &crtc_state->mode)) { 426 if (!drm_mode_equal(&crtc->state->mode, &crtc_state->mode)) {
425 DRM_DEBUG_ATOMIC("[CRTC:%d] mode changed\n", 427 DRM_DEBUG_ATOMIC("[CRTC:%d:%s] mode changed\n",
426 crtc->base.id); 428 crtc->base.id, crtc->name);
427 crtc_state->mode_changed = true; 429 crtc_state->mode_changed = true;
428 } 430 }
429 431
430 if (crtc->state->enable != crtc_state->enable) { 432 if (crtc->state->enable != crtc_state->enable) {
431 DRM_DEBUG_ATOMIC("[CRTC:%d] enable changed\n", 433 DRM_DEBUG_ATOMIC("[CRTC:%d:%s] enable changed\n",
432 crtc->base.id); 434 crtc->base.id, crtc->name);
433 435
434 /* 436 /*
435 * For clarity this assignment is done here, but 437 * For clarity this assignment is done here, but
@@ -470,18 +472,18 @@ drm_atomic_helper_check_modeset(struct drm_device *dev,
470 * a full modeset because update_connector_routing force that. 472 * a full modeset because update_connector_routing force that.
471 */ 473 */
472 if (crtc->state->active != crtc_state->active) { 474 if (crtc->state->active != crtc_state->active) {
473 DRM_DEBUG_ATOMIC("[CRTC:%d] active changed\n", 475 DRM_DEBUG_ATOMIC("[CRTC:%d:%s] active changed\n",
474 crtc->base.id); 476 crtc->base.id, crtc->name);
475 crtc_state->active_changed = true; 477 crtc_state->active_changed = true;
476 } 478 }
477 479
478 if (!drm_atomic_crtc_needs_modeset(crtc_state)) 480 if (!drm_atomic_crtc_needs_modeset(crtc_state))
479 continue; 481 continue;
480 482
481 DRM_DEBUG_ATOMIC("[CRTC:%d] needs all connectors, enable: %c, active: %c\n", 483 DRM_DEBUG_ATOMIC("[CRTC:%d:%s] needs all connectors, enable: %c, active: %c\n",
482 crtc->base.id, 484 crtc->base.id, crtc->name,
483 crtc_state->enable ? 'y' : 'n', 485 crtc_state->enable ? 'y' : 'n',
484 crtc_state->active ? 'y' : 'n'); 486 crtc_state->active ? 'y' : 'n');
485 487
486 ret = drm_atomic_add_affected_connectors(state, crtc); 488 ret = drm_atomic_add_affected_connectors(state, crtc);
487 if (ret != 0) 489 if (ret != 0)
@@ -495,8 +497,8 @@ drm_atomic_helper_check_modeset(struct drm_device *dev,
495 crtc); 497 crtc);
496 498
497 if (crtc_state->enable != !!num_connectors) { 499 if (crtc_state->enable != !!num_connectors) {
498 DRM_DEBUG_ATOMIC("[CRTC:%d] enabled/connectors mismatch\n", 500 DRM_DEBUG_ATOMIC("[CRTC:%d:%s] enabled/connectors mismatch\n",
499 crtc->base.id); 501 crtc->base.id, crtc->name);
500 502
501 return -EINVAL; 503 return -EINVAL;
502 } 504 }
@@ -559,8 +561,8 @@ drm_atomic_helper_check_planes(struct drm_device *dev,
559 561
560 ret = funcs->atomic_check(crtc, state->crtc_states[i]); 562 ret = funcs->atomic_check(crtc, state->crtc_states[i]);
561 if (ret) { 563 if (ret) {
562 DRM_DEBUG_ATOMIC("[CRTC:%d] atomic driver check failed\n", 564 DRM_DEBUG_ATOMIC("[CRTC:%d:%s] atomic driver check failed\n",
563 crtc->base.id); 565 crtc->base.id, crtc->name);
564 return ret; 566 return ret;
565 } 567 }
566 } 568 }
@@ -673,8 +675,8 @@ disable_outputs(struct drm_device *dev, struct drm_atomic_state *old_state)
673 675
674 funcs = crtc->helper_private; 676 funcs = crtc->helper_private;
675 677
676 DRM_DEBUG_ATOMIC("disabling [CRTC:%d]\n", 678 DRM_DEBUG_ATOMIC("disabling [CRTC:%d:%s]\n",
677 crtc->base.id); 679 crtc->base.id, crtc->name);
678 680
679 681
680 /* Right function depends upon target state. */ 682 /* Right function depends upon target state. */
@@ -785,8 +787,8 @@ crtc_set_mode(struct drm_device *dev, struct drm_atomic_state *old_state)
785 funcs = crtc->helper_private; 787 funcs = crtc->helper_private;
786 788
787 if (crtc->state->enable && funcs->mode_set_nofb) { 789 if (crtc->state->enable && funcs->mode_set_nofb) {
788 DRM_DEBUG_ATOMIC("modeset on [CRTC:%d]\n", 790 DRM_DEBUG_ATOMIC("modeset on [CRTC:%d:%s]\n",
789 crtc->base.id); 791 crtc->base.id, crtc->name);
790 792
791 funcs->mode_set_nofb(crtc); 793 funcs->mode_set_nofb(crtc);
792 } 794 }
@@ -885,8 +887,8 @@ void drm_atomic_helper_commit_modeset_enables(struct drm_device *dev,
885 funcs = crtc->helper_private; 887 funcs = crtc->helper_private;
886 888
887 if (crtc->state->enable) { 889 if (crtc->state->enable) {
888 DRM_DEBUG_ATOMIC("enabling [CRTC:%d]\n", 890 DRM_DEBUG_ATOMIC("enabling [CRTC:%d:%s]\n",
889 crtc->base.id); 891 crtc->base.id, crtc->name);
890 892
891 if (funcs->enable) 893 if (funcs->enable)
892 funcs->enable(crtc); 894 funcs->enable(crtc);
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index aade4640fa6d..efa57e8a99b5 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -649,6 +649,18 @@ EXPORT_SYMBOL(drm_framebuffer_remove);
649 649
650DEFINE_WW_CLASS(crtc_ww_class); 650DEFINE_WW_CLASS(crtc_ww_class);
651 651
652static unsigned int drm_num_crtcs(struct drm_device *dev)
653{
654 unsigned int num = 0;
655 struct drm_crtc *tmp;
656
657 drm_for_each_crtc(tmp, dev) {
658 num++;
659 }
660
661 return num;
662}
663
652/** 664/**
653 * drm_crtc_init_with_planes - Initialise a new CRTC object with 665 * drm_crtc_init_with_planes - Initialise a new CRTC object with
654 * specified primary and cursor planes. 666 * specified primary and cursor planes.
@@ -684,6 +696,21 @@ int drm_crtc_init_with_planes(struct drm_device *dev, struct drm_crtc *crtc,
684 if (ret) 696 if (ret)
685 return ret; 697 return ret;
686 698
699 if (name) {
700 va_list ap;
701
702 va_start(ap, name);
703 crtc->name = kvasprintf(GFP_KERNEL, name, ap);
704 va_end(ap);
705 } else {
706 crtc->name = kasprintf(GFP_KERNEL, "crtc-%d",
707 drm_num_crtcs(dev));
708 }
709 if (!crtc->name) {
710 drm_mode_object_put(dev, &crtc->base);
711 return -ENOMEM;
712 }
713
687 crtc->base.properties = &crtc->properties; 714 crtc->base.properties = &crtc->properties;
688 715
689 list_add_tail(&crtc->head, &config->crtc_list); 716 list_add_tail(&crtc->head, &config->crtc_list);
@@ -730,6 +757,8 @@ void drm_crtc_cleanup(struct drm_crtc *crtc)
730 if (crtc->state && crtc->funcs->atomic_destroy_state) 757 if (crtc->state && crtc->funcs->atomic_destroy_state)
731 crtc->funcs->atomic_destroy_state(crtc, crtc->state); 758 crtc->funcs->atomic_destroy_state(crtc, crtc->state);
732 759
760 kfree(crtc->name);
761
733 memset(crtc, 0, sizeof(*crtc)); 762 memset(crtc, 0, sizeof(*crtc));
734} 763}
735EXPORT_SYMBOL(drm_crtc_cleanup); 764EXPORT_SYMBOL(drm_crtc_cleanup);
@@ -1814,7 +1843,8 @@ int drm_mode_getresources(struct drm_device *dev, void *data,
1814 copied = 0; 1843 copied = 0;
1815 crtc_id = (uint32_t __user *)(unsigned long)card_res->crtc_id_ptr; 1844 crtc_id = (uint32_t __user *)(unsigned long)card_res->crtc_id_ptr;
1816 drm_for_each_crtc(crtc, dev) { 1845 drm_for_each_crtc(crtc, dev) {
1817 DRM_DEBUG_KMS("[CRTC:%d]\n", crtc->base.id); 1846 DRM_DEBUG_KMS("[CRTC:%d:%s]\n",
1847 crtc->base.id, crtc->name);
1818 if (put_user(crtc->base.id, crtc_id + copied)) { 1848 if (put_user(crtc->base.id, crtc_id + copied)) {
1819 ret = -EFAULT; 1849 ret = -EFAULT;
1820 goto out; 1850 goto out;
@@ -2659,7 +2689,7 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data,
2659 ret = -ENOENT; 2689 ret = -ENOENT;
2660 goto out; 2690 goto out;
2661 } 2691 }
2662 DRM_DEBUG_KMS("[CRTC:%d]\n", crtc->base.id); 2692 DRM_DEBUG_KMS("[CRTC:%d:%s]\n", crtc->base.id, crtc->name);
2663 2693
2664 if (crtc_req->mode_valid) { 2694 if (crtc_req->mode_valid) {
2665 /* If we have a mode we need a framebuffer. */ 2695 /* If we have a mode we need a framebuffer. */
diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c
index fadbdb33bdcc..a02a7f9a6a9d 100644
--- a/drivers/gpu/drm/drm_crtc_helper.c
+++ b/drivers/gpu/drm/drm_crtc_helper.c
@@ -339,7 +339,7 @@ bool drm_crtc_helper_set_mode(struct drm_crtc *crtc,
339 DRM_DEBUG_KMS("CRTC fixup failed\n"); 339 DRM_DEBUG_KMS("CRTC fixup failed\n");
340 goto done; 340 goto done;
341 } 341 }
342 DRM_DEBUG_KMS("[CRTC:%d]\n", crtc->base.id); 342 DRM_DEBUG_KMS("[CRTC:%d:%s]\n", crtc->base.id, crtc->name);
343 343
344 crtc->hwmode = *adjusted_mode; 344 crtc->hwmode = *adjusted_mode;
345 345
@@ -519,11 +519,13 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set)
519 set->fb = NULL; 519 set->fb = NULL;
520 520
521 if (set->fb) { 521 if (set->fb) {
522 DRM_DEBUG_KMS("[CRTC:%d] [FB:%d] #connectors=%d (x y) (%i %i)\n", 522 DRM_DEBUG_KMS("[CRTC:%d:%s] [FB:%d] #connectors=%d (x y) (%i %i)\n",
523 set->crtc->base.id, set->fb->base.id, 523 set->crtc->base.id, set->crtc->name,
524 (int)set->num_connectors, set->x, set->y); 524 set->fb->base.id,
525 (int)set->num_connectors, set->x, set->y);
525 } else { 526 } else {
526 DRM_DEBUG_KMS("[CRTC:%d] [NOFB]\n", set->crtc->base.id); 527 DRM_DEBUG_KMS("[CRTC:%d:%s] [NOFB]\n",
528 set->crtc->base.id, set->crtc->name);
527 drm_crtc_helper_disable(set->crtc); 529 drm_crtc_helper_disable(set->crtc);
528 return 0; 530 return 0;
529 } 531 }
@@ -663,12 +665,12 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set)
663 connector->encoder->crtc = new_crtc; 665 connector->encoder->crtc = new_crtc;
664 } 666 }
665 if (new_crtc) { 667 if (new_crtc) {
666 DRM_DEBUG_KMS("[CONNECTOR:%d:%s] to [CRTC:%d]\n", 668 DRM_DEBUG_KMS("[CONNECTOR:%d:%s] to [CRTC:%d:%s]\n",
667 connector->base.id, connector->name, 669 connector->base.id, connector->name,
668 new_crtc->base.id); 670 new_crtc->base.id, new_crtc->name);
669 } else { 671 } else {
670 DRM_DEBUG_KMS("[CONNECTOR:%d:%s] to [NOCRTC]\n", 672 DRM_DEBUG_KMS("[CONNECTOR:%d:%s] to [NOCRTC]\n",
671 connector->base.id, connector->name); 673 connector->base.id, connector->name);
672 } 674 }
673 } 675 }
674 676
@@ -685,8 +687,8 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set)
685 if (!drm_crtc_helper_set_mode(set->crtc, set->mode, 687 if (!drm_crtc_helper_set_mode(set->crtc, set->mode,
686 set->x, set->y, 688 set->x, set->y,
687 save_set.fb)) { 689 save_set.fb)) {
688 DRM_ERROR("failed to set mode on [CRTC:%d]\n", 690 DRM_ERROR("failed to set mode on [CRTC:%d:%s]\n",
689 set->crtc->base.id); 691 set->crtc->base.id, set->crtc->name);
690 set->crtc->primary->fb = save_set.fb; 692 set->crtc->primary->fb = save_set.fb;
691 ret = -EINVAL; 693 ret = -EINVAL;
692 goto fail; 694 goto fail;
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index 5b5e6b650c11..4bea0a1151bc 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -712,6 +712,8 @@ struct drm_crtc {
712 struct device_node *port; 712 struct device_node *port;
713 struct list_head head; 713 struct list_head head;
714 714
715 char *name;
716
715 /* 717 /*
716 * crtc mutex 718 * crtc mutex
717 * 719 *