Re: [Nouveau] [PATCH] drm/nouveau/bios: fix DCB v1.5 parsing

2012-11-17 Thread Marcin Slusarz
On Fri, Nov 16, 2012 at 09:36:56PM +1000, Dave Airlie wrote:
 On Fri, Nov 16, 2012 at 7:09 AM, Marcin Slusarz
 marcin.slus...@gmail.com wrote:
  memcmp-nv_strncmp conversion should have inverted the return value.
 
  Signed-off-by: Marcin Slusarz marcin.slus...@gmail.com
  ---
  See 
  http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob;f=drivers/gpu/drm/nouveau/nouveau_bios.c;h=a0a3fe3c016be86665db1369c44bef832f829a1a;hb=a0d271cbfed1dd50278c6b06bead3d00ba0a88f9#l5652
   (3.6)
  and 
  http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob;f=drivers/gpu/drm/nouveau/core/include/core/object.h;h=818feabbf4a0969f090f897852fe4476a422b1b6;hb=77b67063bb6bce6d475e910d3b886a606d0d91f7#l179
   (nv_strncmp definition)
 
 Christ fix that nv_strncmp to act like the C one, or give it a very
 different name!

Please don't kill the messenger.

---
From: Marcin Slusarz marcin.slus...@gmail.com
Subject: [PATCH v2] drm/nouveau/bios: fix DCB v1.5 parsing

memcmp-nv_strncmp conversion, in addition to name change, should have
inverted the return value.

But nv_strncmp does not act like strncmp - it does not check for string
terminator, returns true/false instead of -1/0/1 and has different
parameters order.
Let's rename it to nv_memcmp and let it act like memcmp.

Signed-off-by: Marcin Slusarz marcin.slus...@gmail.com
---
 drivers/gpu/drm/nouveau/core/include/core/object.h | 14 +-
 drivers/gpu/drm/nouveau/core/subdev/bios/dcb.c |  2 +-
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/core/include/core/object.h 
b/drivers/gpu/drm/nouveau/core/include/core/object.h
index 818feab..486f1a9 100644
--- a/drivers/gpu/drm/nouveau/core/include/core/object.h
+++ b/drivers/gpu/drm/nouveau/core/include/core/object.h
@@ -175,14 +175,18 @@ nv_mo32(void *obj, u32 addr, u32 mask, u32 data)
return temp;
 }
 
-static inline bool
-nv_strncmp(void *obj, u32 addr, u32 len, const char *str)
+static inline int
+nv_memcmp(void *obj, u32 addr, const char *str, u32 len)
 {
+   unsigned char c1, c2;
+
while (len--) {
-   if (nv_ro08(obj, addr++) != *(str++))
-   return false;
+   c1 = nv_ro08(obj, addr++);
+   c2 = *(str++);
+   if (c1 != c2)
+   return c1 - c2;
}
-   return true;
+   return 0;
 }
 
 #endif
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/dcb.c 
b/drivers/gpu/drm/nouveau/core/subdev/bios/dcb.c
index 7d75038..c511971 100644
--- a/drivers/gpu/drm/nouveau/core/subdev/bios/dcb.c
+++ b/drivers/gpu/drm/nouveau/core/subdev/bios/dcb.c
@@ -64,7 +64,7 @@ dcb_table(struct nouveau_bios *bios, u8 *ver, u8 *hdr, u8 
*cnt, u8 *len)
}
} else
if (*ver = 0x15) {
-   if (!nv_strncmp(bios, dcb - 7, 7, DEV_REC)) {
+   if (!nv_memcmp(bios, dcb - 7, DEV_REC, 7)) {
u16 i2c = nv_ro16(bios, dcb + 2);
*hdr = 4;
*cnt = (i2c - dcb) / 10;
-- 
1.7.12

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


[Nouveau] [Bug 51579] Xv video support is black on NVidia NVa8 Chipset in latest git [fixed with patch]

2012-11-17 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=51579

--- Comment #20 from Boris Reisig bo...@boris.ca ---
If it's not effecting your NVa8 board, maybe its something specific to the
GT218 [ION] nvidia cards or NVaX chipsets? (NVIDIA Corporation GT218 [ION] (rev
a2)). I just rebuilt the following packages from git today (11/17/2012) to see
if it helped and nothing.

linux kernel 3.7.0rc6
libdrm 2.4.40+ (mesa/drm git)
nouveau/xf86-video-nouveau (1.0.4+ git)
xorg (X.Org X Server 1.13.99)

Is their any other info or details I can do to provide you any extra
information?

-- 
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