]> git.ipfire.org Git - thirdparty/openwrt.git/blob
3757f2eb66f486d314f9cec1b299c3c4ef2ead0e
[thirdparty/openwrt.git] /
1 From 53aa50017a2d7f730d4aae4bea41619d7a92bb03 Mon Sep 17 00:00:00 2001
2 From: =?UTF-8?q?Ma=C3=ADra=20Canal?= <mcanal@igalia.com>
3 Date: Mon, 23 Sep 2024 10:55:14 -0300
4 Subject: [PATCH] drm/v3d: Add modparam for turning off Big/Super Pages
5 MIME-Version: 1.0
6 Content-Type: text/plain; charset=UTF-8
7 Content-Transfer-Encoding: 8bit
8
9 Commit 0df4a13ca8bed29cbc362c99b958fbb8b27b1675 upstream
10
11 Add a modparam for turning off Big/Super Pages to make sure that if an
12 user doesn't want Big/Super Pages enabled, it can disabled it by setting
13 the modparam to false.
14
15 Signed-off-by: MaĆ­ra Canal <mcanal@igalia.com>
16 Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
17 Link: https://patchwork.freedesktop.org/patch/msgid/20240923141348.2422499-11-mcanal@igalia.com
18 ---
19 drivers/gpu/drm/v3d/v3d_drv.c | 7 +++++++
20 drivers/gpu/drm/v3d/v3d_drv.h | 1 +
21 drivers/gpu/drm/v3d/v3d_gemfs.c | 4 ++++
22 3 files changed, 12 insertions(+)
23
24 --- a/drivers/gpu/drm/v3d/v3d_drv.c
25 +++ b/drivers/gpu/drm/v3d/v3d_drv.c
26 @@ -40,6 +40,13 @@
27 #define DRIVER_MINOR 0
28 #define DRIVER_PATCHLEVEL 0
29
30 +/* Only expose the `super_pages` modparam if THP is enabled. */
31 +#ifdef CONFIG_TRANSPARENT_HUGEPAGE
32 +bool super_pages = true;
33 +module_param_named(super_pages, super_pages, bool, 0400);
34 +MODULE_PARM_DESC(super_pages, "Enable/Disable Super Pages support.");
35 +#endif
36 +
37 static int v3d_get_param_ioctl(struct drm_device *dev, void *data,
38 struct drm_file *file_priv)
39 {
40 --- a/drivers/gpu/drm/v3d/v3d_drv.h
41 +++ b/drivers/gpu/drm/v3d/v3d_drv.h
42 @@ -545,6 +545,7 @@ void v3d_invalidate_caches(struct v3d_de
43 void v3d_clean_caches(struct v3d_dev *v3d);
44
45 /* v3d_gemfs.c */
46 +extern bool super_pages;
47 void v3d_gemfs_init(struct v3d_dev *v3d);
48 void v3d_gemfs_fini(struct v3d_dev *v3d);
49
50 --- a/drivers/gpu/drm/v3d/v3d_gemfs.c
51 +++ b/drivers/gpu/drm/v3d/v3d_gemfs.c
52 @@ -20,6 +20,10 @@ void v3d_gemfs_init(struct v3d_dev *v3d)
53 if (!IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE))
54 goto err;
55
56 + /* The user doesn't want to enable Super Pages */
57 + if (!super_pages)
58 + goto err;
59 +
60 type = get_fs_type("tmpfs");
61 if (!type)
62 goto err;