Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/client: switch to drm device based logging, and more

Switch to drm device based logging and WARNs, and unify connector and
crtc logging formats. Pass drm device around a bit more to be able to do
this. Drop logging for -ENOMEM.

Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patchwork.freedesktop.org/patch/msgid/4fb77e6039bcda7448d1187bc5cd7a5ac4d393aa.1712568037.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>

+70 -59
+70 -59
drivers/gpu/drm/drm_client_modeset.c
··· 242 242 for (i = 0; i < connector_count; i++) { 243 243 connector = connectors[i]; 244 244 enabled[i] = drm_connector_enabled(connector, true); 245 - DRM_DEBUG_KMS("connector %d enabled? %s\n", connector->base.id, 246 - connector->display_info.non_desktop ? "non desktop" : str_yes_no(enabled[i])); 245 + drm_dbg_kms(connector->dev, "[CONNECTOR:%d:%s] enabled? %s\n", 246 + connector->base.id, connector->name, 247 + connector->display_info.non_desktop ? 248 + "non desktop" : str_yes_no(enabled[i])); 247 249 248 250 any_enabled |= enabled[i]; 249 251 } ··· 305 303 } 306 304 307 305 if (can_clone) { 308 - DRM_DEBUG_KMS("can clone using command line\n"); 306 + drm_dbg_kms(dev, "can clone using command line\n"); 309 307 return true; 310 308 } 311 309 ··· 334 332 kfree(dmt_mode); 335 333 336 334 if (can_clone) { 337 - DRM_DEBUG_KMS("can clone using 1024x768\n"); 335 + drm_dbg_kms(dev, "can clone using 1024x768\n"); 338 336 return true; 339 337 } 340 338 fail: 341 - DRM_INFO("kms: can't enable cloning when we probably wanted to.\n"); 339 + drm_info(dev, "kms: can't enable cloning when we probably wanted to.\n"); 342 340 return false; 343 341 } 344 342 345 - static int drm_client_get_tile_offsets(struct drm_connector **connectors, 343 + static int drm_client_get_tile_offsets(struct drm_device *dev, 344 + struct drm_connector **connectors, 346 345 unsigned int connector_count, 347 346 struct drm_display_mode **modes, 348 347 struct drm_client_offset *offsets, ··· 360 357 continue; 361 358 362 359 if (!modes[i] && (h_idx || v_idx)) { 363 - DRM_DEBUG_KMS("no modes for connector tiled %d %d\n", i, 364 - connector->base.id); 360 + drm_dbg_kms(dev, 361 + "[CONNECTOR:%d:%s] no modes for connector tiled %d\n", 362 + connector->base.id, connector->name, i); 365 363 continue; 366 364 } 367 365 if (connector->tile_h_loc < h_idx) ··· 373 369 } 374 370 offsets[idx].x = hoffset; 375 371 offsets[idx].y = voffset; 376 - DRM_DEBUG_KMS("returned %d %d for %d %d\n", hoffset, voffset, h_idx, v_idx); 372 + drm_dbg_kms(dev, "returned %d %d for %d %d\n", hoffset, voffset, h_idx, v_idx); 377 373 return 0; 378 374 } 379 375 380 - static bool drm_client_target_preferred(struct drm_connector **connectors, 376 + static bool drm_client_target_preferred(struct drm_device *dev, 377 + struct drm_connector **connectors, 381 378 unsigned int connector_count, 382 379 struct drm_display_mode **modes, 383 380 struct drm_client_offset *offsets, ··· 428 423 * find the tile offsets for this pass - need to find 429 424 * all tiles left and above 430 425 */ 431 - drm_client_get_tile_offsets(connectors, connector_count, modes, offsets, i, 426 + drm_client_get_tile_offsets(dev, connectors, connector_count, 427 + modes, offsets, i, 432 428 connector->tile_h_loc, connector->tile_v_loc); 433 429 } 434 - DRM_DEBUG_KMS("looking for cmdline mode on connector %d\n", 435 - connector->base.id); 430 + drm_dbg_kms(dev, "[CONNECTOR:%d:%s] looking for cmdline mode\n", 431 + connector->base.id, connector->name); 436 432 437 433 /* got for command line mode first */ 438 434 modes[i] = drm_connector_pick_cmdline_mode(connector); 439 435 if (!modes[i]) { 440 - DRM_DEBUG_KMS("looking for preferred mode on connector %d %d\n", 441 - connector->base.id, connector->tile_group ? connector->tile_group->id : 0); 436 + drm_dbg_kms(dev, "[CONNECTOR:%d:%s] looking for preferred mode, tile %d\n", 437 + connector->base.id, connector->name, 438 + connector->tile_group ? connector->tile_group->id : 0); 442 439 modes[i] = drm_connector_has_preferred_mode(connector, width, height); 443 440 } 444 441 /* No preferred modes, pick one off the list */ ··· 462 455 (connector->tile_h_loc == 0 && 463 456 connector->tile_v_loc == 0 && 464 457 !drm_connector_get_tiled_mode(connector))) { 465 - DRM_DEBUG_KMS("Falling back to non tiled mode on Connector %d\n", 466 - connector->base.id); 458 + drm_dbg_kms(dev, 459 + "[CONNECTOR:%d:%s] Falling back to non-tiled mode\n", 460 + connector->base.id, connector->name); 467 461 modes[i] = drm_connector_fallback_non_tiled_mode(connector); 468 462 } else { 469 463 modes[i] = drm_connector_get_tiled_mode(connector); 470 464 } 471 465 } 472 466 473 - DRM_DEBUG_KMS("found mode %s\n", modes[i] ? modes[i]->name : 474 - "none"); 467 + drm_dbg_kms(dev, "[CONNECTOR:%d:%s] Found mode %s\n", 468 + connector->base.id, connector->name, 469 + modes[i] ? modes[i]->name : "none"); 475 470 conn_configured |= BIT_ULL(i); 476 471 } 477 472 ··· 594 585 if (!drm_drv_uses_atomic_modeset(dev)) 595 586 return false; 596 587 597 - if (WARN_ON(count <= 0)) 588 + if (drm_WARN_ON(dev, count <= 0)) 598 589 return false; 599 590 600 591 save_enabled = kcalloc(count, sizeof(bool), GFP_KERNEL); ··· 633 624 num_connectors_detected++; 634 625 635 626 if (!enabled[i]) { 636 - DRM_DEBUG_KMS("connector %s not enabled, skipping\n", 637 - connector->name); 627 + drm_dbg_kms(dev, "[CONNECTOR:%d:%s] not enabled, skipping\n", 628 + connector->base.id, connector->name); 638 629 conn_configured |= BIT(i); 639 630 continue; 640 631 } 641 632 642 633 if (connector->force == DRM_FORCE_OFF) { 643 - DRM_DEBUG_KMS("connector %s is disabled by user, skipping\n", 644 - connector->name); 634 + drm_dbg_kms(dev, "[CONNECTOR:%d:%s] disabled by user, skipping\n", 635 + connector->base.id, connector->name); 645 636 enabled[i] = false; 646 637 continue; 647 638 } 648 639 649 640 encoder = connector->state->best_encoder; 650 - if (!encoder || WARN_ON(!connector->state->crtc)) { 641 + if (!encoder || drm_WARN_ON(dev, !connector->state->crtc)) { 651 642 if (connector->force > DRM_FORCE_OFF) 652 643 goto bail; 653 644 654 - DRM_DEBUG_KMS("connector %s has no encoder or crtc, skipping\n", 655 - connector->name); 645 + drm_dbg_kms(dev, "[CONNECTOR:%d:%s] has no encoder or crtc, skipping\n", 646 + connector->base.id, connector->name); 656 647 enabled[i] = false; 657 648 conn_configured |= BIT(i); 658 649 continue; ··· 669 660 */ 670 661 for (j = 0; j < count; j++) { 671 662 if (crtcs[j] == new_crtc) { 672 - DRM_DEBUG_KMS("fallback: cloned configuration\n"); 663 + drm_dbg_kms(dev, "fallback: cloned configuration\n"); 673 664 goto bail; 674 665 } 675 666 } 676 667 677 - DRM_DEBUG_KMS("looking for cmdline mode on connector %s\n", 678 - connector->name); 668 + drm_dbg_kms(dev, "[CONNECTOR:%d:%s] looking for cmdline mode\n", 669 + connector->base.id, connector->name); 679 670 680 671 /* go for command line mode first */ 681 672 modes[i] = drm_connector_pick_cmdline_mode(connector); 682 673 683 674 /* try for preferred next */ 684 675 if (!modes[i]) { 685 - DRM_DEBUG_KMS("looking for preferred mode on connector %s %d\n", 686 - connector->name, connector->has_tile); 676 + drm_dbg_kms(dev, 677 + "[CONNECTOR:%d:%s] looking for preferred mode, has tile: %s\n", 678 + connector->base.id, connector->name, 679 + str_yes_no(connector->has_tile)); 687 680 modes[i] = drm_connector_has_preferred_mode(connector, width, height); 688 681 } 689 682 690 683 /* No preferred mode marked by the EDID? Are there any modes? */ 691 684 if (!modes[i] && !list_empty(&connector->modes)) { 692 - DRM_DEBUG_KMS("using first mode listed on connector %s\n", 693 - connector->name); 685 + drm_dbg_kms(dev, "[CONNECTOR:%d:%s] using first listed mode\n", 686 + connector->base.id, connector->name); 694 687 modes[i] = list_first_entry(&connector->modes, 695 688 struct drm_display_mode, 696 689 head); ··· 711 700 * This is crtc->mode and not crtc->state->mode for the 712 701 * fastboot check to work correctly. 713 702 */ 714 - DRM_DEBUG_KMS("looking for current mode on connector %s\n", 715 - connector->name); 703 + drm_dbg_kms(dev, "[CONNECTOR:%d:%s] looking for current mode\n", 704 + connector->base.id, connector->name); 716 705 modes[i] = &connector->state->crtc->mode; 717 706 } 718 707 /* ··· 721 710 */ 722 711 if (connector->has_tile && 723 712 num_tiled_conns < connector->num_h_tile * connector->num_v_tile) { 724 - DRM_DEBUG_KMS("Falling back to non tiled mode on Connector %d\n", 725 - connector->base.id); 713 + drm_dbg_kms(dev, "[CONNECTOR:%d:%s] Falling back to non-tiled mode\n", 714 + connector->base.id, connector->name); 726 715 modes[i] = drm_connector_fallback_non_tiled_mode(connector); 727 716 } 728 717 crtcs[i] = new_crtc; 729 718 730 - DRM_DEBUG_KMS("connector %s on [CRTC:%d:%s]: %dx%d%s\n", 731 - connector->name, 732 - connector->state->crtc->base.id, 733 - connector->state->crtc->name, 734 - modes[i]->hdisplay, modes[i]->vdisplay, 735 - modes[i]->flags & DRM_MODE_FLAG_INTERLACE ? "i" : ""); 719 + drm_dbg_kms(dev, "[CONNECTOR:%d:%s] on [CRTC:%d:%s]: %dx%d%s\n", 720 + connector->base.id, connector->name, 721 + connector->state->crtc->base.id, 722 + connector->state->crtc->name, 723 + modes[i]->hdisplay, modes[i]->vdisplay, 724 + modes[i]->flags & DRM_MODE_FLAG_INTERLACE ? "i" : ""); 736 725 737 726 fallback = false; 738 727 conn_configured |= BIT(i); ··· 748 737 */ 749 738 if (num_connectors_enabled != num_connectors_detected && 750 739 num_connectors_enabled < dev->mode_config.num_crtc) { 751 - DRM_DEBUG_KMS("fallback: Not all outputs enabled\n"); 752 - DRM_DEBUG_KMS("Enabled: %i, detected: %i\n", num_connectors_enabled, 753 - num_connectors_detected); 740 + drm_dbg_kms(dev, "fallback: Not all outputs enabled\n"); 741 + drm_dbg_kms(dev, "Enabled: %i, detected: %i\n", 742 + num_connectors_enabled, num_connectors_detected); 754 743 fallback = true; 755 744 } 756 745 757 746 if (fallback) { 758 747 bail: 759 - DRM_DEBUG_KMS("Not using firmware configuration\n"); 748 + drm_dbg_kms(dev, "Not using firmware configuration\n"); 760 749 memcpy(enabled, save_enabled, count); 761 750 ret = false; 762 751 } ··· 793 782 int i, ret = 0; 794 783 bool *enabled; 795 784 796 - DRM_DEBUG_KMS("\n"); 785 + drm_dbg_kms(dev, "\n"); 797 786 798 787 if (!width) 799 788 width = dev->mode_config.max_width; ··· 824 813 offsets = kcalloc(connector_count, sizeof(*offsets), GFP_KERNEL); 825 814 enabled = kcalloc(connector_count, sizeof(bool), GFP_KERNEL); 826 815 if (!crtcs || !modes || !enabled || !offsets) { 827 - DRM_ERROR("Memory allocation failed\n"); 828 816 ret = -ENOMEM; 829 817 goto out; 830 818 } ··· 834 824 for (i = 0; i < connector_count; i++) 835 825 total_modes_count += connectors[i]->funcs->fill_modes(connectors[i], width, height); 836 826 if (!total_modes_count) 837 - DRM_DEBUG_KMS("No connectors reported connected with modes\n"); 827 + drm_dbg_kms(dev, "No connectors reported connected with modes\n"); 838 828 drm_client_connectors_enabled(connectors, connector_count, enabled); 839 829 840 830 if (!drm_client_firmware_config(client, connectors, connector_count, crtcs, ··· 845 835 846 836 if (!drm_client_target_cloned(dev, connectors, connector_count, modes, 847 837 offsets, enabled, width, height) && 848 - !drm_client_target_preferred(connectors, connector_count, modes, 838 + !drm_client_target_preferred(dev, connectors, connector_count, modes, 849 839 offsets, enabled, width, height)) 850 - DRM_ERROR("Unable to find initial modes\n"); 840 + drm_err(dev, "Unable to find initial modes\n"); 851 841 852 - DRM_DEBUG_KMS("picking CRTCs for %dx%d config\n", 853 - width, height); 842 + drm_dbg_kms(dev, "picking CRTCs for %dx%d config\n", 843 + width, height); 854 844 855 845 drm_client_pick_crtcs(client, connectors, connector_count, 856 846 crtcs, modes, 0, width, height); ··· 868 858 struct drm_mode_set *modeset = drm_client_find_modeset(client, crtc); 869 859 struct drm_connector *connector = connectors[i]; 870 860 871 - DRM_DEBUG_KMS("desired mode %s set on crtc %d (%d,%d)\n", 872 - mode->name, crtc->base.id, offset->x, offset->y); 861 + drm_dbg_kms(dev, "[CRTC:%d:%s] desired mode %s set (%d,%d)\n", 862 + crtc->base.id, crtc->name, 863 + mode->name, offset->x, offset->y); 873 864 874 - if (WARN_ON_ONCE(modeset->num_connectors == DRM_CLIENT_MAX_CLONED_CONNECTORS || 875 - (dev->mode_config.num_crtc > 1 && modeset->num_connectors == 1))) { 865 + if (drm_WARN_ON_ONCE(dev, modeset->num_connectors == DRM_CLIENT_MAX_CLONED_CONNECTORS || 866 + (dev->mode_config.num_crtc > 1 && modeset->num_connectors == 1))) { 876 867 ret = -EINVAL; 877 868 break; 878 869 }