Commit fa373eb2 authored by Bhanuprakash Modem's avatar Bhanuprakash Modem Committed by Jani Nikula

drm/i915/display/debug: Expose crtc current bpc via debugfs

This new debugfs will expose the currently using bpc by crtc.
It is very useful for verifying whether we enter the correct
output color depth from IGT.

This patch will also add the connector's max supported bpc to
"i915_display_info" debugfs.

Example:
cat /sys/kernel/debug/dri/0/crtc-0/i915_current_bpc
Current: 8

Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Uma Shankar <uma.shankar@intel.com>
Signed-off-by: default avatarBhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: default avatarArun R Murthy <arun.r.murthy@intel.com>
Acked-by: default avatarJani Nikula <jani.nikula@intel.com>
Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220519095149.3560034-3-bhanuprakash.modem@intel.com
parent 67d935b4
...@@ -590,6 +590,8 @@ static void intel_connector_info(struct seq_file *m, ...@@ -590,6 +590,8 @@ static void intel_connector_info(struct seq_file *m,
seq_puts(m, "\tHDCP version: "); seq_puts(m, "\tHDCP version: ");
intel_hdcp_info(m, intel_connector); intel_hdcp_info(m, intel_connector);
seq_printf(m, "\tmax bpc: %u\n", connector->display_info.bpc);
intel_panel_info(m, intel_connector); intel_panel_info(m, intel_connector);
seq_printf(m, "\tmodes:\n"); seq_printf(m, "\tmodes:\n");
...@@ -2202,6 +2204,29 @@ static const struct file_operations i915_dsc_bpp_fops = { ...@@ -2202,6 +2204,29 @@ static const struct file_operations i915_dsc_bpp_fops = {
.write = i915_dsc_bpp_write .write = i915_dsc_bpp_write
}; };
/*
* Returns the Current CRTC's bpc.
* Example usage: cat /sys/kernel/debug/dri/0/crtc-0/i915_current_bpc
*/
static int i915_current_bpc_show(struct seq_file *m, void *data)
{
struct intel_crtc *crtc = to_intel_crtc(m->private);
struct intel_crtc_state *crtc_state;
int ret;
ret = drm_modeset_lock_single_interruptible(&crtc->base.mutex);
if (ret)
return ret;
crtc_state = to_intel_crtc_state(crtc->base.state);
seq_printf(m, "Current: %u\n", crtc_state->pipe_bpp / 3);
drm_modeset_unlock(&crtc->base.mutex);
return ret;
}
DEFINE_SHOW_ATTRIBUTE(i915_current_bpc);
/** /**
* intel_connector_debugfs_add - add i915 specific connector debugfs files * intel_connector_debugfs_add - add i915 specific connector debugfs files
* @connector: pointer to a registered drm_connector * @connector: pointer to a registered drm_connector
...@@ -2272,4 +2297,7 @@ void intel_crtc_debugfs_add(struct drm_crtc *crtc) ...@@ -2272,4 +2297,7 @@ void intel_crtc_debugfs_add(struct drm_crtc *crtc)
crtc_updates_add(crtc); crtc_updates_add(crtc);
intel_fbc_crtc_debugfs_add(to_intel_crtc(crtc)); intel_fbc_crtc_debugfs_add(to_intel_crtc(crtc));
debugfs_create_file("i915_current_bpc", 0444, crtc->debugfs_entry, crtc,
&i915_current_bpc_fops);
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment