From patchwork Tue Jan 31 19:58:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Ma=C3=ADra_Canal?= X-Patchwork-Id: 13123344 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 13A45C38142 for ; Tue, 31 Jan 2023 20:02:05 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 683BD10E385; Tue, 31 Jan 2023 20:02:01 +0000 (UTC) Received: from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56]) by gabe.freedesktop.org (Postfix) with ESMTPS id F03B710E0B4 for ; Tue, 31 Jan 2023 20:01:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com; s=20170329; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-Id: Date:Subject:Cc:To:From:Sender:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=Wz0/qmVw6hOdxRkjd5onX1mjQPbJRu8HvetTxZj5PE8=; b=gpYameofozvnnXjQLY+Ps8P/Zn gv79PFTP3hK1FiFO9mFlWyCQhJyRuEeu+0omf0fYIV0SLjKhts0D3Di3alV78qWbr0WuW5L46mLGh PVxHda93DCxwtTik70vW0+jF3r4jd+nZOlkqa+zYEjDvvCaBQfxMQlYv5JoD3BQOCUAblljwr7slH pnq5JyOqb8wEZYIZJdbKPZUV74PxDaOFExbngzNkvKEFK2828yc+e08tM2MFYk6RAVVLm1b6nk1r1 vnRYwdxvzv2+sXMHz6S6eO9LtC/ut0lM4+JZgHaVySIyT6qMUi4r2CflwRy7BzTEx+omTrPI9q2WC 1f32MMZQ==; Received: from [187.36.234.139] (helo=bowie..) by fanzine2.igalia.com with esmtpsa (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim) id 1pMwoz-005kjr-NL; Tue, 31 Jan 2023 21:01:38 +0100 From: =?utf-8?q?Ma=C3=ADra_Canal?= To: Daniel Vetter , David Airlie , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Liviu Dudau , Brian Starkey , =?utf-8?q?Noralf_Tr=C3=B8nnes?= , Melissa Wen , Rodrigo Siqueira , Jani Nikula Subject: [PATCH v3 0/6] drm/debugfs: Make the debugfs structure more generic Date: Tue, 31 Jan 2023 16:58:20 -0300 Message-Id: <20230131195825.677487-1-mcanal@igalia.com> X-Mailer: git-send-email 2.39.1 MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Ma=C3=ADra_Canal?= , =?utf-8?q?Andr=C3=A9_A?= =?utf-8?q?lmeida?= , dri-devel@lists.freedesktop.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" This series is the first step to introduce a debugfs structure to KMS objects and it is inspired by the feedback provided in [1]. Thanks, Jani and Daniel for all the feedback provided! This first step is making the current API more generic and preparing it to receive the KMS objects in the future. Moreover, this will help to avoid copypasting when expanding the API. Make the debug structure more generic by: - Passing the right pointer to the functions as an explicit parameter. So, the show function signature should be int show(struct seq_file *m, struct drm_device *dev, void *data) Note that with this approach, the show callback doesn't need to use the struct drm_debugfs_entry anymore. - Switch the pointer in struct drm_debugfs_entry to void *, so that, in the future, the struct drm_debugfs_entry can receive different types of DRM objects (struct drm_device, struct drm_connector, struct drm_crtc...). - Switch the show callback pointer to void * and cast it in the show callback wrapper. This way in the future we can create different callback wrappers and cast each one to the proper function signature. - Add a struct wrapper for debugfs_list and debugfs_mutex, and also create helpers to init the list, destroy the list, register the list's files and add files to the list. v1 -> v2: https://lore.kernel.org/dri-devel/20230116102815.95063-1-mcanal@igalia.com/T/ - Use forward declaration instead of the header (Jani Nikula). - Make the struct drm_debugfs_files a pointer in struct drm_device (Jani Nikula). - Change the parameter order of `drm_debugfs_files_add` (Jani Nikula). - s/struct drm_debugfs_list/struct drm_debugfs_files (Jani Nikula). v2 -> v3: https://lore.kernel.org/dri-devel/20230130123008.287141-1-mcanal@igalia.com/T/ - Fix compilation errors for CONFIG_DEBUG_FS=n (kernel test robot). [1] https://lore.kernel.org/dri-devel/20230111173748.752659-1-mcanal@igalia.com/T/ Best Regards, - Maíra Canal Maíra Canal (6): drm/debugfs: Introduce wrapper for debugfs list drm/debugfs: Make drm_device use the struct drm_debugfs_files drm/debugfs: Create wrapper to add files to debugfs list drm/debugfs: Create wrapper to register debugfs drm/debugfs: Make the show callback pass the pointer to the right object drm/debugfs: Make the struct drm_debugfs_entry independent of DRM device drivers/gpu/drm/arm/hdlcd_drv.c | 8 +-- drivers/gpu/drm/drm_atomic.c | 4 +- drivers/gpu/drm/drm_client.c | 5 +- drivers/gpu/drm/drm_debugfs.c | 81 +++++++++++++++++---------- drivers/gpu/drm/drm_drv.c | 7 ++- drivers/gpu/drm/drm_framebuffer.c | 4 +- drivers/gpu/drm/drm_gem_vram_helper.c | 5 +- drivers/gpu/drm/drm_internal.h | 12 ++++ drivers/gpu/drm/gud/gud_drv.c | 5 +- drivers/gpu/drm/v3d/v3d_debugfs.c | 16 ++---- drivers/gpu/drm/vc4/vc4_bo.c | 4 +- drivers/gpu/drm/vc4/vc4_debugfs.c | 6 +- drivers/gpu/drm/vc4/vc4_hdmi.c | 6 +- drivers/gpu/drm/vc4/vc4_hvs.c | 8 +-- drivers/gpu/drm/vc4/vc4_v3d.c | 4 +- drivers/gpu/drm/vkms/vkms_drv.c | 4 +- include/drm/drm_debugfs.h | 34 ++++++++--- include/drm/drm_device.h | 12 +--- 18 files changed, 120 insertions(+), 105 deletions(-)