diff options
author | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2015-12-08 11:41:53 -0500 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2015-12-11 03:13:48 -0500 |
commit | fa3ab4c2113c74a9eae9b6a718b167f7c8833e78 (patch) | |
tree | 90a47e8049e4ea83058ec804340c52d059e96eab | |
parent | 86bf546b339914b29f9068bcbb7696355e246a47 (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.c | 41 | ||||
-rw-r--r-- | drivers/gpu/drm/drm_atomic_helper.c | 56 | ||||
-rw-r--r-- | drivers/gpu/drm/drm_crtc.c | 34 | ||||
-rw-r--r-- | drivers/gpu/drm/drm_crtc_helper.c | 24 | ||||
-rw-r--r-- | include/drm/drm_crtc.h | 2 |
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 | ||
650 | DEFINE_WW_CLASS(crtc_ww_class); | 650 | DEFINE_WW_CLASS(crtc_ww_class); |
651 | 651 | ||
652 | static 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 | } |
735 | EXPORT_SYMBOL(drm_crtc_cleanup); | 764 | EXPORT_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 | * |