Hi,

On Sun, Dec 03, 2023 at 02:53:13PM +0300, Dmitry Baryshkov wrote:
> Each of connectors and CRTCs used by the DRM device provides debugfs
> directory, which is used by several standard debugfs files and can
> further be extended by the driver. Add such generic debugfs directories
> for encoder.
> 
> Reviewed-by: Neil Armstrong <neil.armstr...@linaro.org>
> Signed-off-by: Dmitry Baryshkov <dmitry.barysh...@linaro.org>
> ---
>  drivers/gpu/drm/drm_debugfs.c  | 25 +++++++++++++++++++++++++
>  drivers/gpu/drm/drm_encoder.c  |  4 ++++
>  drivers/gpu/drm/drm_internal.h |  9 +++++++++
>  include/drm/drm_encoder.h      | 16 +++++++++++++++-
>  4 files changed, 53 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/drm_debugfs.c b/drivers/gpu/drm/drm_debugfs.c
> index f291fb4b359f..00406b4f3235 100644
> --- a/drivers/gpu/drm/drm_debugfs.c
> +++ b/drivers/gpu/drm/drm_debugfs.c
> @@ -589,4 +589,29 @@ void drm_debugfs_crtc_remove(struct drm_crtc *crtc)
>       crtc->debugfs_entry = NULL;
>  }
>  
> +void drm_debugfs_encoder_add(struct drm_encoder *encoder)
> +{
> +     struct drm_minor *minor = encoder->dev->primary;
> +     struct dentry *root;
> +     char *name;
> +
> +     name = kasprintf(GFP_KERNEL, "encoder-%d", encoder->index);
> +     if (!name)
> +             return;
> +
> +     root = debugfs_create_dir(name, minor->debugfs_root);
> +     kfree(name);
> +
> +     encoder->debugfs_entry = root;
> +
> +     if (encoder->funcs->debugfs_init)
> +             encoder->funcs->debugfs_init(encoder, root);
> +}
> +
> +void drm_debugfs_encoder_remove(struct drm_encoder *encoder)
> +{
> +     debugfs_remove_recursive(encoder->debugfs_entry);
> +     encoder->debugfs_entry = NULL;
> +}
> +
>  #endif /* CONFIG_DEBUG_FS */
> diff --git a/drivers/gpu/drm/drm_encoder.c b/drivers/gpu/drm/drm_encoder.c
> index 1143bc7f3252..8f2bc6a28482 100644
> --- a/drivers/gpu/drm/drm_encoder.c
> +++ b/drivers/gpu/drm/drm_encoder.c
> @@ -30,6 +30,7 @@
>  #include <drm/drm_print.h>
>  
>  #include "drm_crtc_internal.h"
> +#include "drm_internal.h"
>  
>  /**
>   * DOC: overview
> @@ -74,6 +75,8 @@ int drm_encoder_register_all(struct drm_device *dev)
>       int ret = 0;
>  
>       drm_for_each_encoder(encoder, dev) {
> +             drm_debugfs_encoder_add(encoder);
> +
>               if (encoder->funcs && encoder->funcs->late_register)
>                       ret = encoder->funcs->late_register(encoder);
>               if (ret)
> @@ -90,6 +93,7 @@ void drm_encoder_unregister_all(struct drm_device *dev)
>       drm_for_each_encoder(encoder, dev) {
>               if (encoder->funcs && encoder->funcs->early_unregister)
>                       encoder->funcs->early_unregister(encoder);
> +             drm_debugfs_encoder_remove(encoder);
>       }
>  }
>  
> diff --git a/drivers/gpu/drm/drm_internal.h b/drivers/gpu/drm/drm_internal.h
> index b12c463bc460..7df17e4b0513 100644
> --- a/drivers/gpu/drm/drm_internal.h
> +++ b/drivers/gpu/drm/drm_internal.h
> @@ -194,6 +194,8 @@ void drm_debugfs_connector_remove(struct drm_connector 
> *connector);
>  void drm_debugfs_crtc_add(struct drm_crtc *crtc);
>  void drm_debugfs_crtc_remove(struct drm_crtc *crtc);
>  void drm_debugfs_crtc_crc_add(struct drm_crtc *crtc);
> +void drm_debugfs_encoder_add(struct drm_encoder *encoder);
> +void drm_debugfs_encoder_remove(struct drm_encoder *encoder);
>  #else
>  static inline void drm_debugfs_dev_fini(struct drm_device *dev)
>  {
> @@ -231,6 +233,13 @@ static inline void drm_debugfs_crtc_crc_add(struct 
> drm_crtc *crtc)
>  {
>  }
>  
> +static inline void drm_debugfs_encoder_add(struct drm_encoder *encoder)
> +{
> +}

<- You need to insert a new line here.

Once fixed,
Acked-by: Maxime Ripard <mrip...@kernel.org>

Maxime

Attachment: signature.asc
Description: PGP signature

Reply via email to