drm/i915/audio: Include ELD in the state dump
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 24 Jan 2023 14:46:26 +0000 (16:46 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 25 Jan 2023 10:23:48 +0000 (12:23 +0200)
Include the ELD has a hex blob in the crtc state dump.

Cc: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
Cc: Takashi Iwai <tiwai@suse.de>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230124144628.4649-12-ville.syrjala@linux.intel.com
drivers/gpu/drm/i915/display/intel_crtc_state_dump.c

index e3273fe..2422d6e 100644 (file)
@@ -3,6 +3,8 @@
  * Copyright © 2022 Intel Corporation
  */
 
+#include <drm/drm_edid.h>
+
 #include "i915_drv.h"
 #include "intel_crtc_state_dump.h"
 #include "intel_display_types.h"
@@ -56,6 +58,17 @@ intel_dump_dp_vsc_sdp(struct drm_i915_private *i915,
        drm_dp_vsc_sdp_log(KERN_DEBUG, i915->drm.dev, vsc);
 }
 
+static void
+intel_dump_buffer(struct drm_i915_private *i915,
+                 const char *prefix, const u8 *buf, size_t len)
+{
+       if (!drm_debug_enabled(DRM_UT_KMS))
+               return;
+
+       print_hex_dump(KERN_DEBUG, prefix, DUMP_PREFIX_NONE,
+                      16, 0, buf, len, false);
+}
+
 #define OUTPUT_TYPE(x) [INTEL_OUTPUT_ ## x] = #x
 
 static const char * const output_type_str[] = {
@@ -236,6 +249,10 @@ void intel_crtc_state_dump(const struct intel_crtc_state *pipe_config,
            intel_hdmi_infoframe_enable(DP_SDP_VSC))
                intel_dump_dp_vsc_sdp(i915, &pipe_config->infoframes.vsc);
 
+       if (pipe_config->has_audio)
+               intel_dump_buffer(i915, "ELD: ", pipe_config->eld,
+                                 drm_eld_size(pipe_config->eld));
+
        drm_dbg_kms(&i915->drm, "vrr: %s, vmin: %d, vmax: %d, pipeline full: %d, guardband: %d flipline: %d, vmin vblank: %d, vmax vblank: %d\n",
                    str_yes_no(pipe_config->vrr.enable),
                    pipe_config->vrr.vmin, pipe_config->vrr.vmax,