Message ID | 20200513053431.2138-3-manasi.d.navare@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v5,1/3] drm/dp: DRM DP helper for reading Ignore MSA from DPCD | expand |
-----Original Message----- From: Navare, Manasi D <manasi.d.navare@intel.com> Sent: Wednesday, May 13, 2020 11:05 AM To: intel-gfx@lists.freedesktop.org; dri-devel@lists.freedesktop.org Cc: Modem, Bhanuprakash <bhanuprakash.modem@intel.com>; Navare, Manasi D <manasi.d.navare@intel.com>; Jani Nikula <jani.nikula@linux.intel.com>; Ville Syrjälä <ville.syrjala@linux.intel.com> Subject: [PATCH v5 3/3] drm/i915/dp: Expose connector VRR info via debugfs From: Bhanuprakash Modem <bhanuprakash.modem@intel.com> [Why] It's useful to know the min and max vrr range for IGT testing. [How] Expose the min and max vfreq for the connector via a debugfs file on the connector, "i915_vrr_info". Example usage: cat /sys/kernel/debug/dri/0/DP-1/i915_vrr_info [Bhanu]: Can you please fix the commit message? 's/i915_vrr_info/vrr_range/' v5: * Rename to vrr_range to match AMD debugfs v4: * Rebase v3: * Remove the unnecessary debug print (Manasi) v2: * Fix the typo in max_vfreq (Manasi) * Change the name of node to i915_vrr_info so we can add other vrr info for more debug info (Manasi) * Change the VRR capable to display Yes or No (Manasi) * Fix indentation checkpatch errors (Manasi) Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> Signed-off-by: Manasi Navare <manasi.d.navare@intel.com> Cc: Jani Nikula <jani.nikula@linux.intel.com> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Tested-by: Manasi Navare <manasi.d.navare@intel.com> --- .../drm/i915/display/intel_display_debugfs.c | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/display/intel_display_debugfs.c b/drivers/gpu/drm/i915/display/intel_display_debugfs.c index 70525623bcdf..a0d680c13e0d 100644 --- a/drivers/gpu/drm/i915/display/intel_display_debugfs.c +++ b/drivers/gpu/drm/i915/display/intel_display_debugfs.c @@ -2185,6 +2185,21 @@ static const struct file_operations i915_dsc_fec_support_fops = { .write = i915_dsc_fec_support_write }; +static int vrr_range_show(struct seq_file *m, void *data) { + struct drm_connector *connector = m->private; + + if (connector->status != connector_status_connected) + return -ENODEV; + + seq_printf(m, "Vrr_capable: %s\n", yesno(intel_dp_is_vrr_capable(connector))); [Bhanu]: As we can read "vrr_capable" property from DRM_IOCTL_MODE_OBJ_GETPROPERTIES ioctl, I think we don't need to expose "vrr_capable" through debugfs. + seq_printf(m, "Min: %u\n", (u8)connector->display_info.monitor_range.min_vfreq); + seq_printf(m, "Max: %u\n", +(u8)connector->display_info.monitor_range.max_vfreq); + + return 0; +} +DEFINE_SHOW_ATTRIBUTE(vrr_range); + /** * intel_connector_debugfs_add - add i915 specific connector debugfs files * @connector: pointer to a registered drm_connector @@ -2219,10 +2234,15 @@ int intel_connector_debugfs_add(struct drm_connector *connector) if (INTEL_GEN(dev_priv) >= 10 && (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort || - connector->connector_type == DRM_MODE_CONNECTOR_eDP)) + connector->connector_type == DRM_MODE_CONNECTOR_eDP)) { debugfs_create_file("i915_dsc_fec_support", S_IRUGO, root, connector, &i915_dsc_fec_support_fops); + if (INTEL_GEN(dev_priv) >= 12) + debugfs_create_file("vrr_range", S_IRUGO, + root, connector, &vrr_range_fops); + } + /* Legacy panels doesn't lpsp on any platform */ if ((INTEL_GEN(dev_priv) >= 9 || IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv)) && -- 2.19.1
On Wed, May 13, 2020 at 04:08:38AM -0700, Modem, Bhanuprakash wrote: > -----Original Message----- > From: Navare, Manasi D <manasi.d.navare@intel.com> > Sent: Wednesday, May 13, 2020 11:05 AM > To: intel-gfx@lists.freedesktop.org; dri-devel@lists.freedesktop.org > Cc: Modem, Bhanuprakash <bhanuprakash.modem@intel.com>; Navare, Manasi D <manasi.d.navare@intel.com>; Jani Nikula <jani.nikula@linux.intel.com>; Ville Syrjälä <ville.syrjala@linux.intel.com> > Subject: [PATCH v5 3/3] drm/i915/dp: Expose connector VRR info via debugfs > > From: Bhanuprakash Modem <bhanuprakash.modem@intel.com> > > [Why] > It's useful to know the min and max vrr range for IGT testing. > > [How] > Expose the min and max vfreq for the connector via a debugfs file on the connector, "i915_vrr_info". > > Example usage: cat /sys/kernel/debug/dri/0/DP-1/i915_vrr_info > > [Bhanu]: Can you please fix the commit message? 's/i915_vrr_info/vrr_range/' > > v5: > * Rename to vrr_range to match AMD debugfs > v4: > * Rebase > v3: > * Remove the unnecessary debug print (Manasi) > v2: > * Fix the typo in max_vfreq (Manasi) > * Change the name of node to i915_vrr_info so we can add other vrr info for more debug info (Manasi) > * Change the VRR capable to display Yes or No (Manasi) > * Fix indentation checkpatch errors (Manasi) > > Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> > Signed-off-by: Manasi Navare <manasi.d.navare@intel.com> > Cc: Jani Nikula <jani.nikula@linux.intel.com> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> > Tested-by: Manasi Navare <manasi.d.navare@intel.com> > --- > .../drm/i915/display/intel_display_debugfs.c | 22 ++++++++++++++++++- > 1 file changed, 21 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_display_debugfs.c b/drivers/gpu/drm/i915/display/intel_display_debugfs.c > index 70525623bcdf..a0d680c13e0d 100644 > --- a/drivers/gpu/drm/i915/display/intel_display_debugfs.c > +++ b/drivers/gpu/drm/i915/display/intel_display_debugfs.c > @@ -2185,6 +2185,21 @@ static const struct file_operations i915_dsc_fec_support_fops = { > .write = i915_dsc_fec_support_write > }; > > +static int vrr_range_show(struct seq_file *m, void *data) { > +struct drm_connector *connector = m->private; > + > +if (connector->status != connector_status_connected) > +return -ENODEV; > + > +seq_printf(m, "Vrr_capable: %s\n", yesno(intel_dp_is_vrr_capable(connector))); > [Bhanu]: As we can read "vrr_capable" property from DRM_IOCTL_MODE_OBJ_GETPROPERTIES ioctl, I think we don't need to expose "vrr_capable" through debugfs. Yes we can get it with the Get prop IOCTL, but having it in debugfs will still be a good debug info without needing to call the ioctl Manasi > +seq_printf(m, "Min: %u\n", (u8)connector->display_info.monitor_range.min_vfreq); > +seq_printf(m, "Max: %u\n", > +(u8)connector->display_info.monitor_range.max_vfreq); > + > +return 0; > +} > +DEFINE_SHOW_ATTRIBUTE(vrr_range); > + > /** > * intel_connector_debugfs_add - add i915 specific connector debugfs files > * @connector: pointer to a registered drm_connector @@ -2219,10 +2234,15 @@ int intel_connector_debugfs_add(struct drm_connector *connector) > > if (INTEL_GEN(dev_priv) >= 10 && > (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort || > - connector->connector_type == DRM_MODE_CONNECTOR_eDP)) > + connector->connector_type == DRM_MODE_CONNECTOR_eDP)) { > debugfs_create_file("i915_dsc_fec_support", S_IRUGO, root, > connector, &i915_dsc_fec_support_fops); > > +if (INTEL_GEN(dev_priv) >= 12) > +debugfs_create_file("vrr_range", S_IRUGO, > + root, connector, &vrr_range_fops); > +} > + > /* Legacy panels doesn't lpsp on any platform */ > if ((INTEL_GEN(dev_priv) >= 9 || IS_HASWELL(dev_priv) || > IS_BROADWELL(dev_priv)) && > -- > 2.19.1 >
[Why] It's useful to know the min and max vrr range for IGT testing. [How] Expose the min and max vfreq for the connector via a debugfs file on the connector, "vrr_range". Example usage: cat /sys/kernel/debug/dri/0/DP-1/vrr_range v5: * Rename to vrr_range to match AMD debugfs v4: * Rebase v3: * Remove the unnecessary debug print (Manasi) v2: * Fix the typo in max_vfreq (Manasi) * Change the name of node to i915_vrr_info so we can add other vrr info for more debug info (Manasi) * Change the VRR capable to display Yes or No (Manasi) * Fix indentation checkpatch errors (Manasi) Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> Signed-off-by: Manasi Navare <manasi.d.navare@intel.com> Cc: Jani Nikula <jani.nikula@linux.intel.com> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Tested-by: Manasi Navare <manasi.d.navare@intel.com> --- .../drm/i915/display/intel_display_debugfs.c | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/display/intel_display_debugfs.c b/drivers/gpu/drm/i915/display/intel_display_debugfs.c index 70525623bcdf..a0d680c13e0d 100644 --- a/drivers/gpu/drm/i915/display/intel_display_debugfs.c +++ b/drivers/gpu/drm/i915/display/intel_display_debugfs.c @@ -2185,6 +2185,21 @@ static const struct file_operations i915_dsc_fec_support_fops = { .write = i915_dsc_fec_support_write }; +static int vrr_range_show(struct seq_file *m, void *data) { + struct drm_connector *connector = m->private; + + if (connector->status != connector_status_connected) + return -ENODEV; + + seq_printf(m, "Vrr_capable: %s\n", yesno(intel_dp_is_vrr_capable(connector))); + seq_printf(m, "Min: %u\n", (u8)connector->display_info.monitor_range.min_vfreq); + seq_printf(m, "Max: %u\n", +(u8)connector->display_info.monitor_range.max_vfreq); + + return 0; +} +DEFINE_SHOW_ATTRIBUTE(vrr_range); + /** * intel_connector_debugfs_add - add i915 specific connector debugfs files * @connector: pointer to a registered drm_connector @@ -2219,10 +2234,15 @@ int intel_connector_debugfs_add(struct drm_connector *connector) if (INTEL_GEN(dev_priv) >= 10 && (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort || - connector->connector_type == DRM_MODE_CONNECTOR_eDP)) + connector->connector_type == DRM_MODE_CONNECTOR_eDP)) { debugfs_create_file("i915_dsc_fec_support", S_IRUGO, root, connector, &i915_dsc_fec_support_fops); + if (INTEL_GEN(dev_priv) >= 12) + debugfs_create_file("vrr_range", S_IRUGO, + root, connector, &vrr_range_fops); + } + /* Legacy panels doesn't lpsp on any platform */ if ((INTEL_GEN(dev_priv) >= 9 || IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv)) && -- 2.19.1
diff --git a/drivers/gpu/drm/i915/display/intel_display_debugfs.c b/drivers/gpu/drm/i915/display/intel_display_debugfs.c index 70525623bcdf..a0d680c13e0d 100644 --- a/drivers/gpu/drm/i915/display/intel_display_debugfs.c +++ b/drivers/gpu/drm/i915/display/intel_display_debugfs.c @@ -2185,6 +2185,21 @@ static const struct file_operations i915_dsc_fec_support_fops = { .write = i915_dsc_fec_support_write }; +static int vrr_range_show(struct seq_file *m, void *data) +{ + struct drm_connector *connector = m->private; + + if (connector->status != connector_status_connected) + return -ENODEV; + + seq_printf(m, "Vrr_capable: %s\n", yesno(intel_dp_is_vrr_capable(connector))); + seq_printf(m, "Min: %u\n", (u8)connector->display_info.monitor_range.min_vfreq); + seq_printf(m, "Max: %u\n", (u8)connector->display_info.monitor_range.max_vfreq); + + return 0; +} +DEFINE_SHOW_ATTRIBUTE(vrr_range); + /** * intel_connector_debugfs_add - add i915 specific connector debugfs files * @connector: pointer to a registered drm_connector @@ -2219,10 +2234,15 @@ int intel_connector_debugfs_add(struct drm_connector *connector) if (INTEL_GEN(dev_priv) >= 10 && (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort || - connector->connector_type == DRM_MODE_CONNECTOR_eDP)) + connector->connector_type == DRM_MODE_CONNECTOR_eDP)) { debugfs_create_file("i915_dsc_fec_support", S_IRUGO, root, connector, &i915_dsc_fec_support_fops); + if (INTEL_GEN(dev_priv) >= 12) + debugfs_create_file("vrr_range", S_IRUGO, + root, connector, &vrr_range_fops); + } + /* Legacy panels doesn't lpsp on any platform */ if ((INTEL_GEN(dev_priv) >= 9 || IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv)) &&