From patchwork Mon Dec 19 12:06:15 2022 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: 34494 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:e747:0:0:0:0:0 with SMTP id c7csp2349508wrn; Mon, 19 Dec 2022 04:13:56 -0800 (PST) X-Google-Smtp-Source: AA0mqf7j91psHh9LA270j1h/07nP3+7xQ6fxLqm6nCe13W7ZBEwKEe8+5dH9Shxf1NBFsMM354wP X-Received: by 2002:a17:903:31ce:b0:189:aa5c:7f7f with SMTP id v14-20020a17090331ce00b00189aa5c7f7fmr42238724ple.63.1671452035929; Mon, 19 Dec 2022 04:13:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671452035; cv=none; d=google.com; s=arc-20160816; b=vxtdn36ogi+A+L3WNmaE9qCP3R1MWcmiqQeeh6CisYhluKScXpS2RsjLIjR/iHk8D4 ATDKQtsxmEDX9YIWr2G9JEvYR+htt9FlCu4IgPRtq01+znCAHLLGmpTIoQ/2tkoG2NWJ 7xfuBETxasRsNc0jcNV0pdsNU1EA5ywuuIImKJVzpmKNojTomuimsLihRaiudbwu5X16 UCFc7YKKFdyMG8+NcxWJx0Bk/G3pV/IAod0T3ZTSxU3URoB1aFOFWDDh62ss5Tysf/MD /CG9846u0MvVjQrWZP72CjAkQ6nqw1H2s/l+dJFN0c4eM6ZQ97oDNQGldZW2YvF27MvW BUow== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=bFstDtsRBKwzmtzurHZuQdPe1WNwRYcduL2MHudU65Y=; b=zWQA8np0NFRA7O2aUpnw/i/o7ZhS5nmVOKBnB1z7WTHav+3ekEVz6s69N4VzrfyBN3 yCH1u/Zh2PmIGH2qGEfFhbSxaNgBXPO2Y11KiClXWA7UTjVaXUI2KAgzZZdEBF2n55rM +3RaZq5Ovn8wLo6+AJlnqBhv6MGl3whcH1sYrafMct4JXQzPOVn3OcfQvS2mHBEUCqHA 6IYxALboyf30T4xMi6ZUlyOdjMZv7F7EKI82+AjQbB+BFqzOBQAfkpIlVj9bvGCgWDhv I0aZU/jtL/fGbspCMkHZuU7BejQnFbEiTDoUSFasaHk3Y8dzn/ufi0CMerYjFeXEH1yd IhjQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@igalia.com header.s=20170329 header.b=bIwrivd4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id e4-20020a170902e0c400b0018890a7e9c5si9567703pla.509.2022.12.19.04.13.41; Mon, 19 Dec 2022 04:13:55 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@igalia.com header.s=20170329 header.b=bIwrivd4; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231806AbiLSMH4 (ORCPT + 99 others); Mon, 19 Dec 2022 07:07:56 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53950 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231764AbiLSMHE (ORCPT ); Mon, 19 Dec 2022 07:07:04 -0500 Received: from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CCD29BDF for ; Mon, 19 Dec 2022 04:07:01 -0800 (PST) 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:References: In-Reply-To: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:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=bFstDtsRBKwzmtzurHZuQdPe1WNwRYcduL2MHudU65Y=; b=bIwrivd4FOqKi2Xnhou99jaTZs r9SNNBwh0BDJ7fGkugJQz/OF7CcmZLlCVgYegRuy1TdKwgfhDS2xjn3WIHKxKnm6eR3MZ7Rr2DJHP /6ZmGsrn57sOO+3fdbRfggvz3+qq/pqJLP4okPK1a/JColt4y8mS/Mhq5nMZCLRFcEmM7l0LYMCuS VLxsJIFLiq7+pRI+9nq+AAmkSFeL9EEGxjlF4KHDHpmfwCr2r7R4pVRFus2KrH2Ba1cIcYD0Ql/Ds r1zJ5l6H9D2EOEQqtw4UYp+jW8XYG63Iya+F0vYahHaq/1YuM8mxxSXdbBQ6wIfENKiuOfBzxwtrg Kq31kGlw==; Received: from [177.34.169.227] (helo=bowie..) by fanzine2.igalia.com with esmtpsa (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim) id 1p7Euw-006HsS-7g; Mon, 19 Dec 2022 13:06:50 +0100 From: =?utf-8?q?Ma=C3=ADra_Canal?= To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter , Oded Gabbay , Jani Nikula Cc: Melissa Wen , =?utf-8?q?Andr=C3=A9_Almeida?= , Emma Anholt , Rodrigo Siqueira , Wambui Karuga , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, =?utf-8?q?Ma=C3=ADra_Canal?= , Wambui Karuga , Maxime Ripard Subject: [PATCH v4 1/7] drm/debugfs: create device-centered debugfs functions Date: Mon, 19 Dec 2022 09:06:15 -0300 Message-Id: <20221219120621.15086-2-mcanal@igalia.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221219120621.15086-1-mcanal@igalia.com> References: <20221219120621.15086-1-mcanal@igalia.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1752644489838965807?= X-GMAIL-MSGID: =?utf-8?q?1752644489838965807?= Introduce the ability to track requests for the addition of DRM debugfs files at any time and have them added all at once during drm_dev_register(). Drivers can add DRM debugfs files to a device-managed list and, during drm_dev_register(), all added files will be created at once. Now, the drivers can use the functions drm_debugfs_add_file() and drm_debugfs_add_files() to create DRM debugfs files instead of using the drm_debugfs_create_files() function. Co-developed-by: Wambui Karuga Signed-off-by: Wambui Karuga Reviewed-by: Maxime Ripard Signed-off-by: Maíra Canal --- drivers/gpu/drm/drm_debugfs.c | 70 +++++++++++++++++++++++++++++++++++ drivers/gpu/drm/drm_drv.c | 3 ++ include/drm/drm_debugfs.h | 41 ++++++++++++++++++++ include/drm/drm_device.h | 15 ++++++++ 4 files changed, 129 insertions(+) diff --git a/drivers/gpu/drm/drm_debugfs.c b/drivers/gpu/drm/drm_debugfs.c index ee445f4605ba..988fc07b94b4 100644 --- a/drivers/gpu/drm/drm_debugfs.c +++ b/drivers/gpu/drm/drm_debugfs.c @@ -38,6 +38,7 @@ #include #include #include +#include #include "drm_crtc_internal.h" #include "drm_internal.h" @@ -151,6 +152,21 @@ static int drm_debugfs_open(struct inode *inode, struct file *file) return single_open(file, node->info_ent->show, node); } +static int drm_debugfs_entry_open(struct inode *inode, struct file *file) +{ + struct drm_debugfs_entry *entry = inode->i_private; + struct drm_debugfs_info *node = &entry->file; + + return single_open(file, node->show, entry); +} + +static const struct file_operations drm_debugfs_entry_fops = { + .owner = THIS_MODULE, + .open = drm_debugfs_entry_open, + .read = seq_read, + .llseek = seq_lseek, + .release = single_release, +}; static const struct file_operations drm_debugfs_fops = { .owner = THIS_MODULE, @@ -207,6 +223,7 @@ int drm_debugfs_init(struct drm_minor *minor, int minor_id, struct dentry *root) { struct drm_device *dev = minor->dev; + struct drm_debugfs_entry *entry, *tmp; char name[64]; INIT_LIST_HEAD(&minor->debugfs_list); @@ -230,6 +247,12 @@ int drm_debugfs_init(struct drm_minor *minor, int minor_id, if (dev->driver->debugfs_init) dev->driver->debugfs_init(minor); + list_for_each_entry_safe(entry, tmp, &dev->debugfs_list, list) { + debugfs_create_file(entry->file.name, S_IFREG | S_IRUGO, + minor->debugfs_root, entry, &drm_debugfs_entry_fops); + list_del(&entry->list); + } + return 0; } @@ -281,6 +304,53 @@ void drm_debugfs_cleanup(struct drm_minor *minor) minor->debugfs_root = NULL; } +/** + * drm_debugfs_add_file - Add a given file to the DRM device debugfs file list + * @dev: drm device for the ioctl + * @name: debugfs file name + * @show: show callback + * @data: driver-private data, should not be device-specific + * + * Add a given file entry to the DRM device debugfs file list to be created on + * drm_debugfs_init. + */ +void drm_debugfs_add_file(struct drm_device *dev, const char *name, + int (*show)(struct seq_file*, void*), void *data) +{ + struct drm_debugfs_entry *entry = drmm_kzalloc(dev, sizeof(*entry), GFP_KERNEL); + + if (!entry) + return; + + entry->file.name = name; + entry->file.show = show; + entry->file.data = data; + entry->dev = dev; + + mutex_lock(&dev->debugfs_mutex); + list_add(&entry->list, &dev->debugfs_list); + mutex_unlock(&dev->debugfs_mutex); +} +EXPORT_SYMBOL(drm_debugfs_add_file); + +/** + * drm_debugfs_add_files - Add an array of files to the DRM device debugfs file list + * @dev: drm device for the ioctl + * @files: The array of files to create + * @count: The number of files given + * + * Add a given set of debugfs files represented by an array of + * &struct drm_debugfs_info in the DRM device debugfs file list. + */ +void drm_debugfs_add_files(struct drm_device *dev, const struct drm_debugfs_info *files, int count) +{ + int i; + + for (i = 0; i < count; i++) + drm_debugfs_add_file(dev, files[i].name, files[i].show, files[i].data); +} +EXPORT_SYMBOL(drm_debugfs_add_files); + static int connector_show(struct seq_file *m, void *data) { struct drm_connector *connector = m->private; diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c index 203bf8d6c34c..c287488c776f 100644 --- a/drivers/gpu/drm/drm_drv.c +++ b/drivers/gpu/drm/drm_drv.c @@ -575,6 +575,7 @@ static void drm_dev_init_release(struct drm_device *dev, void *res) mutex_destroy(&dev->clientlist_mutex); mutex_destroy(&dev->filelist_mutex); mutex_destroy(&dev->struct_mutex); + mutex_destroy(&dev->debugfs_mutex); drm_legacy_destroy_members(dev); } @@ -608,12 +609,14 @@ static int drm_dev_init(struct drm_device *dev, INIT_LIST_HEAD(&dev->filelist_internal); INIT_LIST_HEAD(&dev->clientlist); INIT_LIST_HEAD(&dev->vblank_event_list); + INIT_LIST_HEAD(&dev->debugfs_list); spin_lock_init(&dev->event_lock); mutex_init(&dev->struct_mutex); mutex_init(&dev->filelist_mutex); mutex_init(&dev->clientlist_mutex); mutex_init(&dev->master_mutex); + mutex_init(&dev->debugfs_mutex); ret = drmm_add_action_or_reset(dev, drm_dev_init_release, NULL); if (ret) diff --git a/include/drm/drm_debugfs.h b/include/drm/drm_debugfs.h index 2188dc83957f..53b7297260a5 100644 --- a/include/drm/drm_debugfs.h +++ b/include/drm/drm_debugfs.h @@ -79,12 +79,43 @@ struct drm_info_node { struct dentry *dent; }; +/** + * struct drm_debugfs_info - debugfs info list entry + * + * This structure represents a debugfs file to be created by the drm + * core. + */ +struct drm_debugfs_info { + const char *name; + int (*show)(struct seq_file*, void*); + u32 driver_features; + void *data; +}; + +/** + * struct drm_debugfs_entry - Per-device debugfs node structure + * + * This structure represents a debugfs file, as an instantiation of a &struct + * drm_debugfs_info on a &struct drm_device. + */ +struct drm_debugfs_entry { + struct drm_device *dev; + struct drm_debugfs_info file; + struct list_head list; +}; + #if defined(CONFIG_DEBUG_FS) void drm_debugfs_create_files(const struct drm_info_list *files, int count, struct dentry *root, struct drm_minor *minor); int drm_debugfs_remove_files(const struct drm_info_list *files, int count, struct drm_minor *minor); + +void drm_debugfs_add_file(struct drm_device *dev, const char *name, + int (*show)(struct seq_file*, void*), void *data); + +void drm_debugfs_add_files(struct drm_device *dev, + const struct drm_debugfs_info *files, int count); #else static inline void drm_debugfs_create_files(const struct drm_info_list *files, int count, struct dentry *root, @@ -96,6 +127,16 @@ static inline int drm_debugfs_remove_files(const struct drm_info_list *files, { return 0; } + +static inline void drm_debugfs_add_file(struct drm_device *dev, const char *name, + int (*show)(struct seq_file*, void*), + void *data) +{} + +static inline void drm_debugfs_add_files(struct drm_device *dev, + const struct drm_debugfs_info *files, + int count) +{} #endif #endif /* _DRM_DEBUGFS_H_ */ diff --git a/include/drm/drm_device.h b/include/drm/drm_device.h index 9923c7a6885e..fa6af1d57929 100644 --- a/include/drm/drm_device.h +++ b/include/drm/drm_device.h @@ -295,6 +295,21 @@ struct drm_device { */ struct drm_fb_helper *fb_helper; + /** + * @debugfs_mutex: + * + * Protects &debugfs_list access. + */ + struct mutex debugfs_mutex; + + /** + * @debugfs_list: + * + * List of debugfs files to be created by the DRM device. The files + * must be added during drm_dev_register(). + */ + struct list_head debugfs_list; + /* Everything below here is for legacy driver, never use! */ /* private: */ #if IS_ENABLED(CONFIG_DRM_LEGACY) From patchwork Mon Dec 19 12:06:16 2022 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: 34493 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:e747:0:0:0:0:0 with SMTP id c7csp2348424wrn; Mon, 19 Dec 2022 04:11:38 -0800 (PST) X-Google-Smtp-Source: AA0mqf6712OicooXcEHnkvHphWsMAq8ir0HVjRPhYAcPxpmUG1IzO5Snn17wUZFVyyc8VkZQpAvJ X-Received: by 2002:a05:6a20:b557:b0:ad:db18:94b9 with SMTP id ev23-20020a056a20b55700b000addb1894b9mr24501462pzb.6.1671451898185; Mon, 19 Dec 2022 04:11:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671451898; cv=none; d=google.com; s=arc-20160816; b=ULBPk4OppX3vzlDFBzDwbeyHspp5t3iJcO1/TbJpt12oudm01W3TnE8O6c8rNcE11q IQkggQ+pjJM5/c/JkQKLQ2gK6KiMR4xCUDUH+YyMHGP76FRTdNKzcZazOXX2YUuKinzj rdK/47D3KASf1G4Dss4fLS1UMdLByG1mSLZBRTCFCGF4wuLwuPifALt62KZipcYYnPgd ityL4h5WDiXhzYOWyRg2US35OHuWlxuxOjn3dJgQ+Y0WaDLjt5rfZ7w6TIo3W3HijVV8 CiCccJH4ruWRV7YLiPwfRhpX7eQd9RSPcrv+FutenBrNPlbYL57xKz6TH0duMFfNqBUJ zJIg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=GbGrYf38XrOD+DX/TFi/+gfE99jvCnKo4Sqqs8+RLv4=; b=riCwWUeCFT25LfXVH4ns35Ho3y0Ms52gSq2CdxmTau9L56azi1RDfCkM7Ic7fPGbkf CHe5jRv9xQDNGiDYf6xXcU4UjZZxxXyxI+EQz8q58AwYGtgRvh/umrdxwS9WgM+VwN4L t3kg9BzPh0JVZWFyuI3iVZDVqiXN/R14k9dDkVO2e+Xu99CKVEs4XtGzjA53IvNeBImq A5/D7U6BS08eA6ZcjpSLSB7oHuZ0Vz/KK/pgeThijUw/fDfqtqaX61cBTrDCtgqmzE6d HyR4siE6vvm7s9A7VpRMi34Y+3x03nyzFknGnNoRv+Z2P/jr5WvfyVjYaPmDEFgX+tLi j8oQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@igalia.com header.s=20170329 header.b=TLpYPUQU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id r4-20020a63a544000000b00478d9009c01si10617860pgu.22.2022.12.19.04.11.24; Mon, 19 Dec 2022 04:11:38 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@igalia.com header.s=20170329 header.b=TLpYPUQU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231234AbiLSMHd (ORCPT + 99 others); Mon, 19 Dec 2022 07:07:33 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53978 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231939AbiLSMHH (ORCPT ); Mon, 19 Dec 2022 07:07:07 -0500 Received: from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7B93F3BF for ; Mon, 19 Dec 2022 04:07:06 -0800 (PST) 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:References: In-Reply-To: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:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=GbGrYf38XrOD+DX/TFi/+gfE99jvCnKo4Sqqs8+RLv4=; b=TLpYPUQUV7Q8mkQAIWWFFrrt3i pTmcNeu6eEzt6O4bMY+BvXpF/RKT5dSKc8hwaDXgbE8RN4qzYJR+4+JinJmWfencw/BdzbCul3Es5 JQgRn15Ae4Gymeiwk3yyxgBN9nu6642cCFHCqi9c7guVQZ6Pr0w3phVA3DhEc4bGVqUf2YmIynnZ/ inQUVssOxFAPVpfFUuvzjgoiuH/ELMumJz0fq+cmMd08nJlh+MfqoHIGs08ghsgGnvBhBfB+006Rv 4AXXzDx7yr6fS25XBnTRWYZoyg2iUBxU46ik24lQ2IWsQ14uHjdxQeAqxaDQMzX/x8SBmvbRiB192 b0UrKgVA==; Received: from [177.34.169.227] (helo=bowie..) by fanzine2.igalia.com with esmtpsa (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim) id 1p7Ev1-006HsS-Vm; Mon, 19 Dec 2022 13:06:56 +0100 From: =?utf-8?q?Ma=C3=ADra_Canal?= To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter , Oded Gabbay , Jani Nikula Cc: Melissa Wen , =?utf-8?q?Andr=C3=A9_Almeida?= , Emma Anholt , Rodrigo Siqueira , Wambui Karuga , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, =?utf-8?q?Ma=C3=ADra_Canal?= , Maxime Ripard Subject: [PATCH v4 2/7] drm: use new debugfs device-centered functions on DRM core files Date: Mon, 19 Dec 2022 09:06:16 -0300 Message-Id: <20221219120621.15086-3-mcanal@igalia.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221219120621.15086-1-mcanal@igalia.com> References: <20221219120621.15086-1-mcanal@igalia.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1752644345256811821?= X-GMAIL-MSGID: =?utf-8?q?1752644345256811821?= Replace the use of drm_debugfs_create_files() with the new drm_debugfs_add_files() function in all DRM core files, centering the debugfs files management on the drm_device instead of drm_minor. Reviewed-by: Maxime Ripard Signed-off-by: Maíra Canal --- drivers/gpu/drm/drm_atomic.c | 11 +++++------ drivers/gpu/drm/drm_client.c | 11 +++++------ drivers/gpu/drm/drm_debugfs.c | 18 ++++++++---------- drivers/gpu/drm/drm_framebuffer.c | 11 +++++------ drivers/gpu/drm/drm_gem_vram_helper.c | 11 +++++------ 5 files changed, 28 insertions(+), 34 deletions(-) diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c index e666799a46d5..5457c02ca1ab 100644 --- a/drivers/gpu/drm/drm_atomic.c +++ b/drivers/gpu/drm/drm_atomic.c @@ -1756,8 +1756,8 @@ EXPORT_SYMBOL(drm_state_dump); #ifdef CONFIG_DEBUG_FS static int drm_state_info(struct seq_file *m, void *data) { - struct drm_info_node *node = (struct drm_info_node *) m->private; - struct drm_device *dev = node->minor->dev; + struct drm_debugfs_entry *entry = m->private; + struct drm_device *dev = entry->dev; struct drm_printer p = drm_seq_file_printer(m); __drm_state_dump(dev, &p, true); @@ -1766,14 +1766,13 @@ static int drm_state_info(struct seq_file *m, void *data) } /* any use in debugfs files to dump individual planes/crtc/etc? */ -static const struct drm_info_list drm_atomic_debugfs_list[] = { +static const struct drm_debugfs_info drm_atomic_debugfs_list[] = { {"state", drm_state_info, 0}, }; void drm_atomic_debugfs_init(struct drm_minor *minor) { - drm_debugfs_create_files(drm_atomic_debugfs_list, - ARRAY_SIZE(drm_atomic_debugfs_list), - minor->debugfs_root, minor); + drm_debugfs_add_files(minor->dev, drm_atomic_debugfs_list, + ARRAY_SIZE(drm_atomic_debugfs_list)); } #endif diff --git a/drivers/gpu/drm/drm_client.c b/drivers/gpu/drm/drm_client.c index fd67efe37c63..262ec64d4397 100644 --- a/drivers/gpu/drm/drm_client.c +++ b/drivers/gpu/drm/drm_client.c @@ -480,8 +480,8 @@ EXPORT_SYMBOL(drm_client_framebuffer_flush); #ifdef CONFIG_DEBUG_FS static int drm_client_debugfs_internal_clients(struct seq_file *m, void *data) { - struct drm_info_node *node = m->private; - struct drm_device *dev = node->minor->dev; + struct drm_debugfs_entry *entry = m->private; + struct drm_device *dev = entry->dev; struct drm_printer p = drm_seq_file_printer(m); struct drm_client_dev *client; @@ -493,14 +493,13 @@ static int drm_client_debugfs_internal_clients(struct seq_file *m, void *data) return 0; } -static const struct drm_info_list drm_client_debugfs_list[] = { +static const struct drm_debugfs_info drm_client_debugfs_list[] = { { "internal_clients", drm_client_debugfs_internal_clients, 0 }, }; void drm_client_debugfs_init(struct drm_minor *minor) { - drm_debugfs_create_files(drm_client_debugfs_list, - ARRAY_SIZE(drm_client_debugfs_list), - minor->debugfs_root, minor); + drm_debugfs_add_files(minor->dev, drm_client_debugfs_list, + ARRAY_SIZE(drm_client_debugfs_list)); } #endif diff --git a/drivers/gpu/drm/drm_debugfs.c b/drivers/gpu/drm/drm_debugfs.c index 988fc07b94b4..d9d3ed7acc80 100644 --- a/drivers/gpu/drm/drm_debugfs.c +++ b/drivers/gpu/drm/drm_debugfs.c @@ -51,9 +51,8 @@ static int drm_name_info(struct seq_file *m, void *data) { - struct drm_info_node *node = (struct drm_info_node *) m->private; - struct drm_minor *minor = node->minor; - struct drm_device *dev = minor->dev; + struct drm_debugfs_entry *entry = m->private; + struct drm_device *dev = entry->dev; struct drm_master *master; mutex_lock(&dev->master_mutex); @@ -73,8 +72,8 @@ static int drm_name_info(struct seq_file *m, void *data) static int drm_clients_info(struct seq_file *m, void *data) { - struct drm_info_node *node = (struct drm_info_node *) m->private; - struct drm_device *dev = node->minor->dev; + struct drm_debugfs_entry *entry = m->private; + struct drm_device *dev = entry->dev; struct drm_file *priv; kuid_t uid; @@ -125,8 +124,8 @@ static int drm_gem_one_name_info(int id, void *ptr, void *data) static int drm_gem_name_info(struct seq_file *m, void *data) { - struct drm_info_node *node = (struct drm_info_node *) m->private; - struct drm_device *dev = node->minor->dev; + struct drm_debugfs_entry *entry = m->private; + struct drm_device *dev = entry->dev; seq_printf(m, " name size handles refcount\n"); @@ -137,7 +136,7 @@ static int drm_gem_name_info(struct seq_file *m, void *data) return 0; } -static const struct drm_info_list drm_debugfs_list[] = { +static const struct drm_debugfs_info drm_debugfs_list[] = { {"name", drm_name_info, 0}, {"clients", drm_clients_info, 0}, {"gem_names", drm_gem_name_info, DRIVER_GEM}, @@ -231,8 +230,7 @@ int drm_debugfs_init(struct drm_minor *minor, int minor_id, sprintf(name, "%d", minor_id); minor->debugfs_root = debugfs_create_dir(name, root); - drm_debugfs_create_files(drm_debugfs_list, DRM_DEBUGFS_ENTRIES, - minor->debugfs_root, minor); + drm_debugfs_add_files(minor->dev, drm_debugfs_list, DRM_DEBUGFS_ENTRIES); if (drm_drv_uses_atomic_modeset(dev)) { drm_atomic_debugfs_init(minor); diff --git a/drivers/gpu/drm/drm_framebuffer.c b/drivers/gpu/drm/drm_framebuffer.c index 2dd97473ca10..aff3746dedfb 100644 --- a/drivers/gpu/drm/drm_framebuffer.c +++ b/drivers/gpu/drm/drm_framebuffer.c @@ -1203,8 +1203,8 @@ void drm_framebuffer_print_info(struct drm_printer *p, unsigned int indent, #ifdef CONFIG_DEBUG_FS static int drm_framebuffer_info(struct seq_file *m, void *data) { - struct drm_info_node *node = m->private; - struct drm_device *dev = node->minor->dev; + struct drm_debugfs_entry *entry = m->private; + struct drm_device *dev = entry->dev; struct drm_printer p = drm_seq_file_printer(m); struct drm_framebuffer *fb; @@ -1218,14 +1218,13 @@ static int drm_framebuffer_info(struct seq_file *m, void *data) return 0; } -static const struct drm_info_list drm_framebuffer_debugfs_list[] = { +static const struct drm_debugfs_info drm_framebuffer_debugfs_list[] = { { "framebuffer", drm_framebuffer_info, 0 }, }; void drm_framebuffer_debugfs_init(struct drm_minor *minor) { - drm_debugfs_create_files(drm_framebuffer_debugfs_list, - ARRAY_SIZE(drm_framebuffer_debugfs_list), - minor->debugfs_root, minor); + drm_debugfs_add_files(minor->dev, drm_framebuffer_debugfs_list, + ARRAY_SIZE(drm_framebuffer_debugfs_list)); } #endif diff --git a/drivers/gpu/drm/drm_gem_vram_helper.c b/drivers/gpu/drm/drm_gem_vram_helper.c index f59adffd938a..d40b3edb52d0 100644 --- a/drivers/gpu/drm/drm_gem_vram_helper.c +++ b/drivers/gpu/drm/drm_gem_vram_helper.c @@ -957,8 +957,8 @@ static struct ttm_device_funcs bo_driver = { static int drm_vram_mm_debugfs(struct seq_file *m, void *data) { - struct drm_info_node *node = (struct drm_info_node *) m->private; - struct drm_vram_mm *vmm = node->minor->dev->vram_mm; + struct drm_debugfs_entry *entry = m->private; + struct drm_vram_mm *vmm = entry->dev->vram_mm; struct ttm_resource_manager *man = ttm_manager_type(&vmm->bdev, TTM_PL_VRAM); struct drm_printer p = drm_seq_file_printer(m); @@ -966,7 +966,7 @@ static int drm_vram_mm_debugfs(struct seq_file *m, void *data) return 0; } -static const struct drm_info_list drm_vram_mm_debugfs_list[] = { +static const struct drm_debugfs_info drm_vram_mm_debugfs_list[] = { { "vram-mm", drm_vram_mm_debugfs, 0, NULL }, }; @@ -978,9 +978,8 @@ static const struct drm_info_list drm_vram_mm_debugfs_list[] = { */ void drm_vram_mm_debugfs_init(struct drm_minor *minor) { - drm_debugfs_create_files(drm_vram_mm_debugfs_list, - ARRAY_SIZE(drm_vram_mm_debugfs_list), - minor->debugfs_root, minor); + drm_debugfs_add_files(minor->dev, drm_vram_mm_debugfs_list, + ARRAY_SIZE(drm_vram_mm_debugfs_list)); } EXPORT_SYMBOL(drm_vram_mm_debugfs_init); From patchwork Mon Dec 19 12:06:17 2022 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: 34492 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:e747:0:0:0:0:0 with SMTP id c7csp2348185wrn; Mon, 19 Dec 2022 04:11:05 -0800 (PST) X-Google-Smtp-Source: AMrXdXujip7Zx4C++ksZUI/V4seqIGx5ERYdubP/psLUzj2UeNoQvLJfypbYbMJszYKQxSPDjIN+ X-Received: by 2002:a05:6a21:168c:b0:a4:2a7d:59a5 with SMTP id np12-20020a056a21168c00b000a42a7d59a5mr10582287pzb.59.1671451864856; Mon, 19 Dec 2022 04:11:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671451864; cv=none; d=google.com; s=arc-20160816; b=mmVh4/bBt3mq7dxeoM3SzhHg6kBo+uAJGy9AoM7zyUsyYQ7NrrGPDN+BAwo967Rp2o YglsEEktjOxEktKLIF3jQp5pJDPvfrHQtsGfBh6Lgyk8e7CaGSd7HFSoGDWycQ+GYWE3 LqHGoLsNne8eMg9h2XF/3v2AzjRoLitGywllIwBs9XDRHfzTwpw0iD/OMQHuFJa4BtjT Gei848VcdY6/Si5TvucbAQbXpcpBwabsWu57pEemoSdddaGl/01q4O20NWbuGfsjPDvG o1ROU1NUWOu7JZruXDc45bFt0Unm8ag44fv7mOhN+93UM0740BELdBu92Xog2Ub/6viB wg3Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Iz92n6UJln7DTuF5t0ffnSc+TWSEKoE8Rvy+u+5H0c4=; b=UP2ahwuZJ/AmDKc+TZllQS+FnDYcxltO+IKms6l8QdmmpNeQaRHG0htOPNuGUTUx9H /DXPU++9qzfCpdZ5Wo7C7asIbdBKUuT+8oUyNraSStPsxolhiD1Dg2SURuwrQNOBjxVS T6ObV/og5rqliPebKyQmnsEUK9lhjtcROFVnyROarGiditRsknekGaAYq1Zu7Ayi1Rar lk5btM8Adk5/tTMbOp2blZOTbyuy30S9m5tKiuWpUkJi7ccEAvIIm5NcfV9LVrKH7a4w 1qar0jFCDvFfIZDjpN5XLbs1aiXpwffriKJOO47rZBPDtkWlVdRzcw5PfMTp+XF5luem ipvw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@igalia.com header.s=20170329 header.b=OH6UPsMY; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id e14-20020a63d94e000000b00477cfa54894si10146113pgj.300.2022.12.19.04.10.51; Mon, 19 Dec 2022 04:11:04 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@igalia.com header.s=20170329 header.b=OH6UPsMY; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231749AbiLSMHq (ORCPT + 99 others); Mon, 19 Dec 2022 07:07:46 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55204 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232007AbiLSMHM (ORCPT ); Mon, 19 Dec 2022 07:07:12 -0500 Received: from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B0DA6238 for ; Mon, 19 Dec 2022 04:07:11 -0800 (PST) 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:References: In-Reply-To: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:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=Iz92n6UJln7DTuF5t0ffnSc+TWSEKoE8Rvy+u+5H0c4=; b=OH6UPsMYNOIDhEaiWzDI1AbREv ALmhAlInAJt2irax9H141erCuM/vEVh25GU7MCoXW/hgPTgQBR4q2xw5aaxzz6sb0s5CYYl6JqUJ8 dztu4Wa08IShoZ1HEfNVCUlpahyTNhkg15s1jlOL1LDqRHvGHRTWF9SU3uQn+YlY/1B5uPok8w267 CSGWIH7RS2HRZnIRIBqkzj/M+MNHTu8LGOPQqBqTyEARsxEAK6IAI8DSfhcjje/4EdNu/18tZo0vs xQjbywVYq2LBTnnsI8Ddu9BVzYP0ggJ2UHeJ88FuhL1lKdyua98UN/aFW55yXT9m85z5sPTiFYoDK i5mtX8TQ==; Received: from [177.34.169.227] (helo=bowie..) by fanzine2.igalia.com with esmtpsa (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim) id 1p7Ev7-006HsS-K6; Mon, 19 Dec 2022 13:07:02 +0100 From: =?utf-8?q?Ma=C3=ADra_Canal?= To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter , Oded Gabbay , Jani Nikula Cc: Melissa Wen , =?utf-8?q?Andr=C3=A9_Almeida?= , Emma Anholt , Rodrigo Siqueira , Wambui Karuga , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, =?utf-8?q?Ma=C3=ADra_Canal?= Subject: [PATCH v4 3/7] drm/debugfs: create debugfs late register functions Date: Mon, 19 Dec 2022 09:06:17 -0300 Message-Id: <20221219120621.15086-4-mcanal@igalia.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221219120621.15086-1-mcanal@igalia.com> References: <20221219120621.15086-1-mcanal@igalia.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1752644310712844967?= X-GMAIL-MSGID: =?utf-8?q?1752644310712844967?= Although the device-centered debugfs functions can track requests for the addition of DRM debugfs files at any time and have them added all at once during drm_dev_register(), they are not able to create debugfs files for modeset components, as they are registered after the primary and the render drm_minor are registered. So, create a drm_debugfs_late_register() function, which is responsible for dealing with the creation of all the debugfs files for modeset components at once. Therefore, the functions drm_debugfs_add_file() and drm_debugfs_add_files() can be used in late_register hooks. Signed-off-by: Maíra Canal --- drivers/gpu/drm/drm_debugfs.c | 14 ++++++++++++++ drivers/gpu/drm/drm_internal.h | 5 +++++ drivers/gpu/drm/drm_mode_config.c | 2 ++ 3 files changed, 21 insertions(+) diff --git a/drivers/gpu/drm/drm_debugfs.c b/drivers/gpu/drm/drm_debugfs.c index d9d3ed7acc80..51e3772e2e2b 100644 --- a/drivers/gpu/drm/drm_debugfs.c +++ b/drivers/gpu/drm/drm_debugfs.c @@ -254,6 +254,20 @@ int drm_debugfs_init(struct drm_minor *minor, int minor_id, return 0; } +void drm_debugfs_late_register(struct drm_device *dev) +{ + struct drm_minor *minor = dev->primary; + struct drm_debugfs_entry *entry, *tmp; + + if (minor == NULL) + return; + + list_for_each_entry_safe(entry, tmp, &dev->debugfs_list, list) { + debugfs_create_file(entry->file.name, S_IFREG | S_IRUGO, + minor->debugfs_root, entry, &drm_debugfs_entry_fops); + list_del(&entry->list); + } +} int drm_debugfs_remove_files(const struct drm_info_list *files, int count, struct drm_minor *minor) diff --git a/drivers/gpu/drm/drm_internal.h b/drivers/gpu/drm/drm_internal.h index 5ea5e260118c..ed2103ee272c 100644 --- a/drivers/gpu/drm/drm_internal.h +++ b/drivers/gpu/drm/drm_internal.h @@ -186,6 +186,7 @@ int drm_gem_dumb_destroy(struct drm_file *file, struct drm_device *dev, int drm_debugfs_init(struct drm_minor *minor, int minor_id, struct dentry *root); void drm_debugfs_cleanup(struct drm_minor *minor); +void drm_debugfs_late_register(struct drm_device *dev); void drm_debugfs_connector_add(struct drm_connector *connector); void drm_debugfs_connector_remove(struct drm_connector *connector); void drm_debugfs_crtc_add(struct drm_crtc *crtc); @@ -202,6 +203,10 @@ static inline void drm_debugfs_cleanup(struct drm_minor *minor) { } +static inline void drm_debugfs_late_register(struct drm_device *dev) +{ +} + static inline void drm_debugfs_connector_add(struct drm_connector *connector) { } diff --git a/drivers/gpu/drm/drm_mode_config.c b/drivers/gpu/drm/drm_mode_config.c index 8525ef851540..87eb591fe9b5 100644 --- a/drivers/gpu/drm/drm_mode_config.c +++ b/drivers/gpu/drm/drm_mode_config.c @@ -54,6 +54,8 @@ int drm_modeset_register_all(struct drm_device *dev) if (ret) goto err_connector; + drm_debugfs_late_register(dev); + return 0; err_connector: From patchwork Mon Dec 19 12:06:18 2022 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: 34495 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:e747:0:0:0:0:0 with SMTP id c7csp2350389wrn; Mon, 19 Dec 2022 04:15:46 -0800 (PST) X-Google-Smtp-Source: AMrXdXs7JLzeI9k6zpsU9WVYSkWURZXbUDc37eCpesltZr5p1tVz6MBg2Cj7/C6CDegXgmRm4fOJ X-Received: by 2002:a05:6a20:d385:b0:af:8ff3:fc7b with SMTP id iq5-20020a056a20d38500b000af8ff3fc7bmr24534133pzb.25.1671452145776; Mon, 19 Dec 2022 04:15:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671452145; cv=none; d=google.com; s=arc-20160816; b=OFhU93K5GhbV5fl7ylRlWbkYeXnHjGpJ44zmak6hoQYZlEqNToT/Eg+adOYI4ZgFc1 r6anBFtzwJnABaOefA/ExUfiY61q1V5AyHGQt1xObZRXEZC7USJWkXlLUVm8W8SNXY5V /RKSDLa/nuSjvxti3hWYtwz7GjOAszqCCRtm7CTbIGg8p+W8zGwlqImfQDDwhY8D2/KT oNMiaiG78D9l0znI+368itCNA6aTDZ0RyadzQFfPCZiSfKJMFNE5eCorQPStYYBqC1TT DCAf4lUTkFQIeFhAdi8bBxAmqgOCk7IdtFgoyAOicNk1SDdAUOl3RbqpfaTr8Dow+oo2 QdQw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=PLXz+qy+cWluMALi8dB4e4IiR1ElTBm+/4xDcUNaucQ=; b=SfonHtydYxa2tT3nPjOabDcIU2GpVv4JJL9n1JlANEy8E7ANaBD7Y2e0DaoHZ7qMOb 7fVbVz+TSDwRwhuRTP9G81HQe++TvRwjGjUtzeV/HTXo5wGFErwkII5LuSjKLpUWk8Ge iG0PqGsVBfg46yIK7T8+UajnNOMfPHwsEO3T5C2iCKC1Suanvc/Kul6OMrxfj7/qxuou UGakFUIMnHLkbCRXF5X/8+Q2yylyJGHccxXeRfXZq5Dp7nFnGNPo0CEBlapXogpBHE/s zvzKZ0BIDXEcC27wCEzvlUhCzVYntzwQ8niuX6I9tZmDuGOpuOeUU75q7eF3WLevTEvd nsPg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@igalia.com header.s=20170329 header.b=dJFnVKFy; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id u24-20020a632358000000b004705618bd69si10658290pgm.343.2022.12.19.04.15.32; Mon, 19 Dec 2022 04:15:45 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@igalia.com header.s=20170329 header.b=dJFnVKFy; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231833AbiLSMIH (ORCPT + 99 others); Mon, 19 Dec 2022 07:08:07 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55214 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231297AbiLSMHS (ORCPT ); Mon, 19 Dec 2022 07:07:18 -0500 Received: from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3AF70238 for ; Mon, 19 Dec 2022 04:07:16 -0800 (PST) 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:References: In-Reply-To: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:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=PLXz+qy+cWluMALi8dB4e4IiR1ElTBm+/4xDcUNaucQ=; b=dJFnVKFyYz1Wn05X/1qO41AxYV Wcq/Z0MS7qqVauG527dEh/dgMO75SGLGZEJHxDc3SFuE62l3Rsw3fM4LHNf7UjpXbh8iJfhWmBHZj Fs7iePTcGlBY9vYrtH6O6gK2sk4SToHMmfs/o8kC6TNqeJpFRJ8OTPWcTfXzeAdkUgDjBkeAww6hs v9VZUkr79WfkqhY036u6ZHDvviURZiArgp3xxFuVq2G9DqmoYDUCPub468ii01O6FFwtYZwiBwXYi OaGb6YfwpbvEY3KMShCQ9IbcI2pCLSyh9Z9rczPCWgh12KhegRWuRS4mPEAzDy0ZifIUO8Hmm0ea8 zvaLbb5A==; Received: from [177.34.169.227] (helo=bowie..) by fanzine2.igalia.com with esmtpsa (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim) id 1p7EvD-006HsS-Hv; Mon, 19 Dec 2022 13:07:08 +0100 From: =?utf-8?q?Ma=C3=ADra_Canal?= To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter , Oded Gabbay , Jani Nikula Cc: Melissa Wen , =?utf-8?q?Andr=C3=A9_Almeida?= , Emma Anholt , Rodrigo Siqueira , Wambui Karuga , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, =?utf-8?q?Ma=C3=ADra_Canal?= , Maxime Ripard Subject: [PATCH v4 4/7] drm/vc4: use new debugfs device-centered functions Date: Mon, 19 Dec 2022 09:06:18 -0300 Message-Id: <20221219120621.15086-5-mcanal@igalia.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221219120621.15086-1-mcanal@igalia.com> References: <20221219120621.15086-1-mcanal@igalia.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1752644605554308426?= X-GMAIL-MSGID: =?utf-8?q?1752644605554308426?= Currently, vc4 has its own debugfs infrastructure that adds the debugfs files on drm_dev_register(). With the introduction of the new debugfs, functions, replace the vc4 debugfs structure with the DRM debugfs device-centered function, drm_debugfs_add_file(). Moreover, remove the explicit error handling of debugfs related functions, considering that the only failure mode is -ENOMEM and also that error handling is not recommended for debugfs functions, as pointed out in [1]. [1] https://lore.kernel.org/all/YWAmZdRwnAt6wh9B@kroah.com/ Reviewed-by: Maxime Ripard Signed-off-by: Maíra Canal --- drivers/gpu/drm/vc4/vc4_bo.c | 10 +++------ drivers/gpu/drm/vc4/vc4_crtc.c | 7 ++---- drivers/gpu/drm/vc4/vc4_debugfs.c | 36 ++++++------------------------- drivers/gpu/drm/vc4/vc4_dpi.c | 5 +---- drivers/gpu/drm/vc4/vc4_drv.c | 1 - drivers/gpu/drm/vc4/vc4_drv.h | 32 ++++++--------------------- drivers/gpu/drm/vc4/vc4_dsi.c | 6 +----- drivers/gpu/drm/vc4/vc4_hdmi.c | 12 ++++------- drivers/gpu/drm/vc4/vc4_hvs.c | 24 ++++++--------------- drivers/gpu/drm/vc4/vc4_v3d.c | 14 ++++-------- drivers/gpu/drm/vc4/vc4_vec.c | 6 +----- 11 files changed, 37 insertions(+), 116 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_bo.c b/drivers/gpu/drm/vc4/vc4_bo.c index 43d9b3a6a352..c2b7573bd92b 100644 --- a/drivers/gpu/drm/vc4/vc4_bo.c +++ b/drivers/gpu/drm/vc4/vc4_bo.c @@ -69,8 +69,8 @@ static void vc4_bo_stats_print(struct drm_printer *p, struct vc4_dev *vc4) static int vc4_bo_stats_debugfs(struct seq_file *m, void *unused) { - struct drm_info_node *node = (struct drm_info_node *)m->private; - struct drm_device *dev = node->minor->dev; + struct drm_debugfs_entry *entry = m->private; + struct drm_device *dev = entry->dev; struct vc4_dev *vc4 = to_vc4_dev(dev); struct drm_printer p = drm_seq_file_printer(m); @@ -993,15 +993,11 @@ int vc4_bo_debugfs_init(struct drm_minor *minor) { struct drm_device *drm = minor->dev; struct vc4_dev *vc4 = to_vc4_dev(drm); - int ret; if (!vc4->v3d) return -ENODEV; - ret = vc4_debugfs_add_file(minor, "bo_stats", - vc4_bo_stats_debugfs, NULL); - if (ret) - return ret; + drm_debugfs_add_file(drm, "bo_stats", vc4_bo_stats_debugfs, NULL); return 0; } diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c index a1a3465948c4..35a6b5907278 100644 --- a/drivers/gpu/drm/vc4/vc4_crtc.c +++ b/drivers/gpu/drm/vc4/vc4_crtc.c @@ -1090,12 +1090,9 @@ int vc4_crtc_late_register(struct drm_crtc *crtc) struct drm_device *drm = crtc->dev; struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); const struct vc4_crtc_data *crtc_data = vc4_crtc_to_vc4_crtc_data(vc4_crtc); - int ret; - ret = vc4_debugfs_add_regset32(drm->primary, crtc_data->debugfs_name, - &vc4_crtc->regset); - if (ret) - return ret; + vc4_debugfs_add_regset32(drm, crtc_data->debugfs_name, + &vc4_crtc->regset); return 0; } diff --git a/drivers/gpu/drm/vc4/vc4_debugfs.c b/drivers/gpu/drm/vc4/vc4_debugfs.c index 19cda4f91a82..fac624a663ea 100644 --- a/drivers/gpu/drm/vc4/vc4_debugfs.c +++ b/drivers/gpu/drm/vc4/vc4_debugfs.c @@ -34,9 +34,9 @@ vc4_debugfs_init(struct drm_minor *minor) static int vc4_debugfs_regset32(struct seq_file *m, void *unused) { - struct drm_info_node *node = (struct drm_info_node *)m->private; - struct drm_device *drm = node->minor->dev; - struct debugfs_regset32 *regset = node->info_ent->data; + struct drm_debugfs_entry *entry = m->private; + struct drm_device *drm = entry->dev; + struct debugfs_regset32 *regset = entry->file.data; struct drm_printer p = drm_seq_file_printer(m); int idx; @@ -50,31 +50,9 @@ static int vc4_debugfs_regset32(struct seq_file *m, void *unused) return 0; } -int vc4_debugfs_add_file(struct drm_minor *minor, - const char *name, - int (*show)(struct seq_file*, void*), - void *data) +void vc4_debugfs_add_regset32(struct drm_device *drm, + const char *name, + struct debugfs_regset32 *regset) { - struct drm_device *dev = minor->dev; - struct dentry *root = minor->debugfs_root; - struct drm_info_list *file; - - file = drmm_kzalloc(dev, sizeof(*file), GFP_KERNEL); - if (!file) - return -ENOMEM; - - file->name = name; - file->show = show; - file->data = data; - - drm_debugfs_create_files(file, 1, root, minor); - - return 0; -} - -int vc4_debugfs_add_regset32(struct drm_minor *minor, - const char *name, - struct debugfs_regset32 *regset) -{ - return vc4_debugfs_add_file(minor, name, vc4_debugfs_regset32, regset); + drm_debugfs_add_file(drm, name, vc4_debugfs_regset32, regset); } diff --git a/drivers/gpu/drm/vc4/vc4_dpi.c b/drivers/gpu/drm/vc4/vc4_dpi.c index d31a02af1e53..f518d6e59ed6 100644 --- a/drivers/gpu/drm/vc4/vc4_dpi.c +++ b/drivers/gpu/drm/vc4/vc4_dpi.c @@ -267,11 +267,8 @@ static int vc4_dpi_late_register(struct drm_encoder *encoder) { struct drm_device *drm = encoder->dev; struct vc4_dpi *dpi = to_vc4_dpi(encoder); - int ret; - ret = vc4_debugfs_add_regset32(drm->primary, "dpi_regs", &dpi->regset); - if (ret) - return ret; + vc4_debugfs_add_regset32(drm, "dpi_regs", &dpi->regset); return 0; } diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c index 3b0ae2c3e33c..0ccaee57fe9a 100644 --- a/drivers/gpu/drm/vc4/vc4_drv.c +++ b/drivers/gpu/drm/vc4/vc4_drv.c @@ -320,7 +320,6 @@ static int vc4_drm_bind(struct device *dev) drm = &vc4->base; platform_set_drvdata(pdev, drm); - INIT_LIST_HEAD(&vc4->debugfs_list); if (!is_vc5) { ret = drmm_mutex_init(drm, &vc4->bin_bo_lock); diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h index 78fda5332cb3..95069bb16821 100644 --- a/drivers/gpu/drm/vc4/vc4_drv.h +++ b/drivers/gpu/drm/vc4/vc4_drv.h @@ -226,11 +226,6 @@ struct vc4_dev { struct drm_private_obj hvs_channels; struct drm_private_obj load_tracker; - /* List of vc4_debugfs_info_entry for adding to debugfs once - * the minor is available (after drm_dev_register()). - */ - struct list_head debugfs_list; - /* Mutex for binner bo allocation. */ struct mutex bin_bo_lock; /* Reference count for our binner bo. */ @@ -971,28 +966,15 @@ void vc4_crtc_get_margins(struct drm_crtc_state *state, /* vc4_debugfs.c */ void vc4_debugfs_init(struct drm_minor *minor); #ifdef CONFIG_DEBUG_FS -int vc4_debugfs_add_file(struct drm_minor *minor, - const char *filename, - int (*show)(struct seq_file*, void*), - void *data); -int vc4_debugfs_add_regset32(struct drm_minor *minor, - const char *filename, - struct debugfs_regset32 *regset); +void vc4_debugfs_add_regset32(struct drm_device *drm, + const char *filename, + struct debugfs_regset32 *regset); #else -static inline int vc4_debugfs_add_file(struct drm_minor *minor, - const char *filename, - int (*show)(struct seq_file*, void*), - void *data) -{ - return 0; -} -static inline int vc4_debugfs_add_regset32(struct drm_minor *minor, - const char *filename, - struct debugfs_regset32 *regset) -{ - return 0; -} +static inline void vc4_debugfs_add_regset32(struct drm_device *drm, + const char *filename, + struct debugfs_regset32 *regset) +{} #endif /* vc4_drv.c */ diff --git a/drivers/gpu/drm/vc4/vc4_dsi.c b/drivers/gpu/drm/vc4/vc4_dsi.c index 0ee9ada428ab..e05be9a34156 100644 --- a/drivers/gpu/drm/vc4/vc4_dsi.c +++ b/drivers/gpu/drm/vc4/vc4_dsi.c @@ -1427,12 +1427,8 @@ static int vc4_dsi_late_register(struct drm_encoder *encoder) { struct drm_device *drm = encoder->dev; struct vc4_dsi *dsi = to_vc4_dsi(encoder); - int ret; - ret = vc4_debugfs_add_regset32(drm->primary, dsi->variant->debugfs_name, - &dsi->regset); - if (ret) - return ret; + vc4_debugfs_add_regset32(drm, dsi->variant->debugfs_name, &dsi->regset); return 0; } diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c index 12a00d644b61..0d3313c71f2f 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c @@ -160,8 +160,8 @@ static bool vc4_hdmi_is_full_range_rgb(struct vc4_hdmi *vc4_hdmi, static int vc4_hdmi_debugfs_regs(struct seq_file *m, void *unused) { - struct drm_info_node *node = (struct drm_info_node *)m->private; - struct vc4_hdmi *vc4_hdmi = node->info_ent->data; + struct drm_debugfs_entry *entry = m->private; + struct vc4_hdmi *vc4_hdmi = entry->file.data; struct drm_device *drm = vc4_hdmi->connector.dev; struct drm_printer p = drm_seq_file_printer(m); int idx; @@ -1995,13 +1995,9 @@ static int vc4_hdmi_late_register(struct drm_encoder *encoder) struct drm_device *drm = encoder->dev; struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); const struct vc4_hdmi_variant *variant = vc4_hdmi->variant; - int ret; - ret = vc4_debugfs_add_file(drm->primary, variant->debugfs_name, - vc4_hdmi_debugfs_regs, - vc4_hdmi); - if (ret) - return ret; + drm_debugfs_add_file(drm, variant->debugfs_name, + vc4_hdmi_debugfs_regs, vc4_hdmi); return 0; } diff --git a/drivers/gpu/drm/vc4/vc4_hvs.c b/drivers/gpu/drm/vc4/vc4_hvs.c index 94c29f8547bb..024a2cdff5b2 100644 --- a/drivers/gpu/drm/vc4/vc4_hvs.c +++ b/drivers/gpu/drm/vc4/vc4_hvs.c @@ -93,8 +93,8 @@ void vc4_hvs_dump_state(struct vc4_hvs *hvs) static int vc4_hvs_debugfs_underrun(struct seq_file *m, void *data) { - struct drm_info_node *node = m->private; - struct drm_device *dev = node->minor->dev; + struct drm_debugfs_entry *entry = m->private; + struct drm_device *dev = entry->dev; struct vc4_dev *vc4 = to_vc4_dev(dev); struct drm_printer p = drm_seq_file_printer(m); @@ -105,8 +105,8 @@ static int vc4_hvs_debugfs_underrun(struct seq_file *m, void *data) static int vc4_hvs_debugfs_dlist(struct seq_file *m, void *data) { - struct drm_info_node *node = m->private; - struct drm_device *dev = node->minor->dev; + struct drm_debugfs_entry *entry = m->private; + struct drm_device *dev = entry->dev; struct vc4_dev *vc4 = to_vc4_dev(dev); struct vc4_hvs *hvs = vc4->hvs; struct drm_printer p = drm_seq_file_printer(m); @@ -740,7 +740,6 @@ int vc4_hvs_debugfs_init(struct drm_minor *minor) struct drm_device *drm = minor->dev; struct vc4_dev *vc4 = to_vc4_dev(drm); struct vc4_hvs *hvs = vc4->hvs; - int ret; if (!vc4->hvs) return -ENODEV; @@ -750,20 +749,11 @@ int vc4_hvs_debugfs_init(struct drm_minor *minor) minor->debugfs_root, &vc4->load_tracker_enabled); - ret = vc4_debugfs_add_file(minor, "hvs_dlists", - vc4_hvs_debugfs_dlist, NULL); - if (ret) - return ret; + drm_debugfs_add_file(drm, "hvs_dlists", vc4_hvs_debugfs_dlist, NULL); - ret = vc4_debugfs_add_file(minor, "hvs_underrun", - vc4_hvs_debugfs_underrun, NULL); - if (ret) - return ret; + drm_debugfs_add_file(drm, "hvs_underrun", vc4_hvs_debugfs_underrun, NULL); - ret = vc4_debugfs_add_regset32(minor, "hvs_regs", - &hvs->regset); - if (ret) - return ret; + vc4_debugfs_add_regset32(drm, "hvs_regs", &hvs->regset); return 0; } diff --git a/drivers/gpu/drm/vc4/vc4_v3d.c b/drivers/gpu/drm/vc4/vc4_v3d.c index 56abb0d6bc39..29a664c8bf44 100644 --- a/drivers/gpu/drm/vc4/vc4_v3d.c +++ b/drivers/gpu/drm/vc4/vc4_v3d.c @@ -96,8 +96,8 @@ static const struct debugfs_reg32 v3d_regs[] = { static int vc4_v3d_debugfs_ident(struct seq_file *m, void *unused) { - struct drm_info_node *node = (struct drm_info_node *)m->private; - struct drm_device *dev = node->minor->dev; + struct drm_debugfs_entry *entry = m->private; + struct drm_device *dev = entry->dev; struct vc4_dev *vc4 = to_vc4_dev(dev); int ret = vc4_v3d_pm_get(vc4); @@ -404,19 +404,13 @@ int vc4_v3d_debugfs_init(struct drm_minor *minor) struct drm_device *drm = minor->dev; struct vc4_dev *vc4 = to_vc4_dev(drm); struct vc4_v3d *v3d = vc4->v3d; - int ret; if (!vc4->v3d) return -ENODEV; - ret = vc4_debugfs_add_file(minor, "v3d_ident", - vc4_v3d_debugfs_ident, NULL); - if (ret) - return ret; + drm_debugfs_add_file(drm, "v3d_ident", vc4_v3d_debugfs_ident, NULL); - ret = vc4_debugfs_add_regset32(minor, "v3d_regs", &v3d->regset); - if (ret) - return ret; + vc4_debugfs_add_regset32(drm, "v3d_regs", &v3d->regset); return 0; } diff --git a/drivers/gpu/drm/vc4/vc4_vec.c b/drivers/gpu/drm/vc4/vc4_vec.c index f589ab918f4d..d8bf00b442e9 100644 --- a/drivers/gpu/drm/vc4/vc4_vec.c +++ b/drivers/gpu/drm/vc4/vc4_vec.c @@ -716,12 +716,8 @@ static int vc4_vec_late_register(struct drm_encoder *encoder) { struct drm_device *drm = encoder->dev; struct vc4_vec *vec = encoder_to_vc4_vec(encoder); - int ret; - ret = vc4_debugfs_add_regset32(drm->primary, "vec_regs", - &vec->regset); - if (ret) - return ret; + vc4_debugfs_add_regset32(drm, "vec_regs", &vec->regset); return 0; } From patchwork Mon Dec 19 12:06:19 2022 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: 34499 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:e747:0:0:0:0:0 with SMTP id c7csp2352760wrn; Mon, 19 Dec 2022 04:20:56 -0800 (PST) X-Google-Smtp-Source: AA0mqf6cxyhqv1gP2swrSwT0zzYD6asMOUcIEYH5CkrzWMuWqKIbx95wVNAtHmOf7+88pzdjQtXA X-Received: by 2002:a17:906:aadb:b0:7c0:996b:be7f with SMTP id kt27-20020a170906aadb00b007c0996bbe7fmr33106647ejb.29.1671452456673; Mon, 19 Dec 2022 04:20:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671452456; cv=none; d=google.com; s=arc-20160816; b=P+U75FgONOUxKLt+FCYk0SJEE//42tgoL1sTGYn2tdG0fEdRRRGw7iiQTe7Wflrumd ep+Lo8zn0Gyh0y79VZ90bIV6tOo5rDDodQ+cbT9o+WvFLD62zvkcKSf/D3KHDW53cN2t hhQLkTv3SM6alnobyhwH36qdLiCkWwfWE92srEFZTSryo1NxsSOvLREOrOjA/Uq1Gpfd 3dwurIawCUAG51W9NrSwPd4gME3S+4vRaF5u+FfL08i6Xalj0Vf/2Zg0WC1vHeyzQXHf SKdIemFF2jU6dSktIavuXzvRxMJkJCGjJ+W01GG/+gfuf6fEKQDNuciEZMhqn4II3RqK cyfQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=TG1xpqHfdwRk7lbJjh3WdyMI9E3juJpQZYPXiE72gtY=; b=xxMaQbOOouBmphGf+4StNCgpW0V3Q4Hxs+aTdCaWqHcpR7DojhDyz0mhUa4vkLrm6d 8d7cVtXJTMRRypZH50ENiR++R9hfUT3L9SLpHrE7eUvaeBNcQ8Xi4YCUNTSt5pTtplBz rnEEuAr5AskEnzV1/L3cG8IJXiR0F4e+ieAaxwtgX3IeHroLCfi3HCyFRpXyWTlzO5DJ Jq2CgieD1cw6A6NoxrE0HxJG8oI0K9AVHy5yvBsxy8gbnKEC66HPVUJN19Co1US9P08U UKu4D98xVbzwfRGYy0jc+ZTQ+xV7JyvpBMifgi690yRUOz2qouQCfUrlv2wps511nDr2 5PPA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@igalia.com header.s=20170329 header.b=rDa1H4BI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id qb22-20020a1709077e9600b007e08e2619e7si7205617ejc.860.2022.12.19.04.20.32; Mon, 19 Dec 2022 04:20:56 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@igalia.com header.s=20170329 header.b=rDa1H4BI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231458AbiLSMIT (ORCPT + 99 others); Mon, 19 Dec 2022 07:08:19 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55278 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231197AbiLSMH0 (ORCPT ); Mon, 19 Dec 2022 07:07:26 -0500 Received: from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0347EFC2 for ; Mon, 19 Dec 2022 04:07:23 -0800 (PST) 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:References: In-Reply-To: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:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=TG1xpqHfdwRk7lbJjh3WdyMI9E3juJpQZYPXiE72gtY=; b=rDa1H4BImPKDVmpK/ZbWVDG6DD hzSnGJirw2BPOF/933y0/gNTXhXEYu5+E2vMYTdnJEGzmL8iZzxQnQxqbpclY+RDJi6QYTwnEQYPd XPvPn6jhaUjtCS2+5JSauG0MAq4lRjBEbIV18vMi4K9FTrTtJ5C1f72Pr8w8YRCoySaSWlzbuuwV0 ak3fWrupEykVvm/MllE5cbSfx397cM6+koO328mdUy72E3tQQendvtGM0h0Z1dbMDSJdJiEoSSVEh 1k0LGuUSwpVioNcAQGYuTwnRHN61zIJnAgNoNgXDwFR5XCx+v/tcR7oFPX6T18zE3f+iC3RIqiO5/ GlFXvlww==; Received: from [177.34.169.227] (helo=bowie..) by fanzine2.igalia.com with esmtpsa (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim) id 1p7EvJ-006HsS-0p; Mon, 19 Dec 2022 13:07:13 +0100 From: =?utf-8?q?Ma=C3=ADra_Canal?= To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter , Oded Gabbay , Jani Nikula Cc: Melissa Wen , =?utf-8?q?Andr=C3=A9_Almeida?= , Emma Anholt , Rodrigo Siqueira , Wambui Karuga , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, =?utf-8?q?Ma=C3=ADra_Canal?= Subject: [PATCH v4 5/7] drm/v3d: use new debugfs device-centered functions Date: Mon, 19 Dec 2022 09:06:19 -0300 Message-Id: <20221219120621.15086-6-mcanal@igalia.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221219120621.15086-1-mcanal@igalia.com> References: <20221219120621.15086-1-mcanal@igalia.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1752644931483614263?= X-GMAIL-MSGID: =?utf-8?q?1752644931483614263?= Replace the use of drm_debugfs_create_files() with the new drm_debugfs_add_files() function, which centers the debugfs files management on the drm_device instead of drm_minor. Signed-off-by: Maíra Canal --- drivers/gpu/drm/v3d/v3d_debugfs.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/drm/v3d/v3d_debugfs.c b/drivers/gpu/drm/v3d/v3d_debugfs.c index efbde124c296..330669f51fa7 100644 --- a/drivers/gpu/drm/v3d/v3d_debugfs.c +++ b/drivers/gpu/drm/v3d/v3d_debugfs.c @@ -79,8 +79,8 @@ static const struct v3d_reg_def v3d_csd_reg_defs[] = { static int v3d_v3d_debugfs_regs(struct seq_file *m, void *unused) { - struct drm_info_node *node = (struct drm_info_node *)m->private; - struct drm_device *dev = node->minor->dev; + struct drm_debugfs_entry *entry = m->private; + struct drm_device *dev = entry->dev; struct v3d_dev *v3d = to_v3d_dev(dev); int i, core; @@ -126,8 +126,8 @@ static int v3d_v3d_debugfs_regs(struct seq_file *m, void *unused) static int v3d_v3d_debugfs_ident(struct seq_file *m, void *unused) { - struct drm_info_node *node = (struct drm_info_node *)m->private; - struct drm_device *dev = node->minor->dev; + struct drm_debugfs_entry *entry = m->private; + struct drm_device *dev = entry->dev; struct v3d_dev *v3d = to_v3d_dev(dev); u32 ident0, ident1, ident2, ident3, cores; int core; @@ -188,8 +188,8 @@ static int v3d_v3d_debugfs_ident(struct seq_file *m, void *unused) static int v3d_debugfs_bo_stats(struct seq_file *m, void *unused) { - struct drm_info_node *node = (struct drm_info_node *)m->private; - struct drm_device *dev = node->minor->dev; + struct drm_debugfs_entry *entry = m->private; + struct drm_device *dev = entry->dev; struct v3d_dev *v3d = to_v3d_dev(dev); mutex_lock(&v3d->bo_lock); @@ -204,8 +204,8 @@ static int v3d_debugfs_bo_stats(struct seq_file *m, void *unused) static int v3d_measure_clock(struct seq_file *m, void *unused) { - struct drm_info_node *node = (struct drm_info_node *)m->private; - struct drm_device *dev = node->minor->dev; + struct drm_debugfs_entry *entry = m->private; + struct drm_device *dev = entry->dev; struct v3d_dev *v3d = to_v3d_dev(dev); uint32_t cycles; int core = 0; @@ -236,7 +236,7 @@ static int v3d_measure_clock(struct seq_file *m, void *unused) return 0; } -static const struct drm_info_list v3d_debugfs_list[] = { +static const struct drm_debugfs_info v3d_debugfs_list[] = { {"v3d_ident", v3d_v3d_debugfs_ident, 0}, {"v3d_regs", v3d_v3d_debugfs_regs, 0}, {"measure_clock", v3d_measure_clock, 0}, @@ -246,7 +246,5 @@ static const struct drm_info_list v3d_debugfs_list[] = { void v3d_debugfs_init(struct drm_minor *minor) { - drm_debugfs_create_files(v3d_debugfs_list, - ARRAY_SIZE(v3d_debugfs_list), - minor->debugfs_root, minor); + drm_debugfs_add_files(minor->dev, v3d_debugfs_list, ARRAY_SIZE(v3d_debugfs_list)); } From patchwork Mon Dec 19 12:06:20 2022 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: 34498 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:e747:0:0:0:0:0 with SMTP id c7csp2352010wrn; Mon, 19 Dec 2022 04:19:14 -0800 (PST) X-Google-Smtp-Source: AA0mqf441/3eYO/mhXKYFsQG0Q5ZJXEKhr2ED3iZkxdahi0QxS9n/+gJLtbJcFz3pPXa2WhybzqH X-Received: by 2002:a17:907:1045:b0:7c0:ca94:4631 with SMTP id oy5-20020a170907104500b007c0ca944631mr35829416ejb.30.1671452354668; Mon, 19 Dec 2022 04:19:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671452354; cv=none; d=google.com; s=arc-20160816; b=hp6VGc7R3QROuMQUPfQ4Cbz+z0J2C2bV+fuaAn9c4W2cZZ+hY7ggPz75HVvEMflRqY M7eCEyb52pyk1neNJ9I9x18+VQxHfwWYexa2irJ+ADl0K/yDWBhOcAZvD9VJ59PnxVjp ZWzo751dTW+dN9aSzmRv1xFhy1j/aqZ+vpHGBwlG7yLGuRZAGT8tYlOCBYBt4jhJaZcj E8jOpPQyW5EDJeB87lKRER1lybAqZuZk3zhTOn+GHgZjc+IMzyFGVTXzX7roeIFbwu7v Xte+j2cLmZhD8Ahezpt59M9mdPN/4OQLQ6rdwjbaF9J+xZ2SEOyHQ57RgMeweaCp4ySB 04Xg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=XLI4Q5BF1S4Y7/1I9tMeZIh/hDmMgqL/1tXLD7cwxp4=; b=S2W0++8WgtUgnAo27+pMmzvMLcGYrppauBOK70LbNcI/invmx83jGlYW/Nh+dB/V+u SFH/2eD+zVds1btcNwCBOr/4k3RDSqq3pEGufOkoZqUVtZBStLRSVw9wlCx1gIA64RIK NBMngArA3ePFP9q6iNpYbi3kV/M48ivH3uG3EgJkUL4DIqOvTqoJN4tFnFIIJEhH0VD9 SmYrgzNlObpf2JM0zYYR0vMDhSlUNKs31lAmABfz8gvhuyL3Kx8qeyLIUbdvFO+lSU+0 qUvv6px0VkuH9OcBdU0z4TX8VXuDpNsUAvP/zJC5RmQlBMYc+jCoAcueC9eaZRbPP9mc Wv8Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@igalia.com header.s=20170329 header.b="IIZ+0am/"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id sa23-20020a1709076d1700b007f38bd15f62si7013804ejc.551.2022.12.19.04.18.51; Mon, 19 Dec 2022 04:19:14 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@igalia.com header.s=20170329 header.b="IIZ+0am/"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231897AbiLSMIi (ORCPT + 99 others); Mon, 19 Dec 2022 07:08:38 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55282 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231837AbiLSMIQ (ORCPT ); Mon, 19 Dec 2022 07:08:16 -0500 Received: from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 01D83A449 for ; Mon, 19 Dec 2022 04:07:27 -0800 (PST) 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:References: In-Reply-To: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:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=XLI4Q5BF1S4Y7/1I9tMeZIh/hDmMgqL/1tXLD7cwxp4=; b=IIZ+0am/AGpSBN/8WsZv+nY15m D6nCIeDL2TtuT0vFmnyOAG7RhDcFQUjUeX449QizsXNwnPMntNZRfwg/9Y3+gMwGGrj8OvDeBjtOW yjMEqoPrpu2J8GuZmee8B5+OY31HWWgFx3O+Q6H9WqnFzZPCD+fbsZcgOV26XaWykaAKXU+xoZ0iw DpJdQOBZUxjzllBGi7EkAH9X7pNaEc2/Odztg5PR2oNB8Q37Na4tX4g0/8BfQfM/41SdF1cc2KwZZ sBjmi+pX7uQqmALGQODebJ4tAygmx8fjxNokdwRkYBwIlBF3FArEag3da+2hAVs/kSp2zMCEESfpH AVK/Ac2A==; Received: from [177.34.169.227] (helo=bowie..) by fanzine2.igalia.com with esmtpsa (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim) id 1p7EvO-006HsS-GX; Mon, 19 Dec 2022 13:07:19 +0100 From: =?utf-8?q?Ma=C3=ADra_Canal?= To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter , Oded Gabbay , Jani Nikula Cc: Melissa Wen , =?utf-8?q?Andr=C3=A9_Almeida?= , Emma Anholt , Rodrigo Siqueira , Wambui Karuga , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, =?utf-8?q?Ma=C3=ADra_Canal?= Subject: [PATCH v4 6/7] drm/vkms: use new debugfs device-centered functions Date: Mon, 19 Dec 2022 09:06:20 -0300 Message-Id: <20221219120621.15086-7-mcanal@igalia.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221219120621.15086-1-mcanal@igalia.com> References: <20221219120621.15086-1-mcanal@igalia.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1752644824658018243?= X-GMAIL-MSGID: =?utf-8?q?1752644824658018243?= Replace the use of drm_debugfs_create_files() with the new drm_debugfs_add_files() function, which centers the debugfs files management on the drm_device instead of drm_minor. Moreover, remove the debugfs_init hook and add the debugfs files directly on vkms_create(), before drm_dev_register(). Signed-off-by: Maíra Canal --- drivers/gpu/drm/vkms/vkms_drv.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/drivers/gpu/drm/vkms/vkms_drv.c b/drivers/gpu/drm/vkms/vkms_drv.c index 69346906ec81..6d3a2d57d992 100644 --- a/drivers/gpu/drm/vkms/vkms_drv.c +++ b/drivers/gpu/drm/vkms/vkms_drv.c @@ -92,8 +92,8 @@ static void vkms_atomic_commit_tail(struct drm_atomic_state *old_state) static int vkms_config_show(struct seq_file *m, void *data) { - struct drm_info_node *node = (struct drm_info_node *)m->private; - struct drm_device *dev = node->minor->dev; + struct drm_debugfs_entry *entry = m->private; + struct drm_device *dev = entry->dev; struct vkms_device *vkmsdev = drm_device_to_vkms_device(dev); seq_printf(m, "writeback=%d\n", vkmsdev->config->writeback); @@ -103,24 +103,16 @@ static int vkms_config_show(struct seq_file *m, void *data) return 0; } -static const struct drm_info_list vkms_config_debugfs_list[] = { +static const struct drm_debugfs_info vkms_config_debugfs_list[] = { { "vkms_config", vkms_config_show, 0 }, }; -static void vkms_config_debugfs_init(struct drm_minor *minor) -{ - drm_debugfs_create_files(vkms_config_debugfs_list, ARRAY_SIZE(vkms_config_debugfs_list), - minor->debugfs_root, minor); -} - static const struct drm_driver vkms_driver = { .driver_features = DRIVER_MODESET | DRIVER_ATOMIC | DRIVER_GEM, .release = vkms_release, .fops = &vkms_driver_fops, DRM_GEM_SHMEM_DRIVER_OPS, - .debugfs_init = vkms_config_debugfs_init, - .name = DRIVER_NAME, .desc = DRIVER_DESC, .date = DRIVER_DATE, @@ -202,6 +194,9 @@ static int vkms_create(struct vkms_config *config) if (ret) goto out_devres; + drm_debugfs_add_files(&vkms_device->drm, vkms_config_debugfs_list, + ARRAY_SIZE(vkms_config_debugfs_list)); + ret = drm_dev_register(&vkms_device->drm, 0); if (ret) goto out_devres; From patchwork Mon Dec 19 12:06:21 2022 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: 34496 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:e747:0:0:0:0:0 with SMTP id c7csp2351279wrn; Mon, 19 Dec 2022 04:17:34 -0800 (PST) X-Google-Smtp-Source: AA0mqf7s1v7OFUcOLgb9OF1AibQoq1mn3nCe3/Tgjl4Eew2bOu8aiF+xgsvmTbIFOyxQ7LhdaV2E X-Received: by 2002:a17:907:29d2:b0:7c1:98d:a8a3 with SMTP id ev18-20020a17090729d200b007c1098da8a3mr23384479ejc.7.1671452254567; Mon, 19 Dec 2022 04:17:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671452254; cv=none; d=google.com; s=arc-20160816; b=pmwb8/lBf99cyLaZNVlN7lr4HBR9uLUkfGV7PkOwKqRl4aHskzCvSVFs/XP+Hnxol2 5NXZek5Twy38PXReXjONkPGjcQd2ip3JMkyKSNs6gf3hkj0P5Z+6YvwmlqcfnUD996t4 W9Hiw7xkMPEjLuHs5bSLuU1gjVbVPHqiD14UTLNQEzMZ45zUJ18PK/OOr/CIYqH3fiun EXGb5vsHPE43CJE2MfDuOQqMzNLfIuqA0l2dWOgnQMb/LygnLjhpM0peqMZcn8zrkCWA CRctDlu2BdJX6D+Xiwbf2hu2Pm9rvun9awCFzb1t2gjtGM+AmQsKntjd6W4HgJnnL5eW 3HPQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=YOKduRxqOQ+ggRn/s0wpQfzORzZWr0CzU1FGkX5EVD0=; b=pbVunWf1NfGWZL7XxXtUKzbn1cjwh0cji8gIc2A/+WfpOLxZXAQ1Z+QoEwNjuBEQM1 0z6UmeOkPZllPVuOhgLjCEwTcLonDAWMuDN72Wt/1OJ3IepYDUaECFw8b1cZpuodFBPW 18j1baRyBHMp8IIQT65FgluxKO0sJUpValRiaHyFPdaI0uywTw8uf/lIg4qdPoIDOCcR V1vwmHwoHngkUhjZq4vhrD22BUbqTw8zyTXk9UMyVV8odoi63/N6pujNSjVVy+LRFn+v VLYVJI7kSppO6i1IqoAV6VejrO5M/oJiHZ2M4A3yOvBOf6dHO0Jt8e2KInhIrBUd680j /eKg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@igalia.com header.s=20170329 header.b=K1wDeBQU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id un2-20020a170907cb8200b007adf6f0f962si7706766ejc.291.2022.12.19.04.17.09; Mon, 19 Dec 2022 04:17:34 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@igalia.com header.s=20170329 header.b=K1wDeBQU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231991AbiLSMJE (ORCPT + 99 others); Mon, 19 Dec 2022 07:09:04 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56446 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231197AbiLSMIi (ORCPT ); Mon, 19 Dec 2022 07:08:38 -0500 Received: from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EB5F1A184 for ; Mon, 19 Dec 2022 04:07:34 -0800 (PST) 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:References: In-Reply-To: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:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=YOKduRxqOQ+ggRn/s0wpQfzORzZWr0CzU1FGkX5EVD0=; b=K1wDeBQUGjOAaSvqjsK/WFqC8q Twg+pOjENQOwi1xB9DZdCquC5QkrUXyE/Ng3qRaDhGDtDt5R31KI2NAEUjebif0hS+kvFPw/C9uIk Pi7+t5lQSu7V6Esd9L1G9Hvgu2PQ0UUmnyTU93VMt6zGjDYuPQFA2C4Pvniftt3Zb3BYxsScBOIcE OV0/dTWw7owOfiosd+VPR8/1reAR3MUYsrQEVYLTOp6SvQNh4Ea9cQfgOc8+C5uR+woR6fbRH9CET +1S/xA6U2bLThvEIwVTby2L7gIn6CGudbupY1eLlfQbJlhvNaRW/t4s/eGctHfz4bgb4FmTptmwPf nH8evx4w==; Received: from [177.34.169.227] (helo=bowie..) by fanzine2.igalia.com with esmtpsa (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim) id 1p7EvU-006HsS-4m; Mon, 19 Dec 2022 13:07:24 +0100 From: =?utf-8?q?Ma=C3=ADra_Canal?= To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter , Oded Gabbay , Jani Nikula Cc: Melissa Wen , =?utf-8?q?Andr=C3=A9_Almeida?= , Emma Anholt , Rodrigo Siqueira , Wambui Karuga , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, =?utf-8?q?Ma=C3=ADra_Canal?= Subject: [PATCH v4 7/7] drm/todo: update the debugfs clean up task Date: Mon, 19 Dec 2022 09:06:21 -0300 Message-Id: <20221219120621.15086-8-mcanal@igalia.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221219120621.15086-1-mcanal@igalia.com> References: <20221219120621.15086-1-mcanal@igalia.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1752644719387489025?= X-GMAIL-MSGID: =?utf-8?q?1752644719387489025?= The structs drm_debugfs_info and drm_debugfs_entry introduced a new debugfs structure to DRM, centered on drm_device instead of drm_minor. Therefore, remove the tasks related to create a new device-centered debugfs structure and add a new task to replace the use of drm_debugfs_create_files() for the use of drm_debugfs_add_file() and drm_debugfs_add_files(). Signed-off-by: Maíra Canal --- Documentation/gpu/todo.rst | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/Documentation/gpu/todo.rst b/Documentation/gpu/todo.rst index b2c6aaf1edf2..f64abf69f341 100644 --- a/Documentation/gpu/todo.rst +++ b/Documentation/gpu/todo.rst @@ -508,17 +508,14 @@ Clean up the debugfs support There's a bunch of issues with it: -- The drm_info_list ->show() function doesn't even bother to cast to the drm - structure for you. This is lazy. +- Convert drivers to support the drm_debugfs_add_files() function instead of + the drm_debugfs_create_files() function. - We probably want to have some support for debugfs files on crtc/connectors and maybe other kms objects directly in core. There's even drm_print support in the funcs for these objects to dump kms state, so it's all there. And then the ->show() functions should obviously give you a pointer to the right object. -- The drm_info_list stuff is centered on drm_minor instead of drm_device. For - anything we want to print drm_device (or maybe drm_file) is the right thing. - - The drm_driver->debugfs_init hooks we have is just an artifact of the old midlayered load sequence. DRM debugfs should work more like sysfs, where you can create properties/files for an object anytime you want, and the core @@ -527,8 +524,6 @@ There's a bunch of issues with it: this (together with the drm_minor->drm_device move) would allow us to remove debugfs_init. -Previous RFC that hasn't landed yet: https://lore.kernel.org/dri-devel/20200513114130.28641-2-wambui.karugax@gmail.com/ - Contact: Daniel Vetter Level: Intermediate