[Nouveau] [Bug 72979] garbage / parts of previous session displayed on login screen after logout or reboot

2014-09-08 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=72979

--- Comment #3 from Vincent Lefevre vincent-...@vinc17.net ---
After the latest Debian/unstable upgrade and reboot, in particular with the
xserver-xorg-video-nouveau package upgraded from 1:1.0.10-1+b2 to 1:1.0.11-1,
it seems that I can no longer reproduce this problem. I've tried several times
after logging out, and only once after the reboot due to the upgrade.

-- 
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] Extend reserved memory on 0xfc000000

2014-09-08 Thread asd
Hi

This patch correct on usb keyboard acces on number when enter via Ctrl
+ Alt + F12 on vt after Xorg running.Without this patch when enter on
 vt vas unable  to use numbers from NumLock  an only numbers from main
 keyboard.

 nouveau  [  DEVICE][:01:00.0] BOOT0  : 0x046f00a3
 nouveau  [  DEVICE][:01:00.0] Chipset: G72 (NV46)
 nouveau [  DEVICE][:01:00.0] Family : NV40
 nouveau  [   VBIOS][:01:00.0] checking PRAMIN for image...
 nouveau [   VBIOS][:01:00.0] ... appears to be valid
 nouveau  [   VBIOS][:01:00.0] using image from PRAMIN
 nouveau  [   VBIOS][:01:00.0] BIT signature found
 nouveau
[   VBIOS][:01:00.0] version 05.72.22.43.00Index: master_local/drivers/gpu/drm/nouveau/core/subdev/instmem/nv40.c
===
--- master_local.orig/drivers/gpu/drm/nouveau/core/subdev/instmem/nv40.c	2014-08-27 19:01:53.0 +0300
+++ master_local/drivers/gpu/drm/nouveau/core/subdev/instmem/nv40.c	2014-09-08 11:51:40.397537299 +0300
@@ -64,14 +64,14 @@
 		bar = 2;
 	else
 		bar = 3;
-
+	printk(KERN_INFO resource start is %x\n, pci_resource_start(pdev, bar));
 	priv-iomem = ioremap(pci_resource_start(pdev, bar),
 			  pci_resource_len(pdev, bar));
 	if (!priv-iomem) {
 		nv_error(priv, unable to map PRAMIN BAR\n);
 		return -EFAULT;
 	}
-
+	
 	/* PRAMIN aperture maps over the end of vram, reserve enough space
 	 * to fit graphics contexts for every channel, the magics come
 	 * from engine/graph/nv40.c
@@ -90,11 +90,12 @@
 
 	ret = nouveau_mm_init(priv-heap, 0, priv-base.reserved, 1);
 	if (ret)
-		return ret;
+			return ret;
 
 	/* 0x0-0x1: reserve for probable vbios image */
 	ret = nouveau_gpuobj_new(nv_object(priv), NULL, 0x1, 0, 0,
-priv-vbios);
+priv-vbios); 
+
 	if (ret)
 		return ret;
 
@@ -102,7 +103,7 @@
 	ret = nouveau_ramht_new(nv_object(priv), NULL, 0x08000, 0,
 			   priv-ramht);
 	if (ret)
-		return ret;
+		return ret; 
 
 	/* 0x18000-0x18200: reserve for RAMRO
 	 * 0x18200-0x2: padding
@@ -114,11 +115,12 @@
 
 	/* 0x2-0x21000: reserve for RAMFC
 	 * 0x21000-0x4: padding and some unknown crap
+	 *  0x5 is good for keyboard
 	 */
-	ret = nouveau_gpuobj_new(nv_object(priv), NULL, 0x2, 0,
+	ret = nouveau_gpuobj_new(nv_object(priv), NULL, 0x5, 0,
  NVOBJ_FLAG_ZERO_ALLOC, priv-ramfc);
 	if (ret)
-		return ret;
+		return ret; 
 
 	return 0;
 }
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


Re: [Nouveau] Extend reserved memory on 0xfc000000

2014-09-08 Thread Martin Peres

Le 08/09/2014 11:12, asd a écrit :

