On 2022-04-11 05:51, 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.
> 
> Cc: Harry Wentland <harry.wentl...@amd.com>
> Cc: Rodrigo Siqueira <rodrigo.sique...@amd.com>
> Signed-off-by: Bhanuprakash Modem <bhanuprakash.mo...@intel.com>
> Reported-by: kernel test robot <l...@intel.com>

Reviewed-by: Harry Wentland <harry.wentl...@amd.com>

Harry

> ---
>  .../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

Reply via email to