[PATCH 3/3] drm/amd/display: Move connector debugfs to drm

Modem, Bhanuprakash bhanuprakash.modem at intel.com
Fri Apr 8 15:23:35 UTC 2022


On Fri-08-04-2022 08:33 pm, Harry Wentland wrote:
> 
> 
> On 2022-04-08 02:53, Bhanuprakash Modem wrote:
>> As drm_connector already have the display_info, instead of creating
>> "output_bpc" debugfs in vendor specific driver, move the logic to
>> the drm layer.
>>
>> This patch will also move "Current" bpc to the crtc debugfs from
>> connector debugfs, since we are getting this info from crtc_state.
>>
> 
> Does the amd_max_bpc test pass after this change?

We need IGT fix along with this change. And I have made the required 
changes in IGT: https://patchwork.freedesktop.org/series/102387/

- Bhanu

> 
> Harry
> 
>> Cc: Harry Wentland <harry.wentland at amd.com>
>> Cc: Rodrigo Siqueira <Rodrigo.Siqueira at amd.com>
>> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem at intel.com>
>> ---
>>   .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c |  4 --
>>   .../amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 38 +++++++------------
>>   .../amd/display/amdgpu_dm/amdgpu_dm_debugfs.h |  2 -
>>   3 files changed, 13 insertions(+), 31 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>> index 73423b805b54..f89651c71ec7 100644
>> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>> @@ -6615,14 +6615,12 @@ dm_crtc_duplicate_state(struct drm_crtc *crtc)
>>   	return &state->base;
>>   }
>>   
>> -#ifdef CONFIG_DRM_AMD_SECURE_DISPLAY
>>   static int amdgpu_dm_crtc_late_register(struct drm_crtc *crtc)
>>   {
>>   	crtc_debugfs_init(crtc);
>>   
>>   	return 0;
>>   }
>> -#endif
>>   
>>   static inline int dm_set_vupdate_irq(struct drm_crtc *crtc, bool enable)
>>   {
>> @@ -6720,9 +6718,7 @@ static const struct drm_crtc_funcs amdgpu_dm_crtc_funcs = {
>>   	.enable_vblank = dm_enable_vblank,
>>   	.disable_vblank = dm_disable_vblank,
>>   	.get_vblank_timestamp = drm_crtc_vblank_helper_get_vblank_timestamp,
>> -#if defined(CONFIG_DRM_AMD_SECURE_DISPLAY)
>>   	.late_register = amdgpu_dm_crtc_late_register,
>> -#endif
>>   };
>>   
>>   static enum drm_connector_status
>> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
>> index da17ece1a2c5..3ee26083920b 100644
>> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
>> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c
>> @@ -873,28 +873,18 @@ static int psr_capability_show(struct seq_file *m, void *data)
>>   }
>>   
>>   /*
>> - * Returns the current and maximum output bpc for the connector.
>> - * Example usage: cat /sys/kernel/debug/dri/0/DP-1/output_bpc
>> + * Returns the current bpc for the crtc.
>> + * Example usage: cat /sys/kernel/debug/dri/0/crtc-0/amdgpu_current_bpc
>>    */
>> -static int output_bpc_show(struct seq_file *m, void *data)
>> +static int amdgpu_current_bpc_show(struct seq_file *m, void *data)
>>   {
>> -	struct drm_connector *connector = m->private;
>> -	struct drm_device *dev = connector->dev;
>> -	struct drm_crtc *crtc = NULL;
>> +	struct drm_crtc *crtc = m->private;
>> +	struct drm_device *dev = crtc->dev;
>>   	struct dm_crtc_state *dm_crtc_state = NULL;
>>   	int res = -ENODEV;
>>   	unsigned int bpc;
>>   
>>   	mutex_lock(&dev->mode_config.mutex);
>> -	drm_modeset_lock(&dev->mode_config.connection_mutex, NULL);
>> -
>> -	if (connector->state == NULL)
>> -		goto unlock;
>> -
>> -	crtc = connector->state->crtc;
>> -	if (crtc == NULL)
>> -		goto unlock;
>> -
>>   	drm_modeset_lock(&crtc->mutex, NULL);
>>   	if (crtc->state == NULL)
>>   		goto unlock;
>> @@ -924,18 +914,15 @@ static int output_bpc_show(struct seq_file *m, void *data)
>>   	}
>>   
>>   	seq_printf(m, "Current: %u\n", bpc);
>> -	seq_printf(m, "Maximum: %u\n", connector->display_info.bpc);
>>   	res = 0;
>>   
>>   unlock:
>> -	if (crtc)
>> -		drm_modeset_unlock(&crtc->mutex);
>> -
>> -	drm_modeset_unlock(&dev->mode_config.connection_mutex);
>> +	drm_modeset_unlock(&crtc->mutex);
>>   	mutex_unlock(&dev->mode_config.mutex);
>>   
>>   	return res;
>>   }
>> +DEFINE_SHOW_ATTRIBUTE(amdgpu_current_bpc);
>>   
>>   /*
>>    * Example usage:
>> @@ -2541,7 +2528,6 @@ static int target_backlight_show(struct seq_file *m, void *unused)
>>   DEFINE_SHOW_ATTRIBUTE(dp_dsc_fec_support);
>>   DEFINE_SHOW_ATTRIBUTE(dmub_fw_state);
>>   DEFINE_SHOW_ATTRIBUTE(dmub_tracebuffer);
>> -DEFINE_SHOW_ATTRIBUTE(output_bpc);
>>   DEFINE_SHOW_ATTRIBUTE(dp_lttpr_status);
>>   #ifdef CONFIG_DRM_AMD_DC_HDCP
>>   DEFINE_SHOW_ATTRIBUTE(hdcp_sink_capability);
>> @@ -2788,7 +2774,6 @@ static const struct {
>>   	const struct file_operations *fops;
>>   } connector_debugfs_entries[] = {
>>   		{"force_yuv420_output", &force_yuv420_output_fops},
>> -		{"output_bpc", &output_bpc_fops},
>>   		{"trigger_hotplug", &trigger_hotplug_debugfs_fops},
>>   		{"internal_display", &internal_display_fops}
>>   };
>> @@ -3172,9 +3157,10 @@ static int crc_win_update_get(void *data, u64 *val)
>>   
>>   DEFINE_DEBUGFS_ATTRIBUTE(crc_win_update_fops, crc_win_update_get,
>>   			 crc_win_update_set, "%llu\n");
>> -
>> +#endif
>>   void crtc_debugfs_init(struct drm_crtc *crtc)
>>   {
>> +#ifdef CONFIG_DRM_AMD_SECURE_DISPLAY
>>   	struct dentry *dir = debugfs_lookup("crc", crtc->debugfs_entry);
>>   
>>   	if (!dir)
>> @@ -3190,9 +3176,11 @@ void crtc_debugfs_init(struct drm_crtc *crtc)
>>   				   &crc_win_y_end_fops);
>>   	debugfs_create_file_unsafe("crc_win_update", 0644, dir, crtc,
>>   				   &crc_win_update_fops);
>> -
>> -}
>>   #endif
>> +	debugfs_create_file("amdgpu_current_bpc", 0644, crtc->debugfs_entry,
>> +			    crtc, &amdgpu_current_bpc_fops);
>> +}
>> +
>>   /*
>>    * Writes DTN log state to the user supplied buffer.
>>    * Example usage: cat /sys/kernel/debug/dri/0/amdgpu_dm_dtn_log
>> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.h
>> index 3366cb644053..071200473c27 100644
>> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.h
>> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.h
>> @@ -31,8 +31,6 @@
>>   
>>   void connector_debugfs_init(struct amdgpu_dm_connector *connector);
>>   void dtn_debugfs_init(struct amdgpu_device *adev);
>> -#if defined(CONFIG_DRM_AMD_SECURE_DISPLAY)
>>   void crtc_debugfs_init(struct drm_crtc *crtc);
>> -#endif
>>   
>>   #endif
> 



More information about the amd-gfx mailing list