Hi

This patch correct on usb keyboard acces on number when enter via Ctrl
+ Alt + F12 on vt after Xorg running.Without this patch when enter on
  vt vas unable  to use numbers from NumLock  an only numbers from main
  keyboard.

  nouveau  [  DEVICE][:01:00.0] BOOT0  : 0x046f00a3
  nouveau  [  DEVICE][:01:00.0] Chipset: G72 (NV46)
  nouveau [  DEVICE][:01:00.0] Family : NV40
  nouveau  [   VBIOS][:01:00.0] checking PRAMIN for image...
  nouveau [   VBIOS][:01:00.0] ... appears to be valid
  nouveau  [   VBIOS][:01:00.0] using image from PRAMIN
  nouveau  [   VBIOS][:01:00.0] BIT signature found
  nouveau
[   VBIOS][:01:00.0] version 05.72.22.43.00



Seems like a useful patch but please clean it up the patch, many changes 
are unnecessary.


Please also send the patch with git send-email so as we can comment on 
the patch inline :)

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


[Nouveau] Extend reserved memory on 0xfc000000

2014-09-08 Thread asd
Hi

This patch correct on usb keyboard acces on number when enter via Ctrl
+ Alt + F12 on vt after Xorg running.Without this patch when enter on
 vt vas unable  to use numbers from NumLock  an only numbers from main
 keyboard.

 nouveau  [  DEVICE][:01:00.0] BOOT0  : 0x046f00a3
 nouveau  [  DEVICE][:01:00.0] Chipset: G72 (NV46)
 nouveau [  DEVICE][:01:00.0] Family : NV40
 nouveau  [   VBIOS][:01:00.0] checking PRAMIN for image...
 nouveau [   VBIOS][:01:00.0] ... appears to be valid
 nouveau  [   VBIOS][:01:00.0] using image from PRAMIN
 nouveau  [   VBIOS][:01:00.0] BIT signature found
 nouveau
[   VBIOS][:01:00.0] version 05.72.22.43.00Index: master_local/drivers/gpu/drm/nouveau/core/subdev/instmem/nv40.c
===
--- master_local.orig/drivers/gpu/drm/nouveau/core/subdev/instmem/nv40.c	2014-08-27 19:01:53.0 +0300
+++ master_local/drivers/gpu/drm/nouveau/core/subdev/instmem/nv40.c	2014-09-08 11:51:40.397537299 +0300
@@ -64,14 +64,14 @@
 		bar = 2;
 	else
 		bar = 3;
-
+	printk(KERN_INFO resource start is %x\n, pci_resource_start(pdev, bar));
 	priv-iomem = ioremap(pci_resource_start(pdev, bar),
 			  pci_resource_len(pdev, bar));
 	if (!priv-iomem) {
 		nv_error(priv, unable to map PRAMIN BAR\n);
 		return -EFAULT;
 	}
-
+	
 	/* PRAMIN aperture maps over the end of vram, reserve enough space
 	 * to fit graphics contexts for every channel, the magics come
 	 * from engine/graph/nv40.c
@@ -90,11 +90,12 @@
 
 	ret = nouveau_mm_init(priv-heap, 0, priv-base.reserved, 1);
 	if (ret)
-		return ret;
+			return ret;
 
 	/* 0x0-0x1: reserve for probable vbios image */
 	ret = nouveau_gpuobj_new(nv_object(priv), NULL, 0x1, 0, 0,
-priv-vbios);
+priv-vbios); 
+
 	if (ret)
 		return ret;
 
@@ -102,7 +103,7 @@
 	ret = nouveau_ramht_new(nv_object(priv), NULL, 0x08000, 0,
 			   priv-ramht);
 	if (ret)
-		return ret;
+		return ret; 
 
 	/* 0x18000-0x18200: reserve for RAMRO
 	 * 0x18200-0x2: padding
@@ -114,11 +115,12 @@
 
 	/* 0x2-0x21000: reserve for RAMFC
 	 * 0x21000-0x4: padding and some unknown crap
+	 *  0x5 is good for keyboard
 	 */
-	ret = nouveau_gpuobj_new(nv_object(priv), NULL, 0x2, 0,
+	ret = nouveau_gpuobj_new(nv_object(priv), NULL, 0x5, 0,
  NVOBJ_FLAG_ZERO_ALLOC, priv-ramfc);
 	if (ret)
-		return ret;
+		return ret; 
 
 	return 0;
 }
___
Nouveau mailing list
Nouveau@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/nouveau


Re: [Nouveau] [PATCH 1/8] nv50/display: Set VBLANK time in modeset script

2014-09-08 Thread Roy Spliet
Hey Ben,

Thanks, I'll keep commit message formatting in mind. Did you also review the 
re-resend of the clock/nva3: Pause the GPU before reclocking patch I did 
earlier?
As for moving the code to the rest of the timing calculation: you have the 
final call of course, but it seemed to me the calculation is simply redundant 
for cards in the NVD0 class and upwards because the register it sets 
disappeared.
Cheers,

Roy

--- original message ---
From: Ben Skeggs skeg...@gmail.com
Date: 00:49:03 06-09-2014
To: Roy Spliet rspl...@eclipso.eu
Subject: Re: [PATCH 1/8] nv50/display: Set VBLANK time in modeset script

 On Fri, Sep 5, 2014 at 12:58 AM, Roy Spliet rspl...@eclipso.eu wrote:

  Solves blinking on reclocking memory. The value set is an underestimate,
 but with non-reduced vblanking this should give us plenty of time
 Hey Roy,

 I've merged all (squashed the kepler change into the commit where it's
 needed too) except this patch, which needs to be rebased on top of
 3.17-rc.  There's one minor nitpick inline too.

 Please also try and watch the wrapping of commit messages, I added
 newlines to make it easier to read them in git-log output.

 Thanks,
 Ben.

 
  Signed-off-by: Roy Spliet rspl...@eclipso.eu
  ---
   drivers/gpu/drm/nouveau/nv50_display.c | 12 +---
   1 file changed, 9 insertions(+), 3 deletions(-)
 
  diff --git a/drivers/gpu/drm/nouveau/nv50_display.c 
  b/drivers/gpu/drm/nouveau/nv50_display.c

  index 4c534b7..cfa7ecf 100644
  --- a/drivers/gpu/drm/nouveau/nv50_display.c
  +++ b/drivers/gpu/drm/nouveau/nv50_display.c
  @@ -1070,7 +1070,7 @@ nv50_crtc_mode_set(struct drm_crtc *crtc, struct
 drm_display_mode *umode,
  u32 vscan = (mode-flags  DRM_MODE_FLAG_DBLSCAN) ? 2
 : 1;
  u32 hactive, hsynce, hbackp, hfrontp, hblanke, hblanks;
  u32 vactive, vsynce, vbackp, vfrontp, vblanke, vblanks;
  -   u32 vblan2e = 0, vblan2s = 1;
  +   u32 vblan2e = 0, vblan2s = 1, vblankus;
  u32 *push;
  int ret;
 
  @@ -1087,6 +1087,7 @@ nv50_crtc_mode_set(struct drm_crtc *crtc, struct
 drm_display_mode *umode,
  vblanke = vsynce + vbackp;
  vfrontp = (mode-vsync_start - mode-vdisplay) * vscan
 / ilace;
  vblanks = vactive - vfrontp - 1;
  +
  if (mode-flags  DRM_MODE_FLAG_INTERLACE) {
  vblan2e = vactive + vsynce + vbackp;
  vblan2s = vblan2e + (mode-vdisplay * vscan / ilace);

  @@ -1100,17 +1101,22 @@ nv50_crtc_mode_set(struct drm_crtc *crtc, struct
 drm_display_mode *umode,
  push = evo_wait(mast, 64);
  if (push) {
  if (nv50_vers(mast)  NVD0_DISP_MAST_CLASS) {
  +   /* XXX: Safe underestimate, even 0
 works */
  +   vblankus = (vactive - mode-vdisplay - 2)
 * hactive;
  +   vblankus *= 1000;
  +   vblankus /= mode-clock;
 When you rebase, can you move this calculation into the common code please
 :)

  +
  evo_mthd(push, 0x0804 + (nv_crtc-index *
 0x400), 2);
  evo_data(push, 0x0080 | mode-clock);

  evo_data(push, (ilace == 2) ? 2 : 0);
  -   evo_mthd(push, 0x0810 + (nv_crtc-index *
 0x400), 6);
  +   evo_mthd(push, 0x0810 + (nv_crtc-index *
 0x400), 8);
  evo_data(push, 0x);
  evo_data(push, (vactive  16) | hactive);

  evo_data(push, ( vsynce  16) | hsynce);

  evo_data(push, (vblanke  16) | hblanke);

  evo_data(push, (vblanks  16) | hblanks);

  evo_data(push, (vblan2e  16) | vblan2s);

  -   evo_mthd(push, 0x082c + (nv_crtc-index *
 0x400), 1);
  +   evo_data(push, vblankus);
  evo_data(push, 0x);
  evo_mthd(push, 0x0900 + (nv_crtc-index *
 0x400), 2);
  evo_data(push, 0x0311);
  --
  1.9.3
 
 
 



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


[Nouveau] [Bug 51477] [NV10, NV20] bad/missing graphics, usually alpha-related

2014-09-08 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=51477

--- Comment #28 from BobbyJ junkbub...@gmail.com ---
Hello, I came across this bug after installing Lubuntu 14.04.1 and experiencing
the disappearing icons in the default file browser and other places. I turned
off anti-aliasing under SettingsAppearanceFonts and the icons no longer
disappear. This however makes the text harder to read. 

The title of the bug includes NV10 and NV20. I am just a regular user (not a
developer) but the fix below appears to only reference NV10. I have an Nvidia
GeForece 3 Ti200 graphics card which is considered NV20. Does the fix also
correct the issue for NV20 graphics cards?

-- 
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 51477] [NV10, NV20] bad/missing graphics, usually alpha-related

2014-09-08 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=51477

--- Comment #29 from Ilia Mirkin imir...@alum.mit.edu ---
(In reply to comment #28)
 The title of the bug includes NV10 and NV20. I am just a regular user (not a
 developer) but the fix below appears to only reference NV10. I have an
 Nvidia GeForece 3 Ti200 graphics card which is considered NV20. Does the fix
 also correct the issue for NV20 graphics cards?

NV20 uses the same accel logic as NV10 for exa. Reports are that it does indeed
fix the issue for NV20 iirc. xf86-video-nouveau 1.0.11 is now released and
should contain this fix.

-- 
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] gpio: rename g92 class to g94

2014-09-08 Thread Emil Velikov
nv92 hardware has only 16 interrupt lines, while nv94 and later
has 32. Accessing 0xe0c{0,4} registers on nv92 can lead to incorrect
PDISP setup. This is a regression introduced with

commit 9d0f5ec9ee0fd5dc5fc1cc2cf559286431e406e3
Author: Ben Skeggs bske...@redhat.com
Date:   Mon May 12 15:22:42 2014 +1000

gpio: split g92 class from nv50

Reported-by: estece on #nouveau
Cc: sta...@vger.kernel.org # 3.16+
Signed-off-by: Emil Velikov emil.l.veli...@gmail.com
---
 nvkm/engine/device/nv50.c| 22 ++---
 nvkm/engine/device/nvc0.c| 14 -
 nvkm/subdev/gpio/Makefile.am |  2 +-
 nvkm/subdev/gpio/nv92.c  | 74 
 nvkm/subdev/gpio/nv94.c  | 74 
 nvkm/subdev/gpio/nvd0.c  |  4 +--
 nvkm/subdev/gpio/priv.h  |  4 +--
 7 files changed, 97 insertions(+), 97 deletions(-)
 delete mode 100644 nvkm/subdev/gpio/nv92.c
 create mode 100644 nvkm/subdev/gpio/nv94.c

diff --git a/nvkm/engine/device/nv50.c b/nvkm/engine/device/nv50.c
index ca265fe..96f568d 100644
--- a/nvkm/engine/device/nv50.c
+++ b/nvkm/engine/device/nv50.c
@@ -145,7 +145,7 @@ nv50_identify(struct nouveau_device *device)
case 0x92:
device-cname = G92;
device-oclass[NVDEV_SUBDEV_VBIOS  ] = nouveau_bios_oclass;
-   device-oclass[NVDEV_SUBDEV_GPIO   ] =  nv92_gpio_oclass;
+   device-oclass[NVDEV_SUBDEV_GPIO   ] =  nv50_gpio_oclass;
device-oclass[NVDEV_SUBDEV_I2C] =  nv50_i2c_oclass;
device-oclass[NVDEV_SUBDEV_FUSE   ] =  g80_fuse_oclass;
device-oclass[NVDEV_SUBDEV_CLOCK  ] =  nv84_clock_oclass;
@@ -174,7 +174,7 @@ nv50_identify(struct nouveau_device *device)
case 0x94:
device-cname = G94;
device-oclass[NVDEV_SUBDEV_VBIOS  ] = nouveau_bios_oclass;
-   device-oclass[NVDEV_SUBDEV_GPIO   ] =  nv92_gpio_oclass;
+   device-oclass[NVDEV_SUBDEV_GPIO   ] =  nv94_gpio_oclass;
device-oclass[NVDEV_SUBDEV_I2C] =  nv94_i2c_oclass;
device-oclass[NVDEV_SUBDEV_FUSE   ] =  g80_fuse_oclass;
device-oclass[NVDEV_SUBDEV_CLOCK  ] =  nv84_clock_oclass;
@@ -203,7 +203,7 @@ nv50_identify(struct nouveau_device *device)
case 0x96:
device-cname = G96;
device-oclass[NVDEV_SUBDEV_VBIOS  ] = nouveau_bios_oclass;
-   device-oclass[NVDEV_SUBDEV_GPIO   ] =  nv92_gpio_oclass;
+   device-oclass[NVDEV_SUBDEV_GPIO   ] =  nv94_gpio_oclass;
device-oclass[NVDEV_SUBDEV_I2C] =  nv94_i2c_oclass;
device-oclass[NVDEV_SUBDEV_FUSE   ] =  g80_fuse_oclass;
device-oclass[NVDEV_SUBDEV_CLOCK  ] =  nv84_clock_oclass;
@@ -232,7 +232,7 @@ nv50_identify(struct nouveau_device *device)
case 0x98:
device-cname = G98;
device-oclass[NVDEV_SUBDEV_VBIOS  ] = nouveau_bios_oclass;
-   device-oclass[NVDEV_SUBDEV_GPIO   ] =  nv92_gpio_oclass;
+   device-oclass[NVDEV_SUBDEV_GPIO   ] =  nv94_gpio_oclass;
device-oclass[NVDEV_SUBDEV_I2C] =  nv94_i2c_oclass;
device-oclass[NVDEV_SUBDEV_FUSE   ] =  g80_fuse_oclass;
device-oclass[NVDEV_SUBDEV_CLOCK  ] =  nv84_clock_oclass;
@@ -261,7 +261,7 @@ nv50_identify(struct nouveau_device *device)
case 0xa0:
device-cname = G200;
device-oclass[NVDEV_SUBDEV_VBIOS  ] = nouveau_bios_oclass;
-   device-oclass[NVDEV_SUBDEV_GPIO   ] =  nv92_gpio_oclass;
+   device-oclass[NVDEV_SUBDEV_GPIO   ] =  nv94_gpio_oclass;
device-oclass[NVDEV_SUBDEV_I2C] =  nv50_i2c_oclass;
device-oclass[NVDEV_SUBDEV_FUSE   ] =  g80_fuse_oclass;
device-oclass[NVDEV_SUBDEV_CLOCK  ] =  nv84_clock_oclass;
@@ -290,7 +290,7 @@ nv50_identify(struct nouveau_device *device)
case 0xaa:
device-cname = MCP77/MCP78;
device-oclass[NVDEV_SUBDEV_VBIOS  ] = nouveau_bios_oclass;
-   device-oclass[NVDEV_SUBDEV_GPIO   ] =  nv92_gpio_oclass;
+   device-oclass[NVDEV_SUBDEV_GPIO   ] =  nv94_gpio_oclass;
device-oclass[NVDEV_SUBDEV_I2C] =  nv94_i2c_oclass;
device-oclass[NVDEV_SUBDEV_FUSE   ] =  g80_fuse_oclass;
device-oclass[NVDEV_SUBDEV_CLOCK  ] =  nvaa_clock_oclass;
@@ -319,7 +319,7 @@ nv50_identify(struct nouveau_device *device)
case 0xac:
device-cname = MCP79/MCP7A;
device-oclass[NVDEV_SUBDEV_VBIOS  ] = nouveau_bios_oclass;
-   device-oclass[NVDEV_SUBDEV_GPIO   ] =  nv92_gpio_oclass;
+   device-oclass[NVDEV_SUBDEV_GPIO   ] =  nv94_gpio_oclass;
device-oclass[NVDEV_SUBDEV_I2C] =  nv94_i2c_oclass;
device-oclass[NVDEV_SUBDEV_FUSE   ] =  g80_fuse_oclass;

Re: [Nouveau] [PATCH] gpio: rename g92 class to g94

2014-09-08 Thread Ben Skeggs
On Tue, Sep 9, 2014 at 5:27 AM, Emil Velikov emil.l.veli...@gmail.com wrote:
 nv92 hardware has only 16 interrupt lines, while nv94 and later
 has 32. Accessing 0xe0c{0,4} registers on nv92 can lead to incorrect
 PDISP setup. This is a regression introduced with
Oops.  I did notice this myself when I was writing that series, but
didn't make a note to go back and fix it..

Merged, after fixing include/subdev/gpio.h to s/nv92/nv94/ :)

Thanks,
Ben.


 commit 9d0f5ec9ee0fd5dc5fc1cc2cf559286431e406e3
 Author: Ben Skeggs bske...@redhat.com
 Date:   Mon May 12 15:22:42 2014 +1000

 gpio: split g92 class from nv50

 Reported-by: estece on #nouveau
 Cc: sta...@vger.kernel.org # 3.16+
 Signed-off-by: Emil Velikov emil.l.veli...@gmail.com
 ---
  nvkm/engine/device/nv50.c| 22 ++---
  nvkm/engine/device/nvc0.c| 14 -
  nvkm/subdev/gpio/Makefile.am |  2 +-
  nvkm/subdev/gpio/nv92.c  | 74 
 
  nvkm/subdev/gpio/nv94.c  | 74 
 
  nvkm/subdev/gpio/nvd0.c  |  4 +--
  nvkm/subdev/gpio/priv.h  |  4 +--
  7 files changed, 97 insertions(+), 97 deletions(-)
  delete mode 100644 nvkm/subdev/gpio/nv92.c
  create mode 100644 nvkm/subdev/gpio/nv94.c

 diff --git a/nvkm/engine/device/nv50.c b/nvkm/engine/device/nv50.c
 index ca265fe..96f568d 100644
 --- a/nvkm/engine/device/nv50.c
 +++ b/nvkm/engine/device/nv50.c
 @@ -145,7 +145,7 @@ nv50_identify(struct nouveau_device *device)
 case 0x92:
 device-cname = G92;
 device-oclass[NVDEV_SUBDEV_VBIOS  ] = nouveau_bios_oclass;
 -   device-oclass[NVDEV_SUBDEV_GPIO   ] =  nv92_gpio_oclass;
 +   device-oclass[NVDEV_SUBDEV_GPIO   ] =  nv50_gpio_oclass;
 device-oclass[NVDEV_SUBDEV_I2C] =  nv50_i2c_oclass;
 device-oclass[NVDEV_SUBDEV_FUSE   ] =  g80_fuse_oclass;
 device-oclass[NVDEV_SUBDEV_CLOCK  ] =  nv84_clock_oclass;
 @@ -174,7 +174,7 @@ nv50_identify(struct nouveau_device *device)
 case 0x94:
 device-cname = G94;
 device-oclass[NVDEV_SUBDEV_VBIOS  ] = nouveau_bios_oclass;
 -   device-oclass[NVDEV_SUBDEV_GPIO   ] =  nv92_gpio_oclass;
 +   device-oclass[NVDEV_SUBDEV_GPIO   ] =  nv94_gpio_oclass;
 device-oclass[NVDEV_SUBDEV_I2C] =  nv94_i2c_oclass;
 device-oclass[NVDEV_SUBDEV_FUSE   ] =  g80_fuse_oclass;
 device-oclass[NVDEV_SUBDEV_CLOCK  ] =  nv84_clock_oclass;
 @@ -203,7 +203,7 @@ nv50_identify(struct nouveau_device *device)
 case 0x96:
 device-cname = G96;
 device-oclass[NVDEV_SUBDEV_VBIOS  ] = nouveau_bios_oclass;
 -   device-oclass[NVDEV_SUBDEV_GPIO   ] =  nv92_gpio_oclass;
 +   device-oclass[NVDEV_SUBDEV_GPIO   ] =  nv94_gpio_oclass;
 device-oclass[NVDEV_SUBDEV_I2C] =  nv94_i2c_oclass;
 device-oclass[NVDEV_SUBDEV_FUSE   ] =  g80_fuse_oclass;
 device-oclass[NVDEV_SUBDEV_CLOCK  ] =  nv84_clock_oclass;
 @@ -232,7 +232,7 @@ nv50_identify(struct nouveau_device *device)
 case 0x98:
 device-cname = G98;
 device-oclass[NVDEV_SUBDEV_VBIOS  ] = nouveau_bios_oclass;
 -   device-oclass[NVDEV_SUBDEV_GPIO   ] =  nv92_gpio_oclass;
 +   device-oclass[NVDEV_SUBDEV_GPIO   ] =  nv94_gpio_oclass;
 device-oclass[NVDEV_SUBDEV_I2C] =  nv94_i2c_oclass;
 device-oclass[NVDEV_SUBDEV_FUSE   ] =  g80_fuse_oclass;
 device-oclass[NVDEV_SUBDEV_CLOCK  ] =  nv84_clock_oclass;
 @@ -261,7 +261,7 @@ nv50_identify(struct nouveau_device *device)
 case 0xa0:
 device-cname = G200;
 device-oclass[NVDEV_SUBDEV_VBIOS  ] = nouveau_bios_oclass;
 -   device-oclass[NVDEV_SUBDEV_GPIO   ] =  nv92_gpio_oclass;
 +   device-oclass[NVDEV_SUBDEV_GPIO   ] =  nv94_gpio_oclass;
 device-oclass[NVDEV_SUBDEV_I2C] =  nv50_i2c_oclass;
 device-oclass[NVDEV_SUBDEV_FUSE   ] =  g80_fuse_oclass;
 device-oclass[NVDEV_SUBDEV_CLOCK  ] =  nv84_clock_oclass;
 @@ -290,7 +290,7 @@ nv50_identify(struct nouveau_device *device)
 case 0xaa:
 device-cname = MCP77/MCP78;
 device-oclass[NVDEV_SUBDEV_VBIOS  ] = nouveau_bios_oclass;
 -   device-oclass[NVDEV_SUBDEV_GPIO   ] =  nv92_gpio_oclass;
 +   device-oclass[NVDEV_SUBDEV_GPIO   ] =  nv94_gpio_oclass;
 device-oclass[NVDEV_SUBDEV_I2C] =  nv94_i2c_oclass;
 device-oclass[NVDEV_SUBDEV_FUSE   ] =  g80_fuse_oclass;
 device-oclass[NVDEV_SUBDEV_CLOCK  ] =  nvaa_clock_oclass;
 @@ -319,7 +319,7 @@ nv50_identify(struct nouveau_device *device)
 case 0xac:
 device-cname = MCP79/MCP7A;