[Nouveau] [Bug 54587] Flickering screen on Geforece 4

2012-10-07 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=54587

--- Comment #18 from Vesa p...@mail.com ---
I installed directly NVidia 96.43.23 driver and it works well at full
resolution. It conflicts with Nouveau so I have to use nouveau.modeset=0 in
kernel boot parameters.

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


[Nouveau] [Bug 55744] New: Hangs on resume

2012-10-07 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=55744

  Priority: medium
Bug ID: 55744
  Assignee: nouveau@lists.freedesktop.org
   Summary: Hangs on resume
QA Contact: xorg-t...@lists.x.org
  Severity: major
Classification: Unclassified
OS: Linux (All)
  Reporter: francois5...@gmail.com
  Hardware: x86-64 (AMD64)
Status: NEW
   Version: git
 Component: Driver/nouveau
   Product: xorg

Created attachment 68228
  -- https://bugs.freedesktop.org/attachment.cgi?id=68228action=edit
kernel_log.txt

OS: Archlinux
Drivers: xf86-video-nouveau-git
DE: Gnome-shell 3.6
Kernel: Linux ArchDesktop 3.6.0-1-ARCH #1 SMP PREEMPT Mon Oct 1 20:51:05 CEST
2012 x86_64 GNU/Linux
MB: ASUS P8H67-M Pro
GPU: EVGA GeForce 450 GTS (1GB)

Their is no problem when going to sleep-modes.
When resume the session their are all coloured blocks and stripes, and the
session seems to be hanging/freezing.

I have tried the Linux Kernel 3.5 and Linux Kernel 3.6, latest nouveau-drivers
but the problem still exist.

You can see the problem here:
https://www.dropbox.com/s/dk7xzerzdxzzphq/2012-10-06%2019.26.26.jpg

I never had this issue with the official nvidia drivers, but I haven't tried it
yet because this is running on an UEFI-system.

Hope the issue can be fixed. :)

Thanks.

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


[Nouveau] [Bug 55744] Hangs on resume

2012-10-07 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=55744

francoism francois5...@gmail.com changed:

   What|Removed |Added

   Priority|medium  |high

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


[Nouveau] [Bug 55744] [NVC3] Hangs on resume

2012-10-07 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=55744

Marcin Slusarz marcin.slus...@gmail.com changed:

   What|Removed |Added

Summary|Hangs on resume |[NVC3] Hangs on resume

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


[Nouveau] [PATCH] drm/nv50: wire up pll_calc hook

2012-10-07 Thread Marcin Slusarz
Fixes crash during reclocking.
Call Trace:
 pll_calc == NULL
 calc_pll
 calc_mclk
 nv50_pm_clocks_pre
 nouveau_pm_perflvl_set
 nouveau_pm_trigger
 nouveau_pm_profile_set
 nouveau_pm_set_perflvl
 dev_attr_store
 sysfs_write_file
 vfs_write
 sys_write
 system_call_fastpath

Signed-off-by: Marcin Slusarz marcin.slus...@gmail.com
---

It's weird nobody noticed this... nva3+ code does not set this hook either,
but there's no existing function to wire up...

---
 drivers/gpu/drm/nouveau/core/subdev/clock/nv50.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/nouveau/core/subdev/clock/nv50.c 
b/drivers/gpu/drm/nouveau/core/subdev/clock/nv50.c
index fd181fb..f4147f6 100644
--- a/drivers/gpu/drm/nouveau/core/subdev/clock/nv50.c
+++ b/drivers/gpu/drm/nouveau/core/subdev/clock/nv50.c
@@ -90,6 +90,7 @@ nv50_clock_ctor(struct nouveau_object *parent, struct 
nouveau_object *engine,
return ret;
 
priv-base.pll_set = nv50_clock_pll_set;
+   priv-base.pll_calc = nv04_clock_pll_calc;
return 0;
 }
 
-- 
1.7.12

___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


[Nouveau] [PATCH] drm/nouveau: comment out unused _nouveau_parent_ctor

