[Freedreno] [PATCH RESEND v2 1/3] drm/encoder: register per-encoder debugfs dir
Maxime Ripard
mripard at kernel.org
Mon Dec 4 09:00:20 UTC 2023
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.armstrong at linaro.org>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov at 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 <mripard at kernel.org>
Maxime
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/freedreno/attachments/20231204/37415c09/attachment.sig>
More information about the Freedreno
mailing list