diff options
| -rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_sysfs.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_sysfs.c b/drivers/gpu/drm/nouveau/nouveau_sysfs.c index 32a23895abd5..3c6962d15b26 100644 --- a/drivers/gpu/drm/nouveau/nouveau_sysfs.c +++ b/drivers/gpu/drm/nouveau/nouveau_sysfs.c | |||
| @@ -28,6 +28,10 @@ | |||
| 28 | 28 | ||
| 29 | #include "nouveau_sysfs.h" | 29 | #include "nouveau_sysfs.h" |
| 30 | 30 | ||
| 31 | MODULE_PARM_DESC(pstate, "enable sysfs pstate file, which will be moved in the future"); | ||
| 32 | static int nouveau_pstate; | ||
| 33 | module_param_named(pstate, nouveau_pstate, int, 0400); | ||
| 34 | |||
| 31 | static inline struct drm_device * | 35 | static inline struct drm_device * |
| 32 | drm_device(struct device *d) | 36 | drm_device(struct device *d) |
| 33 | { | 37 | { |
| @@ -160,7 +164,7 @@ nouveau_sysfs_fini(struct drm_device *dev) | |||
| 160 | struct nouveau_drm *drm = nouveau_drm(dev); | 164 | struct nouveau_drm *drm = nouveau_drm(dev); |
| 161 | struct nvif_device *device = &drm->device; | 165 | struct nvif_device *device = &drm->device; |
| 162 | 166 | ||
| 163 | if (sysfs->ctrl.priv) { | 167 | if (sysfs && sysfs->ctrl.priv) { |
| 164 | device_remove_file(nv_device_base(nvkm_device(device)), &dev_attr_pstate); | 168 | device_remove_file(nv_device_base(nvkm_device(device)), &dev_attr_pstate); |
| 165 | nvif_object_fini(&sysfs->ctrl); | 169 | nvif_object_fini(&sysfs->ctrl); |
| 166 | } | 170 | } |
| @@ -177,6 +181,9 @@ nouveau_sysfs_init(struct drm_device *dev) | |||
| 177 | struct nouveau_sysfs *sysfs; | 181 | struct nouveau_sysfs *sysfs; |
| 178 | int ret; | 182 | int ret; |
| 179 | 183 | ||
| 184 | if (!nouveau_pstate) | ||
| 185 | return 0; | ||
| 186 | |||
| 180 | sysfs = drm->sysfs = kzalloc(sizeof(*sysfs), GFP_KERNEL); | 187 | sysfs = drm->sysfs = kzalloc(sizeof(*sysfs), GFP_KERNEL); |
| 181 | if (!sysfs) | 188 | if (!sysfs) |
| 182 | return -ENOMEM; | 189 | return -ENOMEM; |