2012-10-07 Thread Marcin Slusarz
Signed-off-by: Marcin Slusarz marcin.slus...@gmail.com
---
 drivers/gpu/drm/nouveau/core/core/parent.c | 2 ++
 drivers/gpu/drm/nouveau/core/include/core/parent.h | 3 +++
 2 files changed, 5 insertions(+)

diff --git a/drivers/gpu/drm/nouveau/core/core/parent.c 
b/drivers/gpu/drm/nouveau/core/core/parent.c
index a1ea034..0e7733c 100644
--- a/drivers/gpu/drm/nouveau/core/core/parent.c
+++ b/drivers/gpu/drm/nouveau/core/core/parent.c
@@ -101,6 +101,7 @@ nouveau_parent_create_(struct nouveau_object *parent,
return 0;
 }
 
+#if 0
 int
 _nouveau_parent_ctor(struct nouveau_object *parent,
 struct nouveau_object *engine,
@@ -117,6 +118,7 @@ _nouveau_parent_ctor(struct nouveau_object *parent,
 
return 0;
 }
+#endif
 
 void
 nouveau_parent_destroy(struct nouveau_parent *parent)
diff --git a/drivers/gpu/drm/nouveau/core/include/core/parent.h 
b/drivers/gpu/drm/nouveau/core/include/core/parent.h
index d3aa251..58bf6b5 100644
--- a/drivers/gpu/drm/nouveau/core/include/core/parent.h
+++ b/drivers/gpu/drm/nouveau/core/include/core/parent.h
@@ -50,9 +50,12 @@ int  nouveau_parent_create_(struct nouveau_object *, struct 
nouveau_object *,
int size, void **);
 void nouveau_parent_destroy(struct nouveau_parent *);
 
+#if 0
 int  _nouveau_parent_ctor(struct nouveau_object *, struct nouveau_object *,
  struct nouveau_oclass *, void *, u32,
  struct nouveau_object **);
+#endif
+
 void _nouveau_parent_dtor(struct nouveau_object *);
 #define _nouveau_parent_init _nouveau_object_init
 #define _nouveau_parent_fini _nouveau_object_fini
-- 
1.7.12

___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


[Nouveau] [PATCH] drm/nouveau: add some comments about class fields

2012-10-07 Thread Marcin Slusarz
Signed-off-by: Marcin Slusarz marcin.slus...@gmail.com
---
 drivers/gpu/drm/nouveau/core/include/core/engine.h | 4 
 drivers/gpu/drm/nouveau/core/include/core/parent.h | 1 +
 2 files changed, 5 insertions(+)

diff --git a/drivers/gpu/drm/nouveau/core/include/core/engine.h 
b/drivers/gpu/drm/nouveau/core/include/core/engine.h
index 666d06d..09b2828 100644
--- a/drivers/gpu/drm/nouveau/core/include/core/engine.h
+++ b/drivers/gpu/drm/nouveau/core/include/core/engine.h
@@ -9,7 +9,11 @@
 
 struct nouveau_engine {
struct nouveau_subdev base;
+
+   /* context class */
struct nouveau_oclass *cclass;
+
+   /* array of possible subclasses */
struct nouveau_oclass *sclass;
 
struct list_head contexts;
diff --git a/drivers/gpu/drm/nouveau/core/include/core/parent.h 
b/drivers/gpu/drm/nouveau/core/include/core/parent.h
index 58bf6b5..31a32b0 100644
--- a/drivers/gpu/drm/nouveau/core/include/core/parent.h
+++ b/drivers/gpu/drm/nouveau/core/include/core/parent.h
@@ -13,6 +13,7 @@ struct nouveau_sclass {
 struct nouveau_parent {
struct nouveau_object base;
 
+   /* subclass */
struct nouveau_sclass *sclass;
u32 engine;
 
-- 
1.7.12

___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


[Nouveau] [PATCH] drm/nouveau: remove 1 sclass support from nouveau_parent_create_

2012-10-07 Thread Marcin Slusarz
It's unused (only one codepath passes sclass at all and it's always one),
broken (overwrites the same field, leaking previous one) and confusing.

Signed-off-by: Marcin Slusarz marcin.slus...@gmail.com
---
 drivers/gpu/drm/nouveau/core/core/client.c   | 2 +-
 drivers/gpu/drm/nouveau/core/core/parent.c   | 3 +--
 drivers/gpu/drm/nouveau/core/include/subdev/device.h | 2 +-
 drivers/gpu/drm/nouveau/core/subdev/device/base.c| 6 +++---
 4 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/core/core/client.c 
b/drivers/gpu/drm/nouveau/core/core/client.c
index c617f04..87850ec 100644
--- a/drivers/gpu/drm/nouveau/core/core/client.c
+++ b/drivers/gpu/drm/nouveau/core/core/client.c
@@ -58,7 +58,7 @@ nouveau_client_create_(const char *name, u64 devname, const 
char *cfg,
return -ENODEV;
 
ret = nouveau_namedb_create_(NULL, NULL, nouveau_client_oclass,
-NV_CLIENT_CLASS, nouveau_device_sclass,
+NV_CLIENT_CLASS, nouveau_device_sclass,
 0, length, pobject);
client = *pobject;
if (ret)
diff --git a/drivers/gpu/drm/nouveau/core/core/parent.c 
b/drivers/gpu/drm/nouveau/core/core/parent.c
index 0e7733c..1a48e58 100644
--- a/drivers/gpu/drm/nouveau/core/core/parent.c
+++ b/drivers/gpu/drm/nouveau/core/core/parent.c
@@ -85,7 +85,7 @@ nouveau_parent_create_(struct nouveau_object *parent,
if (ret)
return ret;
 
-   while (sclass  sclass-ofuncs) {
+   if (sclass  sclass-ofuncs) {
nclass = kzalloc(sizeof(*nclass), GFP_KERNEL);
if (!nclass)
return -ENOMEM;
@@ -94,7 +94,6 @@ nouveau_parent_create_(struct nouveau_object *parent,
object-sclass = nclass;
nclass-engine = engine ? nv_engine(engine) : NULL;
nclass-oclass = sclass;
-   sclass++;
}
 
object-engine = engcls;
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/device.h 
b/drivers/gpu/drm/nouveau/core/include/subdev/device.h
index c9e4c4a..0966f33 100644
--- a/drivers/gpu/drm/nouveau/core/include/subdev/device.h
+++ b/drivers/gpu/drm/nouveau/core/include/subdev/device.h
@@ -18,7 +18,7 @@ int nv50_identify(struct nouveau_device *);
 int nvc0_identify(struct nouveau_device *);
 int nve0_identify(struct nouveau_device *);
 
-extern struct nouveau_oclass nouveau_device_sclass[];
+extern struct nouveau_oclass nouveau_device_sclass;
 struct nouveau_device *nouveau_device_find(u64 name);
 
 #endif
diff --git a/drivers/gpu/drm/nouveau/core/subdev/device/base.c 
b/drivers/gpu/drm/nouveau/core/subdev/device/base.c
index 2cec8a8..352a940 100644
--- a/drivers/gpu/drm/nouveau/core/subdev/device/base.c
+++ b/drivers/gpu/drm/nouveau/core/subdev/device/base.c
@@ -409,9 +409,9 @@ nouveau_devobj_ofuncs = {
  * nouveau_device: engine functions
  */
 struct nouveau_oclass
-nouveau_device_sclass[] = {
-   { 0x0080, nouveau_devobj_ofuncs },
-   {}
+nouveau_device_sclass = {
+   .handle = 0x0080,
+   .ofuncs = nouveau_devobj_ofuncs,
 };
 
 static void
-- 
1.7.12

___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


[Nouveau] [PATCH] drm/nouveau: fix error handling in core/core object creation functions

2012-10-07 Thread Marcin Slusarz
Signed-off-by: Marcin Slusarz marcin.slus...@gmail.com
---
This patch relies on drm/nouveau: remove 1 sclass support from 
nouveau_parent_create_.

There are *many* *more* code paths without proper error handling - I counted
at least 106 in 41 functions. If someone would like to do a bit of janitorial
work I marked those code paths and uploaded patch here:
http://people.freedesktop.org/~mslusarz/0001-codepaths-without-error-handling.patch
(Please let me know if you are going to fix those to not duplicate work)
---
 drivers/gpu/drm/nouveau/core/core/engine.c | 1 +
 drivers/gpu/drm/nouveau/core/core/gpuobj.c | 9 ++---
 drivers/gpu/drm/nouveau/core/core/parent.c | 4 +++-
 3 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/core/core/engine.c 
b/drivers/gpu/drm/nouveau/core/core/engine.c
index 09b3bd5..4319854 100644
--- a/drivers/gpu/drm/nouveau/core/core/engine.c
+++ b/drivers/gpu/drm/nouveau/core/core/engine.c
@@ -44,6 +44,7 @@ nouveau_engine_create_(struct nouveau_object *parent,
return ret;
 
if (!nouveau_boolopt(device-cfgopt, iname, enable)) {
+   nouveau_subdev_destroy(engine-base);
if (!enable)
nv_warn(engine, disabled, %s=1 to enable\n, iname);
return -ENODEV;
diff --git a/drivers/gpu/drm/nouveau/core/core/gpuobj.c 
b/drivers/gpu/drm/nouveau/core/core/gpuobj.c
index c2a7608..6254d52 100644
--- a/drivers/gpu/drm/nouveau/core/core/gpuobj.c
+++ b/drivers/gpu/drm/nouveau/core/core/gpuobj.c
@@ -40,7 +40,7 @@ nouveau_gpuobj_destroy(struct nouveau_gpuobj *gpuobj)
}
 
if (gpuobj-heap.block_size)
-   nouveau_mm_fini(gpuobj-heap);
+   WARN_ON(nouveau_mm_fini(gpuobj-heap));
 
nouveau_object_destroy(gpuobj-base);
 }
@@ -113,7 +113,7 @@ nouveau_gpuobj_create_(struct nouveau_object *parent,
ret = nouveau_mm_head(heap, 1, size, size,
  max(align, (u32)1), gpuobj-node);
if (ret)
-   return ret;
+   goto err;
 
gpuobj-addr += gpuobj-node-offset;
}
@@ -121,7 +121,7 @@ nouveau_gpuobj_create_(struct nouveau_object *parent,
if (gpuobj-flags  NVOBJ_FLAG_HEAP) {
ret = nouveau_mm_init(gpuobj-heap, 0, gpuobj-size, 1);
if (ret)
-   return ret;
+   goto err;
}
 
if (flags  NVOBJ_FLAG_ZERO_ALLOC) {
@@ -130,6 +130,9 @@ nouveau_gpuobj_create_(struct nouveau_object *parent,
}
 
return ret;
+err:
+   nouveau_gpuobj_destroy(gpuobj);
+   return ret;
 }
 
 struct nouveau_gpuobj_class {
diff --git a/drivers/gpu/drm/nouveau/core/core/parent.c 
b/drivers/gpu/drm/nouveau/core/core/parent.c
index 1a48e58..d2ea7c2 100644
--- a/drivers/gpu/drm/nouveau/core/core/parent.c
+++ b/drivers/gpu/drm/nouveau/core/core/parent.c
@@ -87,8 +87,10 @@ nouveau_parent_create_(struct nouveau_object *parent,
 
if (sclass  sclass-ofuncs) {
nclass = kzalloc(sizeof(*nclass), GFP_KERNEL);
-   if (!nclass)
+   if (!nclass) {
+   nouveau_parent_destroy(object);
return -ENOMEM;
+   }
 
nclass-sclass = object-sclass;
object-sclass = nclass;
-- 
1.7.12

___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


Re: [Nouveau] [PATCH] drm/nouveau: fix error handling in core/core object creation functions

2012-10-07 Thread Marcin Slusarz
On Mon, Oct 08, 2012 at 12:49:31AM +0200, Marcin Slusarz wrote:
 Signed-off-by: Marcin Slusarz marcin.slus...@gmail.com
 ---
 This patch relies on drm/nouveau: remove 1 sclass support from 
 nouveau_parent_create_.
 
 There are *many* *more* code paths without proper error handling - I counted
 at least 106 in 41 functions. If someone would like to do a bit of janitorial
 work I marked those code paths and uploaded patch here:
 http://people.freedesktop.org/~mslusarz/0001-codepaths-without-error-handling.patch
 (Please let me know if you are going to fix those to not duplicate work)
 ---
  drivers/gpu/drm/nouveau/core/core/engine.c | 1 +
  drivers/gpu/drm/nouveau/core/core/gpuobj.c | 9 ++---
  drivers/gpu/drm/nouveau/core/core/parent.c | 4 +++-
  3 files changed, 10 insertions(+), 4 deletions(-)
 
 diff --git a/drivers/gpu/drm/nouveau/core/core/engine.c 
 b/drivers/gpu/drm/nouveau/core/core/engine.c
 index 09b3bd5..4319854 100644
 --- a/drivers/gpu/drm/nouveau/core/core/engine.c
 +++ b/drivers/gpu/drm/nouveau/core/core/engine.c
 @@ -44,6 +44,7 @@ nouveau_engine_create_(struct nouveau_object *parent,
   return ret;
  
   if (!nouveau_boolopt(device-cfgopt, iname, enable)) {
 + nouveau_subdev_destroy(engine-base);
   if (!enable)
   nv_warn(engine, disabled, %s=1 to enable\n, iname);
   return -ENODEV;
 diff --git a/drivers/gpu/drm/nouveau/core/core/gpuobj.c 
 b/drivers/gpu/drm/nouveau/core/core/gpuobj.c
 index c2a7608..6254d52 100644
 --- a/drivers/gpu/drm/nouveau/core/core/gpuobj.c
 +++ b/drivers/gpu/drm/nouveau/core/core/gpuobj.c
 @@ -40,7 +40,7 @@ nouveau_gpuobj_destroy(struct nouveau_gpuobj *gpuobj)
   }
  
   if (gpuobj-heap.block_size)
 - nouveau_mm_fini(gpuobj-heap);
 + WARN_ON(nouveau_mm_fini(gpuobj-heap));

Ha! This is triggering on channel close. Maybe it's the leak which is
preventing piglit from finishing...

  
   nouveau_object_destroy(gpuobj-base);
  }
 @@ -113,7 +113,7 @@ nouveau_gpuobj_create_(struct nouveau_object *parent,
   ret = nouveau_mm_head(heap, 1, size, size,
 max(align, (u32)1), gpuobj-node);
   if (ret)
 - return ret;
 + goto err;
  
   gpuobj-addr += gpuobj-node-offset;
   }
 @@ -121,7 +121,7 @@ nouveau_gpuobj_create_(struct nouveau_object *parent,
   if (gpuobj-flags  NVOBJ_FLAG_HEAP) {
   ret = nouveau_mm_init(gpuobj-heap, 0, gpuobj-size, 1);
   if (ret)
 - return ret;
 + goto err;
   }
  
   if (flags  NVOBJ_FLAG_ZERO_ALLOC) {
 @@ -130,6 +130,9 @@ nouveau_gpuobj_create_(struct nouveau_object *parent,
   }
  
   return ret;
 +err:
 + nouveau_gpuobj_destroy(gpuobj);
 + return ret;
  }
  
  struct nouveau_gpuobj_class {
 diff --git a/drivers/gpu/drm/nouveau/core/core/parent.c 
 b/drivers/gpu/drm/nouveau/core/core/parent.c
 index 1a48e58..d2ea7c2 100644
 --- a/drivers/gpu/drm/nouveau/core/core/parent.c
 +++ b/drivers/gpu/drm/nouveau/core/core/parent.c
 @@ -87,8 +87,10 @@ nouveau_parent_create_(struct nouveau_object *parent,
  
   if (sclass  sclass-ofuncs) {
   nclass = kzalloc(sizeof(*nclass), GFP_KERNEL);
 - if (!nclass)
 + if (!nclass) {
 + nouveau_parent_destroy(object);
   return -ENOMEM;
 + }
  
   nclass-sclass = object-sclass;
   object-sclass = nclass;
 -- 
 1.7.12
 
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


Re: [Nouveau] [PATCH] drm/nouveau: remove 1 sclass support from nouveau_parent_create_

2012-10-07 Thread Ben Skeggs
On Mon, Oct 08, 2012 at 12:49:30AM +0200, Marcin Slusarz wrote:
 It's unused (only one codepath passes sclass at all and it's always one),
 broken (overwrites the same field, leaking previous one) and confusing.
It's only *currently* unused, I have WIP code in branches that uses it,
otherwise it wouldn't still exist :)

I will take a look today at the claims it's broken, it wasn't at some
point but may have got busted along the way somehow.

Thanks!
Ben.

 
 Signed-off-by: Marcin Slusarz marcin.slus...@gmail.com
 ---
  drivers/gpu/drm/nouveau/core/core/client.c   | 2 +-
  drivers/gpu/drm/nouveau/core/core/parent.c   | 3 +--
  drivers/gpu/drm/nouveau/core/include/subdev/device.h | 2 +-
  drivers/gpu/drm/nouveau/core/subdev/device/base.c| 6 +++---
  4 files changed, 6 insertions(+), 7 deletions(-)
 
 diff --git a/drivers/gpu/drm/nouveau/core/core/client.c 
 b/drivers/gpu/drm/nouveau/core/core/client.c
 index c617f04..87850ec 100644
 --- a/drivers/gpu/drm/nouveau/core/core/client.c
 +++ b/drivers/gpu/drm/nouveau/core/core/client.c
 @@ -58,7 +58,7 @@ nouveau_client_create_(const char *name, u64 devname, const 
 char *cfg,
   return -ENODEV;
  
   ret = nouveau_namedb_create_(NULL, NULL, nouveau_client_oclass,
 -  NV_CLIENT_CLASS, nouveau_device_sclass,
 +  NV_CLIENT_CLASS, nouveau_device_sclass,
0, length, pobject);
   client = *pobject;
   if (ret)
 diff --git a/drivers/gpu/drm/nouveau/core/core/parent.c 
 b/drivers/gpu/drm/nouveau/core/core/parent.c
 index 0e7733c..1a48e58 100644
 --- a/drivers/gpu/drm/nouveau/core/core/parent.c
 +++ b/drivers/gpu/drm/nouveau/core/core/parent.c
 @@ -85,7 +85,7 @@ nouveau_parent_create_(struct nouveau_object *parent,
   if (ret)
   return ret;
  
 - while (sclass  sclass-ofuncs) {
 + if (sclass  sclass-ofuncs) {
   nclass = kzalloc(sizeof(*nclass), GFP_KERNEL);
   if (!nclass)
   return -ENOMEM;
 @@ -94,7 +94,6 @@ nouveau_parent_create_(struct nouveau_object *parent,
   object-sclass = nclass;
   nclass-engine = engine ? nv_engine(engine) : NULL;
   nclass-oclass = sclass;
 - sclass++;
   }
  
   object-engine = engcls;
 diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/device.h 
 b/drivers/gpu/drm/nouveau/core/include/subdev/device.h
 index c9e4c4a..0966f33 100644
 --- a/drivers/gpu/drm/nouveau/core/include/subdev/device.h
 +++ b/drivers/gpu/drm/nouveau/core/include/subdev/device.h
 @@ -18,7 +18,7 @@ int nv50_identify(struct nouveau_device *);
  int nvc0_identify(struct nouveau_device *);
  int nve0_identify(struct nouveau_device *);
  
 -extern struct nouveau_oclass nouveau_device_sclass[];
 +extern struct nouveau_oclass nouveau_device_sclass;
  struct nouveau_device *nouveau_device_find(u64 name);
  
  #endif
 diff --git a/drivers/gpu/drm/nouveau/core/subdev/device/base.c 
 b/drivers/gpu/drm/nouveau/core/subdev/device/base.c
 index 2cec8a8..352a940 100644
 --- a/drivers/gpu/drm/nouveau/core/subdev/device/base.c
 +++ b/drivers/gpu/drm/nouveau/core/subdev/device/base.c
 @@ -409,9 +409,9 @@ nouveau_devobj_ofuncs = {
   * nouveau_device: engine functions
   
 */
  struct nouveau_oclass
 -nouveau_device_sclass[] = {
 - { 0x0080, nouveau_devobj_ofuncs },
 - {}
 +nouveau_device_sclass = {
 + .handle = 0x0080,
 + .ofuncs = nouveau_devobj_ofuncs,
  };
  
  static void
 -- 
 1.7.12
 
 ___
 Nouveau mailing list
 Nouveau@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/nouveau
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


Re: [Nouveau] [PATCH] drm/nouveau: comment out unused _nouveau_parent_ctor

2012-10-07 Thread Ben Skeggs
On Mon, Oct 08, 2012 at 12:49:28AM +0200, Marcin Slusarz wrote:
 Signed-off-by: Marcin Slusarz marcin.slus...@gmail.com
 ---
  drivers/gpu/drm/nouveau/core/core/parent.c | 2 ++
  drivers/gpu/drm/nouveau/core/include/core/parent.h | 3 +++
  2 files changed, 5 insertions(+)
Feel free to just kill it completely.  There's a few bits and pieces
of left-overs like this around the place, I'll be killing them as
I run across them too.

What do you think?

Ben.

 
 diff --git a/drivers/gpu/drm/nouveau/core/core/parent.c 
 b/drivers/gpu/drm/nouveau/core/core/parent.c
 index a1ea034..0e7733c 100644
 --- a/drivers/gpu/drm/nouveau/core/core/parent.c
 +++ b/drivers/gpu/drm/nouveau/core/core/parent.c
 @@ -101,6 +101,7 @@ nouveau_parent_create_(struct nouveau_object *parent,
   return 0;
  }
  
 +#if 0
  int
  _nouveau_parent_ctor(struct nouveau_object *parent,
struct nouveau_object *engine,
 @@ -117,6 +118,7 @@ _nouveau_parent_ctor(struct nouveau_object *parent,
  
   return 0;
  }
 +#endif
  
  void
  nouveau_parent_destroy(struct nouveau_parent *parent)
 diff --git a/drivers/gpu/drm/nouveau/core/include/core/parent.h 
 b/drivers/gpu/drm/nouveau/core/include/core/parent.h
 index d3aa251..58bf6b5 100644
 --- a/drivers/gpu/drm/nouveau/core/include/core/parent.h
 +++ b/drivers/gpu/drm/nouveau/core/include/core/parent.h
 @@ -50,9 +50,12 @@ int  nouveau_parent_create_(struct nouveau_object *, 
 struct nouveau_object *,
   int size, void **);
  void nouveau_parent_destroy(struct nouveau_parent *);
  
 +#if 0
  int  _nouveau_parent_ctor(struct nouveau_object *, struct nouveau_object *,
 struct nouveau_oclass *, void *, u32,
 struct nouveau_object **);
 +#endif
 +
  void _nouveau_parent_dtor(struct nouveau_object *);
  #define _nouveau_parent_init _nouveau_object_init
  #define _nouveau_parent_fini _nouveau_object_fini
 -- 
 1.7.12
 
 ___
 Nouveau mailing list
 Nouveau@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/nouveau
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau