exposing the pstate interface through sysfs might make sense with no dynamic reclocking, we shouldn't expose it as sysfs interface, because we actually want to dynamic reclock the card later on. Doing it in debugfs on the other hand should be fine, also we need something like that later on, when we want to benchmark our dynamic reclocking implementation (we need to disable it at runtime and manucally clock to pstates). I also have some debugfs cstate interface patches, but they actually add new functionality and aren't as trivial as this one, so these have to wait. In the end I wish we have a pstate, cstate and a disable_dyn_reclock interface in debugfs exactly for those benchmarking. Karol Herbst (6): debugfs: add infrastructure to add files with other fops than only read debugfs: rename functions to indicate they are used inside drm debugfs: we need a ctrl object for debugfs debugfs: add copy of sysfs pstate interface ported to debugfs sysfs: remove sysfs interface sysfs: remove pstate options and remove files drm/nouveau/Kbuild | 1 - drm/nouveau/nouveau_debugfs.c | 230 +++++++++++++++++++++++++++++++++++++++++- drm/nouveau/nouveau_debugfs.h | 35 ++++++- drm/nouveau/nouveau_drm.c | 10 +- drm/nouveau/nouveau_drm.h | 2 +- drm/nouveau/nouveau_sysfs.c | 198 ------------------------------------ drm/nouveau/nouveau_sysfs.h | 21 ---- 7 files changed, 262 insertions(+), 235 deletions(-) delete mode 100644 drm/nouveau/nouveau_sysfs.c delete mode 100644 drm/nouveau/nouveau_sysfs.h -- 2.6.1
Karol Herbst
2015-Oct-13 11:39 UTC
[Nouveau] [PATCH 1/6] debugfs: add infrastructure to add files with other fops than only read
this is somehow copied from i915 Signed-off-by: Karol Herbst <nouveau at karolherbst.de> --- drm/nouveau/nouveau_debugfs.c | 56 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 54 insertions(+), 2 deletions(-) diff --git a/drm/nouveau/nouveau_debugfs.c b/drm/nouveau/nouveau_debugfs.c index 5392e07..762441f 100644 --- a/drm/nouveau/nouveau_debugfs.c +++ b/drm/nouveau/nouveau_debugfs.c @@ -28,6 +28,7 @@ * Ben Skeggs <bskeggs at redhat.com> */ +#include <linux/debugfs.h> #include "nouveau_debugfs.h" #include "nouveau_drm.h" @@ -48,17 +49,68 @@ static struct drm_info_list nouveau_debugfs_list[] = { }; #define NOUVEAU_DEBUGFS_ENTRIES ARRAY_SIZE(nouveau_debugfs_list) +static const struct nouveau_debugfs_files { + const char *name; + const struct file_operations *fops; +} nouveau_debugfs_files[] = {}; + + +static int +nouveau_debugfs_create_file(struct drm_minor *minor, + const struct nouveau_debugfs_files *ndf) +{ + struct dentry *ent; + struct drm_info_node *node; + + ent = debugfs_create_file(ndf->name, S_IRUGO | S_IWUSR, minor->debugfs_root, + minor->dev, ndf->fops); + + if (!ent) + return -ENOMEM; + + node = kmalloc(sizeof(*node), GFP_KERNEL); + if (node == NULL) { + debugfs_remove(ent); + return -ENOMEM; + } + + node->minor = minor; + node->dent = ent; + node->info_ent = (const void *)ndf->fops; + + mutex_lock(&minor->debugfs_lock); + list_add(&node->list, &minor->debugfs_list); + mutex_unlock(&minor->debugfs_lock); + + return 0; +} + int nouveau_debugfs_init(struct drm_minor *minor) { - drm_debugfs_create_files(nouveau_debugfs_list, NOUVEAU_DEBUGFS_ENTRIES, + int i, ret; + + for (i = 0; i < ARRAY_SIZE(nouveau_debugfs_files); i++) { + ret = nouveau_debugfs_create_file(minor, &nouveau_debugfs_files[i]); + + if (ret) + return ret; + } + + return drm_debugfs_create_files(nouveau_debugfs_list, NOUVEAU_DEBUGFS_ENTRIES, minor->debugfs_root, minor); - return 0; } void nouveau_debugfs_takedown(struct drm_minor *minor) { + int i; + drm_debugfs_remove_files(nouveau_debugfs_list, NOUVEAU_DEBUGFS_ENTRIES, minor); + + for (i = 0; i < ARRAY_SIZE(nouveau_debugfs_files); i++) { + drm_debugfs_remove_files((struct drm_info_list *)nouveau_debugfs_files[i].fops, + 1, minor); + } } -- 2.6.1
Karol Herbst
2015-Oct-13 11:39 UTC
[Nouveau] [PATCH 2/6] debugfs: rename functions to indicate they are used inside drm
we will need our own debugfs_init and cleanup functions, because nouveau_drm isn't ready while the drm ones are called by drm Signed-off-by: Karol Herbst <nouveau at karolherbst.de> --- drm/nouveau/nouveau_debugfs.c | 4 ++-- drm/nouveau/nouveau_debugfs.h | 9 +++++---- drm/nouveau/nouveau_drm.c | 4 ++-- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/drm/nouveau/nouveau_debugfs.c b/drm/nouveau/nouveau_debugfs.c index 762441f..3736796 100644 --- a/drm/nouveau/nouveau_debugfs.c +++ b/drm/nouveau/nouveau_debugfs.c @@ -86,7 +86,7 @@ nouveau_debugfs_create_file(struct drm_minor *minor, } int -nouveau_debugfs_init(struct drm_minor *minor) +nouveau_drm_debugfs_init(struct drm_minor *minor) { int i, ret; @@ -102,7 +102,7 @@ nouveau_debugfs_init(struct drm_minor *minor) } void -nouveau_debugfs_takedown(struct drm_minor *minor) +nouveau_drm_debugfs_cleanup(struct drm_minor *minor) { int i; diff --git a/drm/nouveau/nouveau_debugfs.h b/drm/nouveau/nouveau_debugfs.h index a62af6f..42d65c9 100644 --- a/drm/nouveau/nouveau_debugfs.h +++ b/drm/nouveau/nouveau_debugfs.h @@ -4,16 +4,17 @@ #include <drm/drmP.h> #if defined(CONFIG_DEBUG_FS) -extern int nouveau_debugfs_init(struct drm_minor *); -extern void nouveau_debugfs_takedown(struct drm_minor *); +extern int nouveau_drm_debugfs_init(struct drm_minor *); +extern void nouveau_drm_debugfs_cleanup(struct drm_minor *); #else static inline int -nouveau_debugfs_init(struct drm_minor *minor) +nouveau_drm_debugfs_init(struct drm_minor *minor) { return 0; } -static inline void nouveau_debugfs_takedown(struct drm_minor *minor) +static inline void +nouveau_drm_debugfs_cleanup(struct drm_minor *minor) { } diff --git a/drm/nouveau/nouveau_drm.c b/drm/nouveau/nouveau_drm.c index 189e591..3044dde 100644 --- a/drm/nouveau/nouveau_drm.c +++ b/drm/nouveau/nouveau_drm.c @@ -929,8 +929,8 @@ driver_stub = { .lastclose = nouveau_vga_lastclose, #if defined(CONFIG_DEBUG_FS) - .debugfs_init = nouveau_debugfs_init, - .debugfs_cleanup = nouveau_debugfs_takedown, + .debugfs_init = nouveau_drm_debugfs_init, + .debugfs_cleanup = nouveau_drm_debugfs_cleanup, #endif .get_vblank_counter = drm_vblank_count, -- 2.6.1
Karol Herbst
2015-Oct-13 11:39 UTC
[Nouveau] [PATCH 3/6] debugfs: we need a ctrl object for debugfs
Signed-off-by: Karol Herbst <nouveau at karolherbst.de> --- drm/nouveau/nouveau_debugfs.c | 30 ++++++++++++++++++++++++++++++ drm/nouveau/nouveau_debugfs.h | 26 ++++++++++++++++++++++++++ drm/nouveau/nouveau_drm.c | 2 ++ drm/nouveau/nouveau_drm.h | 1 + 4 files changed, 59 insertions(+) diff --git a/drm/nouveau/nouveau_debugfs.c b/drm/nouveau/nouveau_debugfs.c index 3736796..53d2233 100644 --- a/drm/nouveau/nouveau_debugfs.c +++ b/drm/nouveau/nouveau_debugfs.c @@ -29,6 +29,7 @@ */ #include <linux/debugfs.h> +#include <nvif/ioctl.h> #include "nouveau_debugfs.h" #include "nouveau_drm.h" @@ -114,3 +115,32 @@ nouveau_drm_debugfs_cleanup(struct drm_minor *minor) 1, minor); } } + +int +nouveau_debugfs_init(struct nouveau_drm *drm) +{ + int ret; + + drm->debugfs = kzalloc(sizeof(*drm->debugfs), GFP_KERNEL); + if (!drm->debugfs) { + return-ENOMEM; + } + + ret = nvif_object_init(&drm->device.object, NVDRM_CONTROL, + NVIF_IOCTL_NEW_V0_CONTROL, NULL, 0, &drm->debugfs->ctrl); + + if (ret) + return ret; + + return 0; +} + +void +nouveau_debugfs_cleanup(struct nouveau_drm *drm) +{ + if (drm->debugfs && drm->debugfs->ctrl.priv) + nvif_object_fini(&drm->debugfs->ctrl); + + kfree(drm->debugfs); + drm->debugfs = NULL; +} diff --git a/drm/nouveau/nouveau_debugfs.h b/drm/nouveau/nouveau_debugfs.h index 42d65c9..6b89fb1 100644 --- a/drm/nouveau/nouveau_debugfs.h +++ b/drm/nouveau/nouveau_debugfs.h @@ -4,8 +4,23 @@ #include <drm/drmP.h> #if defined(CONFIG_DEBUG_FS) + +#include "nouveau_drm.h" + +struct nouveau_debugfs { + struct nvif_object ctrl; +}; + +static inline struct nouveau_debugfs * +nouveau_debugfs(struct drm_device *dev) +{ + return nouveau_drm(dev)->debugfs; +} + extern int nouveau_drm_debugfs_init(struct drm_minor *); extern void nouveau_drm_debugfs_cleanup(struct drm_minor *); +extern int nouveau_debugfs_init(struct nouveau_drm *); +extern void nouveau_debugfs_cleanup(struct nouveau_drm *); #else static inline int nouveau_drm_debugfs_init(struct drm_minor *minor) @@ -18,6 +33,17 @@ nouveau_drm_debugfs_cleanup(struct drm_minor *minor) { } +static inline int +nouveau_debugfs_init(struct nouveau_drm *) +{ + return 0; +} + +static inline void +nouveau_debugfs_cleanup(struct nouveau_drm *) +{ +} + #endif #endif diff --git a/drm/nouveau/nouveau_drm.c b/drm/nouveau/nouveau_drm.c index 3044dde..17a0f31 100644 --- a/drm/nouveau/nouveau_drm.c +++ b/drm/nouveau/nouveau_drm.c @@ -450,6 +450,7 @@ nouveau_drm_load(struct drm_device *dev, unsigned long flags) goto fail_dispinit; } + nouveau_debugfs_init(drm); nouveau_sysfs_init(dev); nouveau_hwmon_init(dev); nouveau_accel_init(drm); @@ -489,6 +490,7 @@ nouveau_drm_unload(struct drm_device *dev) nouveau_accel_fini(drm); nouveau_hwmon_fini(dev); nouveau_sysfs_fini(dev); + nouveau_debugfs_cleanup(drm); if (dev->mode_config.num_crtc) nouveau_display_fini(dev); diff --git a/drm/nouveau/nouveau_drm.h b/drm/nouveau/nouveau_drm.h index 3c902c2..a075d60 100644 --- a/drm/nouveau/nouveau_drm.h +++ b/drm/nouveau/nouveau_drm.h @@ -166,6 +166,7 @@ struct nouveau_drm { /* power management */ struct nouveau_hwmon *hwmon; struct nouveau_sysfs *sysfs; + struct nouveau_debugfs *debugfs; /* display power reference */ bool have_disp_power_ref; -- 2.6.1
Karol Herbst
2015-Oct-13 11:39 UTC
[Nouveau] [PATCH 4/6] debugfs: add copy of sysfs pstate interface ported to debugfs
Signed-off-by: Karol Herbst <nouveau at karolherbst.de> --- drm/nouveau/nouveau_debugfs.c | 144 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 142 insertions(+), 2 deletions(-) diff --git a/drm/nouveau/nouveau_debugfs.c b/drm/nouveau/nouveau_debugfs.c index 53d2233..d024ffa 100644 --- a/drm/nouveau/nouveau_debugfs.c +++ b/drm/nouveau/nouveau_debugfs.c @@ -45,6 +45,145 @@ nouveau_debugfs_vbios_image(struct seq_file *m, void *data) return 0; } +static int +nouveau_debugfs_pstate_get(struct seq_file *m, void *data) +{ + struct nouveau_debugfs *debugfs = nouveau_debugfs(m->private); + struct nvif_object *ctrl; + struct nvif_control_pstate_info_v0 info = {}; + int ret, i; + + if (!debugfs) + return -ENODEV; + + ctrl = &debugfs->ctrl; + + ret = nvif_mthd(ctrl, NVIF_CONTROL_PSTATE_INFO, + &info, sizeof(info)); + if (ret) + return ret; + + for (i = 0; i < info.count + 1; i++) { + const s32 state = i < info.count ? i : + NVIF_CONTROL_PSTATE_ATTR_V0_STATE_CURRENT; + struct nvif_control_pstate_attr_v0 attr = { + .state = state, + .index = 0, + }; + + ret = nvif_mthd(ctrl, NVIF_CONTROL_PSTATE_ATTR, + &attr, sizeof(attr)); + if (ret) + return ret; + + if (i < info.count) + seq_printf(m, "%02x:", attr.state); + else + seq_printf(m, "%s:", info.pwrsrc == 0 ? "DC" : + info.pwrsrc == 1 ? "AC" : + "--"); + + attr.index = 0; + do { + attr.state = state; + ret = nvif_mthd(ctrl, + NVIF_CONTROL_PSTATE_ATTR, + &attr, sizeof(attr)); + if (ret) + return ret; + + seq_printf(m, " %s %d", attr.name, attr.min); + if (attr.min != attr.max) + seq_printf(m, "-%d", attr.max); + seq_printf(m, " %s", attr.unit); + } while (attr.index); + + if (state >= 0) { + if (info.ustate_ac == state) + seq_printf(m, " AC"); + if (info.ustate_dc == state) + seq_printf(m, " DC"); + if (info.pstate == state) + seq_printf(m, " *"); + } else { + if (info.ustate_ac < -1) + seq_printf(m, " AC"); + if (info.ustate_dc < -1) + seq_printf(m, " DC"); + } + + seq_printf(m, "\n"); + } + + return 0; +} + +static ssize_t +nouveau_debugfs_pstate_set(struct file *file, const char __user *ubuf, size_t len, loff_t *offp) +{ + struct seq_file *m = file->private_data; + struct nouveau_debugfs *debugfs = nouveau_debugfs(m->private); + struct nvif_object *ctrl; + struct nvif_control_pstate_user_v0 args = { .pwrsrc = -EINVAL }; + char buf[32] = {}, *tmp, *cur = buf; + long value, ret; + + if (!debugfs) + return -ENODEV; + + ctrl = &debugfs->ctrl; + + if (len >= sizeof(buf)) + return -EINVAL; + + if (copy_from_user(buf, ubuf, len)) + return -EFAULT; + + if ((tmp = strchr(buf, '\n'))) + *tmp = '\0'; + + if (!strncasecmp(cur, "dc:", 3)) { + args.pwrsrc = 0; + cur += 3; + } else + if (!strncasecmp(cur, "ac:", 3)) { + args.pwrsrc = 1; + cur += 3; + } + + if (!strcasecmp(cur, "none")) + args.ustate = NVIF_CONTROL_PSTATE_USER_V0_STATE_UNKNOWN; + else + if (!strcasecmp(cur, "auto")) + args.ustate = NVIF_CONTROL_PSTATE_USER_V0_STATE_PERFMON; + else { + ret = kstrtol(cur, 16, &value); + if (ret) + return ret; + args.ustate = value; + } + + ret = nvif_mthd(ctrl, NVIF_CONTROL_PSTATE_USER, + &args, sizeof(args)); + if (ret < 0) + return ret; + + return len; +} + +static int +nouveau_debugfs_pstate_open(struct inode *inode, struct file *file) +{ + return single_open(file, nouveau_debugfs_pstate_get, inode->i_private); +} + +static const struct file_operations nouveau_pstate_fops = { + .owner = THIS_MODULE, + .open = nouveau_debugfs_pstate_open, + .read = seq_read, + .write = nouveau_debugfs_pstate_set, +}; + static struct drm_info_list nouveau_debugfs_list[] = { { "vbios.rom", nouveau_debugfs_vbios_image, 0, NULL }, }; @@ -53,8 +192,9 @@ static struct drm_info_list nouveau_debugfs_list[] = { static const struct nouveau_debugfs_files { const char *name; const struct file_operations *fops; -} nouveau_debugfs_files[] = {}; - +} nouveau_debugfs_files[] = { + {"pstate", &nouveau_pstate_fops}, +}; static int nouveau_debugfs_create_file(struct drm_minor *minor, -- 2.6.1
Signed-off-by: Karol Herbst <nouveau at karolherbst.de> --- drm/nouveau/nouveau_drm.c | 2 - drm/nouveau/nouveau_drm.h | 1 - drm/nouveau/nouveau_sysfs.c | 165 -------------------------------------------- drm/nouveau/nouveau_sysfs.h | 13 ---- 4 files changed, 181 deletions(-) diff --git a/drm/nouveau/nouveau_drm.c b/drm/nouveau/nouveau_drm.c index 17a0f31..01aa54a 100644 --- a/drm/nouveau/nouveau_drm.c +++ b/drm/nouveau/nouveau_drm.c @@ -451,7 +451,6 @@ nouveau_drm_load(struct drm_device *dev, unsigned long flags) } nouveau_debugfs_init(drm); - nouveau_sysfs_init(dev); nouveau_hwmon_init(dev); nouveau_accel_init(drm); nouveau_fbcon_init(dev); @@ -489,7 +488,6 @@ nouveau_drm_unload(struct drm_device *dev) nouveau_fbcon_fini(dev); nouveau_accel_fini(drm); nouveau_hwmon_fini(dev); - nouveau_sysfs_fini(dev); nouveau_debugfs_cleanup(drm); if (dev->mode_config.num_crtc) diff --git a/drm/nouveau/nouveau_drm.h b/drm/nouveau/nouveau_drm.h index a075d60..ff40499 100644 --- a/drm/nouveau/nouveau_drm.h +++ b/drm/nouveau/nouveau_drm.h @@ -165,7 +165,6 @@ struct nouveau_drm { /* power management */ struct nouveau_hwmon *hwmon; - struct nouveau_sysfs *sysfs; struct nouveau_debugfs *debugfs; /* display power reference */ diff --git a/drm/nouveau/nouveau_sysfs.c b/drm/nouveau/nouveau_sysfs.c index d12a5fa..ba89713 100644 --- a/drm/nouveau/nouveau_sysfs.c +++ b/drm/nouveau/nouveau_sysfs.c @@ -31,168 +31,3 @@ MODULE_PARM_DESC(pstate, "enable sysfs pstate file, which will be moved in the future"); int nouveau_pstate; module_param_named(pstate, nouveau_pstate, int, 0400); - -static inline struct drm_device * -drm_device(struct device *d) -{ - return dev_get_drvdata(d); -} - -#define snappendf(p,r,f,a...) do { \ - snprintf(p, r, f, ##a); \ - r -= strlen(p); \ - p += strlen(p); \ -} while(0) - -static ssize_t -nouveau_sysfs_pstate_get(struct device *d, struct device_attribute *a, char *b) -{ - struct nouveau_sysfs *sysfs = nouveau_sysfs(drm_device(d)); - struct nvif_control_pstate_info_v0 info = {}; - size_t cnt = PAGE_SIZE; - char *buf = b; - int ret, i; - - ret = nvif_mthd(&sysfs->ctrl, NVIF_CONTROL_PSTATE_INFO, - &info, sizeof(info)); - if (ret) - return ret; - - for (i = 0; i < info.count + 1; i++) { - const s32 state = i < info.count ? i : - NVIF_CONTROL_PSTATE_ATTR_V0_STATE_CURRENT; - struct nvif_control_pstate_attr_v0 attr = { - .state = state, - .index = 0, - }; - - ret = nvif_mthd(&sysfs->ctrl, NVIF_CONTROL_PSTATE_ATTR, - &attr, sizeof(attr)); - if (ret) - return ret; - - if (i < info.count) - snappendf(buf, cnt, "%02x:", attr.state); - else - snappendf(buf, cnt, "%s:", info.pwrsrc == 0 ? "DC" : - info.pwrsrc == 1 ? "AC" : - "--"); - - attr.index = 0; - do { - attr.state = state; - ret = nvif_mthd(&sysfs->ctrl, - NVIF_CONTROL_PSTATE_ATTR, - &attr, sizeof(attr)); - if (ret) - return ret; - - snappendf(buf, cnt, " %s %d", attr.name, attr.min); - if (attr.min != attr.max) - snappendf(buf, cnt, "-%d", attr.max); - snappendf(buf, cnt, " %s", attr.unit); - } while (attr.index); - - if (state >= 0) { - if (info.ustate_ac == state) - snappendf(buf, cnt, " AC"); - if (info.ustate_dc == state) - snappendf(buf, cnt, " DC"); - if (info.pstate == state) - snappendf(buf, cnt, " *"); - } else { - if (info.ustate_ac < -1) - snappendf(buf, cnt, " AC"); - if (info.ustate_dc < -1) - snappendf(buf, cnt, " DC"); - } - - snappendf(buf, cnt, "\n"); - } - - return strlen(b); -} - -static ssize_t -nouveau_sysfs_pstate_set(struct device *d, struct device_attribute *a, - const char *buf, size_t count) -{ - struct nouveau_sysfs *sysfs = nouveau_sysfs(drm_device(d)); - struct nvif_control_pstate_user_v0 args = { .pwrsrc = -EINVAL }; - long value, ret; - char *tmp; - - if ((tmp = strchr(buf, '\n'))) - *tmp = '\0'; - - if (!strncasecmp(buf, "dc:", 3)) { - args.pwrsrc = 0; - buf += 3; - } else - if (!strncasecmp(buf, "ac:", 3)) { - args.pwrsrc = 1; - buf += 3; - } - - if (!strcasecmp(buf, "none")) - args.ustate = NVIF_CONTROL_PSTATE_USER_V0_STATE_UNKNOWN; - else - if (!strcasecmp(buf, "auto")) - args.ustate = NVIF_CONTROL_PSTATE_USER_V0_STATE_PERFMON; - else { - ret = kstrtol(buf, 16, &value); - if (ret) - return ret; - args.ustate = value; - } - - ret = nvif_mthd(&sysfs->ctrl, NVIF_CONTROL_PSTATE_USER, - &args, sizeof(args)); - if (ret < 0) - return ret; - - return count; -} - -static DEVICE_ATTR(pstate, S_IRUGO | S_IWUSR, - nouveau_sysfs_pstate_get, nouveau_sysfs_pstate_set); - -void -nouveau_sysfs_fini(struct drm_device *dev) -{ - struct nouveau_sysfs *sysfs = nouveau_sysfs(dev); - struct nouveau_drm *drm = nouveau_drm(dev); - struct nvif_device *device = &drm->device; - - if (sysfs && sysfs->ctrl.priv) { - device_remove_file(nvxx_device(device)->dev, &dev_attr_pstate); - nvif_object_fini(&sysfs->ctrl); - } - - drm->sysfs = NULL; - kfree(sysfs); -} - -int -nouveau_sysfs_init(struct drm_device *dev) -{ - struct nouveau_drm *drm = nouveau_drm(dev); - struct nvif_device *device = &drm->device; - struct nouveau_sysfs *sysfs; - int ret; - - if (!nouveau_pstate) - return 0; - - sysfs = drm->sysfs = kzalloc(sizeof(*sysfs), GFP_KERNEL); - if (!sysfs) - return -ENOMEM; - - ret = nvif_object_init(&device->object, NVDRM_CONTROL, - NVIF_IOCTL_NEW_V0_CONTROL, NULL, 0, - &sysfs->ctrl); - if (ret == 0) - device_create_file(nvxx_device(device)->dev, &dev_attr_pstate); - - return 0; -} diff --git a/drm/nouveau/nouveau_sysfs.h b/drm/nouveau/nouveau_sysfs.h index 4e5ea92..1da07a8 100644 --- a/drm/nouveau/nouveau_sysfs.h +++ b/drm/nouveau/nouveau_sysfs.h @@ -3,19 +3,6 @@ #include "nouveau_drm.h" -struct nouveau_sysfs { - struct nvif_object ctrl; -}; - -static inline struct nouveau_sysfs * -nouveau_sysfs(struct drm_device *dev) -{ - return nouveau_drm(dev)->sysfs; -} - -int nouveau_sysfs_init(struct drm_device *); -void nouveau_sysfs_fini(struct drm_device *); - extern int nouveau_pstate; #endif -- 2.6.1
Karol Herbst
2015-Oct-13 11:39 UTC
[Nouveau] [PATCH 6/6] sysfs: remove pstate options and remove files
Signed-off-by: Karol Herbst <nouveau at karolherbst.de> --- drm/nouveau/Kbuild | 1 - drm/nouveau/nouveau_drm.c | 2 -- drm/nouveau/nouveau_sysfs.c | 33 --------------------------------- drm/nouveau/nouveau_sysfs.h | 8 -------- 4 files changed, 44 deletions(-) delete mode 100644 drm/nouveau/nouveau_sysfs.c delete mode 100644 drm/nouveau/nouveau_sysfs.h diff --git a/drm/nouveau/Kbuild b/drm/nouveau/Kbuild index a34b437..2527bf4 100644 --- a/drm/nouveau/Kbuild +++ b/drm/nouveau/Kbuild @@ -24,7 +24,6 @@ nouveau-y += nouveau_hwmon.o nouveau-$(CONFIG_COMPAT) += nouveau_ioc32.o nouveau-y += nouveau_nvif.o nouveau-$(CONFIG_NOUVEAU_PLATFORM_DRIVER) += nouveau_platform.o -nouveau-y += nouveau_sysfs.o nouveau-y += nouveau_usif.o # userspace <-> nvif nouveau-y += nouveau_vga.o diff --git a/drm/nouveau/nouveau_drm.c b/drm/nouveau/nouveau_drm.c index 01aa54a..45f8502 100644 --- a/drm/nouveau/nouveau_drm.c +++ b/drm/nouveau/nouveau_drm.c @@ -42,7 +42,6 @@ #include "nouveau_ttm.h" #include "nouveau_gem.h" #include "nouveau_vga.h" -#include "nouveau_sysfs.h" #include "nouveau_hwmon.h" #include "nouveau_acpi.h" #include "nouveau_bios.h" @@ -1004,7 +1003,6 @@ static void nouveau_display_options(void) DRM_DEBUG_DRIVER("... modeset : %d\n", nouveau_modeset); DRM_DEBUG_DRIVER("... runpm : %d\n", nouveau_runtime_pm); DRM_DEBUG_DRIVER("... vram_pushbuf : %d\n", nouveau_vram_pushbuf); - DRM_DEBUG_DRIVER("... pstate : %d\n", nouveau_pstate); } static const struct dev_pm_ops nouveau_pm_ops = { diff --git a/drm/nouveau/nouveau_sysfs.c b/drm/nouveau/nouveau_sysfs.c deleted file mode 100644 index ba89713..0000000 --- a/drm/nouveau/nouveau_sysfs.c +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright 2013 Red Hat Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Authors: Ben Skeggs <bskeggs at redhat.com> - */ - -#include <nvif/os.h> -#include <nvif/class.h> -#include <nvif/ioctl.h> - -#include "nouveau_sysfs.h" - -MODULE_PARM_DESC(pstate, "enable sysfs pstate file, which will be moved in the future"); -int nouveau_pstate; -module_param_named(pstate, nouveau_pstate, int, 0400); diff --git a/drm/nouveau/nouveau_sysfs.h b/drm/nouveau/nouveau_sysfs.h deleted file mode 100644 index 1da07a8..0000000 --- a/drm/nouveau/nouveau_sysfs.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef __NOUVEAU_SYSFS_H__ -#define __NOUVEAU_SYSFS_H__ - -#include "nouveau_drm.h" - -extern int nouveau_pstate; - -#endif -- 2.6.1