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

drm/edid: convert to device specific logging

Convert to drm_kms_dbg/drm_err where possible, and reference the
connector using [CONNECTOR:%d:%s]. Pass connectors around a bit more to
enable this. Where this is not possible, unify the rest of the debugs to
DRM_DEBUG_KMS.

Rewrite tile debug logging to one line while at it.

v2:
- Use [CONNECTOR:%d:%s] throughout (Ville)
- Tile debug logging revamp
- Pass connector around a bit more

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/e48346bfe09a632d5a5faa55e3c161b196cf21e8.1666614699.git.jani.nikula@intel.com

+77 -60
+77 -60
drivers/gpu/drm/drm_edid.c
··· 1979 1979 1980 1980 status = edid_block_check(block, is_base_block); 1981 1981 if (status == EDID_BLOCK_HEADER_REPAIR) { 1982 - DRM_DEBUG("Fixing EDID header, your hardware may be failing\n"); 1982 + DRM_DEBUG_KMS("Fixing EDID header, your hardware may be failing\n"); 1983 1983 edid_header_fix(block); 1984 1984 1985 1985 /* Retry with fixed header, update status if that worked. */ ··· 2301 2301 2302 2302 drm_edid_free(override); 2303 2303 2304 - DRM_DEBUG_KMS("[CONNECTOR:%d:%s] adding %d modes via fallback override/firmware EDID\n", 2305 - connector->base.id, connector->name, num_modes); 2304 + drm_dbg_kms(connector->dev, 2305 + "[CONNECTOR:%d:%s] adding %d modes via fallback override/firmware EDID\n", 2306 + connector->base.id, connector->name, num_modes); 2306 2307 } 2307 2308 2308 2309 return num_modes; ··· 3389 3388 * timing block contains enough info for us to create and return a new struct 3390 3389 * drm_display_mode. 3391 3390 */ 3392 - static struct drm_display_mode *drm_mode_detailed(struct drm_device *dev, 3391 + static struct drm_display_mode *drm_mode_detailed(struct drm_connector *connector, 3393 3392 const struct drm_edid *drm_edid, 3394 3393 const struct detailed_timing *timing, 3395 3394 u32 quirks) 3396 3395 { 3396 + struct drm_device *dev = connector->dev; 3397 3397 struct drm_display_mode *mode; 3398 3398 const struct detailed_pixel_timing *pt = &timing->data.pixel_data; 3399 3399 unsigned hactive = (pt->hactive_hblank_hi & 0xf0) << 4 | pt->hactive_lo; ··· 3411 3409 return NULL; 3412 3410 3413 3411 if (pt->misc & DRM_EDID_PT_STEREO) { 3414 - DRM_DEBUG_KMS("stereo mode not supported\n"); 3412 + drm_dbg_kms(dev, "[CONNECTOR:%d:%s] Stereo mode not supported\n", 3413 + connector->base.id, connector->name); 3415 3414 return NULL; 3416 3415 } 3417 3416 if (!(pt->misc & DRM_EDID_PT_SEPARATE_SYNC)) { 3418 - DRM_DEBUG_KMS("composite sync not supported\n"); 3417 + drm_dbg_kms(dev, "[CONNECTOR:%d:%s] Composite sync not supported\n", 3418 + connector->base.id, connector->name); 3419 3419 } 3420 3420 3421 3421 /* it is incorrect if hsync/vsync width is zero */ 3422 3422 if (!hsync_pulse_width || !vsync_pulse_width) { 3423 - DRM_DEBUG_KMS("Incorrect Detailed timing. " 3424 - "Wrong Hsync/Vsync pulse width\n"); 3423 + drm_dbg_kms(dev, "[CONNECTOR:%d:%s] Incorrect Detailed timing. Wrong Hsync/Vsync pulse width\n", 3424 + connector->base.id, connector->name); 3425 3425 return NULL; 3426 3426 } 3427 3427 ··· 3980 3976 return closure.modes; 3981 3977 } 3982 3978 3983 - static void fixup_detailed_cea_mode_clock(struct drm_display_mode *mode); 3979 + static void fixup_detailed_cea_mode_clock(struct drm_connector *connector, 3980 + struct drm_display_mode *mode); 3984 3981 3985 3982 static void 3986 3983 do_detailed_mode(const struct detailed_timing *timing, void *c) ··· 3992 3987 if (!is_detailed_timing_descriptor(timing)) 3993 3988 return; 3994 3989 3995 - newmode = drm_mode_detailed(closure->connector->dev, 3990 + newmode = drm_mode_detailed(closure->connector, 3996 3991 closure->drm_edid, timing, 3997 3992 closure->quirks); 3998 3993 if (!newmode) ··· 4006 4001 * so fix up anything that looks like CEA/HDMI mode, but the clock 4007 4002 * is just slightly off. 4008 4003 */ 4009 - fixup_detailed_cea_mode_clock(newmode); 4004 + fixup_detailed_cea_mode_clock(closure->connector, newmode); 4010 4005 4011 4006 drm_mode_probed_add(closure->connector, newmode); 4012 4007 closure->modes++; ··· 4668 4663 struct drm_display_mode *newmode; 4669 4664 4670 4665 if (!drm_valid_hdmi_vic(vic)) { 4671 - DRM_ERROR("Unknown HDMI VIC: %d\n", vic); 4666 + drm_err(connector->dev, "[CONNECTOR:%d:%s] Unknown HDMI VIC: %d\n", 4667 + connector->base.id, connector->name, vic); 4672 4668 return 0; 4673 4669 } 4674 4670 ··· 5276 5270 return modes; 5277 5271 } 5278 5272 5279 - static void fixup_detailed_cea_mode_clock(struct drm_display_mode *mode) 5273 + static void fixup_detailed_cea_mode_clock(struct drm_connector *connector, 5274 + struct drm_display_mode *mode) 5280 5275 { 5281 5276 const struct drm_display_mode *cea_mode; 5282 5277 int clock1, clock2, clock; ··· 5315 5308 if (mode->clock == clock) 5316 5309 return; 5317 5310 5318 - DRM_DEBUG("detailed mode matches %s VIC %d, adjusting clock %d -> %d\n", 5319 - type, vic, mode->clock, clock); 5311 + drm_dbg_kms(connector->dev, 5312 + "[CONNECTOR:%d:%s] detailed mode matches %s VIC %d, adjusting clock %d -> %d\n", 5313 + connector->base.id, connector->name, 5314 + type, vic, mode->clock, clock); 5320 5315 mode->clock = clock; 5321 5316 } 5322 5317 ··· 5426 5417 if (len >= 12) 5427 5418 connector->audio_latency[1] = db[12]; 5428 5419 5429 - DRM_DEBUG_KMS("HDMI: latency present %d %d, " 5430 - "video latency %d %d, " 5431 - "audio latency %d %d\n", 5432 - connector->latency_present[0], 5433 - connector->latency_present[1], 5434 - connector->video_latency[0], 5435 - connector->video_latency[1], 5436 - connector->audio_latency[0], 5437 - connector->audio_latency[1]); 5420 + drm_dbg_kms(connector->dev, 5421 + "[CONNECTOR:%d:%s] HDMI: latency present %d %d, video latency %d %d, audio latency %d %d\n", 5422 + connector->base.id, connector->name, 5423 + connector->latency_present[0], connector->latency_present[1], 5424 + connector->video_latency[0], connector->video_latency[1], 5425 + connector->audio_latency[0], connector->audio_latency[1]); 5438 5426 } 5439 5427 5440 5428 static void ··· 5529 5523 return; 5530 5524 5531 5525 mnl = get_monitor_name(drm_edid, &eld[DRM_ELD_MONITOR_NAME_STRING]); 5532 - DRM_DEBUG_KMS("ELD monitor %s\n", &eld[DRM_ELD_MONITOR_NAME_STRING]); 5526 + drm_dbg_kms(connector->dev, "[CONNECTOR:%d:%s] ELD monitor %s\n", 5527 + connector->base.id, connector->name, 5528 + &eld[DRM_ELD_MONITOR_NAME_STRING]); 5533 5529 5534 5530 eld[DRM_ELD_CEA_EDID_VER_MNL] = info->cea_rev << DRM_ELD_CEA_EDID_VER_SHIFT; 5535 5531 eld[DRM_ELD_CEA_EDID_VER_MNL] |= mnl; ··· 5585 5577 eld[DRM_ELD_BASELINE_ELD_LEN] = 5586 5578 DIV_ROUND_UP(drm_eld_calc_baseline_block_size(eld), 4); 5587 5579 5588 - DRM_DEBUG_KMS("ELD size %d, SAD count %d\n", 5589 - drm_eld_size(eld), total_sad_count); 5580 + drm_dbg_kms(connector->dev, "[CONNECTOR:%d:%s] ELD size %d, SAD count %d\n", 5581 + connector->base.id, connector->name, 5582 + drm_eld_size(eld), total_sad_count); 5590 5583 } 5591 5584 5592 5585 static int _drm_edid_to_sad(const struct drm_edid *drm_edid, ··· 5858 5849 { 5859 5850 struct drm_display_info *info = &connector->display_info; 5860 5851 5861 - DRM_DEBUG_KMS("CEA VCDB 0x%02x\n", db[2]); 5852 + drm_dbg_kms(connector->dev, "[CONNECTOR:%d:%s] CEA VCDB 0x%02x\n", 5853 + connector->base.id, connector->name, db[2]); 5862 5854 5863 5855 if (db[2] & EDID_CEA_VCDB_QS) 5864 5856 info->rgb_quant_range_selectable = true; ··· 6062 6052 if (hdmi[6] & DRM_EDID_HDMI_DC_30) { 6063 6053 dc_bpc = 10; 6064 6054 info->edid_hdmi_rgb444_dc_modes |= DRM_EDID_HDMI_DC_30; 6065 - DRM_DEBUG("%s: HDMI sink does deep color 30.\n", 6066 - connector->name); 6055 + drm_dbg_kms(connector->dev, "[CONNECTOR:%d:%s] HDMI sink does deep color 30.\n", 6056 + connector->base.id, connector->name); 6067 6057 } 6068 6058 6069 6059 if (hdmi[6] & DRM_EDID_HDMI_DC_36) { 6070 6060 dc_bpc = 12; 6071 6061 info->edid_hdmi_rgb444_dc_modes |= DRM_EDID_HDMI_DC_36; 6072 - DRM_DEBUG("%s: HDMI sink does deep color 36.\n", 6073 - connector->name); 6062 + drm_dbg_kms(connector->dev, "[CONNECTOR:%d:%s] HDMI sink does deep color 36.\n", 6063 + connector->base.id, connector->name); 6074 6064 } 6075 6065 6076 6066 if (hdmi[6] & DRM_EDID_HDMI_DC_48) { 6077 6067 dc_bpc = 16; 6078 6068 info->edid_hdmi_rgb444_dc_modes |= DRM_EDID_HDMI_DC_48; 6079 - DRM_DEBUG("%s: HDMI sink does deep color 48.\n", 6080 - connector->name); 6069 + drm_dbg_kms(connector->dev, "[CONNECTOR:%d:%s] HDMI sink does deep color 48.\n", 6070 + connector->base.id, connector->name); 6081 6071 } 6082 6072 6083 6073 if (dc_bpc == 0) { 6084 - DRM_DEBUG("%s: No deep color support on this HDMI sink.\n", 6085 - connector->name); 6074 + drm_dbg_kms(connector->dev, "[CONNECTOR:%d:%s] No deep color support on this HDMI sink.\n", 6075 + connector->base.id, connector->name); 6086 6076 return; 6087 6077 } 6088 6078 6089 - DRM_DEBUG("%s: Assigning HDMI sink color depth as %d bpc.\n", 6090 - connector->name, dc_bpc); 6079 + drm_dbg_kms(connector->dev, "[CONNECTOR:%d:%s] Assigning HDMI sink color depth as %d bpc.\n", 6080 + connector->base.id, connector->name, dc_bpc); 6091 6081 info->bpc = dc_bpc; 6092 6082 6093 6083 /* YCRCB444 is optional according to spec. */ 6094 6084 if (hdmi[6] & DRM_EDID_HDMI_DC_Y444) { 6095 6085 info->edid_hdmi_ycbcr444_dc_modes = info->edid_hdmi_rgb444_dc_modes; 6096 - DRM_DEBUG("%s: HDMI sink does YCRCB444 in deep color.\n", 6097 - connector->name); 6086 + drm_dbg_kms(connector->dev, "[CONNECTOR:%d:%s] HDMI sink does YCRCB444 in deep color.\n", 6087 + connector->base.id, connector->name); 6098 6088 } 6099 6089 6100 6090 /* ··· 6102 6092 * then deep color 36 bit must be supported. 6103 6093 */ 6104 6094 if (!(hdmi[6] & DRM_EDID_HDMI_DC_36)) { 6105 - DRM_DEBUG("%s: HDMI sink should do DC_36, but does not!\n", 6106 - connector->name); 6095 + drm_dbg_kms(connector->dev, "[CONNECTOR:%d:%s] HDMI sink should do DC_36, but does not!\n", 6096 + connector->base.id, connector->name); 6107 6097 } 6108 6098 } 6109 6099 ··· 6120 6110 if (len >= 7) 6121 6111 info->max_tmds_clock = db[7] * 5000; 6122 6112 6123 - DRM_DEBUG_KMS("HDMI: DVI dual %d, " 6124 - "max TMDS clock %d kHz\n", 6125 - info->dvi_dual, 6126 - info->max_tmds_clock); 6113 + drm_dbg_kms(connector->dev, "[CONNECTOR:%d:%s] HDMI: DVI dual %d, max TMDS clock %d kHz\n", 6114 + connector->base.id, connector->name, 6115 + info->dvi_dual, info->max_tmds_clock); 6127 6116 6128 6117 drm_parse_hdmi_deep_color_info(connector, db); 6129 6118 } ··· 6165 6156 info->cea_rev = edid_ext[1]; 6166 6157 6167 6158 if (info->cea_rev != edid_ext[1]) 6168 - DRM_DEBUG_KMS("CEA extension version mismatch %u != %u\n", 6169 - info->cea_rev, edid_ext[1]); 6159 + drm_dbg_kms(connector->dev, 6160 + "[CONNECTOR:%d:%s] CEA extension version mismatch %u != %u\n", 6161 + connector->base.id, connector->name, 6162 + info->cea_rev, edid_ext[1]); 6170 6163 6171 6164 /* The existence of a CTA extension should imply RGB support */ 6172 6165 info->color_formats = DRM_COLOR_FORMAT_RGB444; ··· 6254 6243 6255 6244 drm_for_each_detailed_block(drm_edid, get_monitor_range, &closure); 6256 6245 6257 - DRM_DEBUG_KMS("Supported Monitor Refresh rate range is %d Hz - %d Hz\n", 6258 - info->monitor_range.min_vfreq, 6259 - info->monitor_range.max_vfreq); 6246 + drm_dbg_kms(connector->dev, 6247 + "[CONNECTOR:%d:%s] Supported Monitor Refresh rate range is %d Hz - %d Hz\n", 6248 + connector->base.id, connector->name, 6249 + info->monitor_range.min_vfreq, info->monitor_range.max_vfreq); 6260 6250 } 6261 6251 6262 6252 static void drm_parse_vesa_mso_data(struct drm_connector *connector, ··· 6399 6387 if (info->bpc == 0 && edid->revision == 3 && 6400 6388 edid->input & DRM_EDID_DIGITAL_DFP_1_X) { 6401 6389 info->bpc = 8; 6402 - DRM_DEBUG("%s: Assigning DFP sink color depth as %d bpc.\n", 6403 - connector->name, info->bpc); 6390 + drm_dbg_kms(connector->dev, 6391 + "[CONNECTOR:%d:%s] Assigning DFP sink color depth as %d bpc.\n", 6392 + connector->base.id, connector->name, info->bpc); 6404 6393 } 6405 6394 6406 6395 /* Only defined for 1.4 with digital displays */ ··· 6433 6420 break; 6434 6421 } 6435 6422 6436 - DRM_DEBUG("%s: Assigning EDID-1.4 digital sink color depth as %d bpc.\n", 6437 - connector->name, info->bpc); 6423 + drm_dbg_kms(connector->dev, 6424 + "[CONNECTOR:%d:%s] Assigning EDID-1.4 digital sink color depth as %d bpc.\n", 6425 + connector->base.id, connector->name, info->bpc); 6438 6426 6439 6427 if (edid->features & DRM_EDID_FEATURE_RGB_YCRCB444) 6440 6428 info->color_formats |= DRM_COLOR_FORMAT_YCBCR444; ··· 7135 7121 connector->tile_h_size = w + 1; 7136 7122 connector->tile_v_size = h + 1; 7137 7123 7138 - DRM_DEBUG_KMS("tile cap 0x%x\n", tile->tile_cap); 7139 - DRM_DEBUG_KMS("tile_size %d x %d\n", w + 1, h + 1); 7140 - DRM_DEBUG_KMS("topo num tiles %dx%d, location %dx%d\n", 7141 - num_h_tile + 1, num_v_tile + 1, tile_h_loc, tile_v_loc); 7142 - DRM_DEBUG_KMS("vend %c%c%c\n", tile->topology_id[0], tile->topology_id[1], tile->topology_id[2]); 7124 + drm_dbg_kms(connector->dev, 7125 + "[CONNECTOR:%d:%s] tile cap 0x%x, size %dx%d, num tiles %dx%d, location %dx%d, vend %c%c%c", 7126 + connector->base.id, connector->name, 7127 + tile->tile_cap, 7128 + connector->tile_h_size, connector->tile_v_size, 7129 + connector->num_h_tile, connector->num_v_tile, 7130 + connector->tile_h_loc, connector->tile_v_loc, 7131 + tile->topology_id[0], tile->topology_id[1], tile->topology_id[2]); 7143 7132 7144 7133 tg = drm_mode_get_tile_group(connector->dev, tile->topology_id); 7145 7134 if (!tg)