Marcin Slusarz
2012-May-27  20:00 UTC
[Nouveau] [PATCH] drm/nouveau/pm: fix oops on get/set_perflvl
Regression from "drm/nouveau: very scary looking cleanup commit"
Signed-off-by: Marcin Slusarz <marcin.slusarz at gmail.com>
---
 drivers/gpu/drm/nouveau/nouveau_pm.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/nouveau_pm.c
b/drivers/gpu/drm/nouveau/nouveau_pm.c
index 9dd34fe..5539482 100644
--- a/drivers/gpu/drm/nouveau/nouveau_pm.c
+++ b/drivers/gpu/drm/nouveau/nouveau_pm.c
@@ -306,7 +306,8 @@ nouveau_pm_get_perflvl_info(struct device *d,
 static ssize_t
 nouveau_pm_get_perflvl(struct device *d, struct device_attribute *a, char *buf)
 {
-	struct nouveau_device *ndev = pci_get_drvdata(to_pci_dev(d));
+	struct drm_device *dev = pci_get_drvdata(to_pci_dev(d));
+	struct nouveau_device *ndev = nouveau_device(dev);
 	struct nouveau_pm_engine *pm = &ndev->subsys.pm;
 	struct nouveau_pm_level cur;
 	int len = PAGE_SIZE, ret;
@@ -327,7 +328,8 @@ static ssize_t
 nouveau_pm_set_perflvl(struct device *d, struct device_attribute *a,
 		       const char *buf, size_t count)
 {
-	struct nouveau_device *ndev = pci_get_drvdata(to_pci_dev(d));
+	struct drm_device *dev = pci_get_drvdata(to_pci_dev(d));
+	struct nouveau_device *ndev = nouveau_device(dev);
 	int ret;
 
 	ret = nouveau_pm_profile_set(ndev, buf);
-- 
1.7.8.6
Ben Skeggs
2012-May-29  11:15 UTC
[Nouveau] [PATCH] drm/nouveau/pm: fix oops on get/set_perflvl
On Sun, May 27, 2012 at 10:00:41PM +0200, Marcin Slusarz wrote:> Regression from "drm/nouveau: very scary looking cleanup commit"Thanks, pushed.> > Signed-off-by: Marcin Slusarz <marcin.slusarz at gmail.com> > --- > drivers/gpu/drm/nouveau/nouveau_pm.c | 6 ++++-- > 1 files changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/nouveau/nouveau_pm.c b/drivers/gpu/drm/nouveau/nouveau_pm.c > index 9dd34fe..5539482 100644 > --- a/drivers/gpu/drm/nouveau/nouveau_pm.c > +++ b/drivers/gpu/drm/nouveau/nouveau_pm.c > @@ -306,7 +306,8 @@ nouveau_pm_get_perflvl_info(struct device *d, > static ssize_t > nouveau_pm_get_perflvl(struct device *d, struct device_attribute *a, char *buf) > { > - struct nouveau_device *ndev = pci_get_drvdata(to_pci_dev(d)); > + struct drm_device *dev = pci_get_drvdata(to_pci_dev(d)); > + struct nouveau_device *ndev = nouveau_device(dev); > struct nouveau_pm_engine *pm = &ndev->subsys.pm; > struct nouveau_pm_level cur; > int len = PAGE_SIZE, ret; > @@ -327,7 +328,8 @@ static ssize_t > nouveau_pm_set_perflvl(struct device *d, struct device_attribute *a, > const char *buf, size_t count) > { > - struct nouveau_device *ndev = pci_get_drvdata(to_pci_dev(d)); > + struct drm_device *dev = pci_get_drvdata(to_pci_dev(d)); > + struct nouveau_device *ndev = nouveau_device(dev); > int ret; > > ret = nouveau_pm_profile_set(ndev, buf); > -- > 1.7.8.6 >