diff options
author | Maarten Maathuis <madman2003@gmail.com> | 2008-02-02 12:46:31 +0100 |
---|---|---|
committer | Maarten Maathuis <madman2003@gmail.com> | 2008-02-02 12:46:47 +0100 |
commit | 733e07663e50087ca1e9af8e9b5def556521e3b5 (patch) | |
tree | 020554b852f868e5fb8d10a068d0547ff1582bf8 | |
parent | c77b0937f290568604961fa0013691349c5fcf3b (diff) |
nouveau: NV40 can/should now be able to run after the blob.
- Moved the fix from the ddx to drm, because it seemed more appropriate.
- Don't be shy, report if it works for you or not.
-rw-r--r-- | shared-core/nouveau_reg.h | 1 | ||||
-rw-r--r-- | shared-core/nv40_fb.c | 7 |
2 files changed, 8 insertions, 0 deletions
diff --git a/shared-core/nouveau_reg.h b/shared-core/nouveau_reg.h index a2506146..283977b3 100644 --- a/shared-core/nouveau_reg.h +++ b/shared-core/nouveau_reg.h | |||
@@ -138,6 +138,7 @@ | |||
138 | #define NV40_PFB_TLIMIT(i) (0x00100604 + (i*16)) | 138 | #define NV40_PFB_TLIMIT(i) (0x00100604 + (i*16)) |
139 | #define NV40_PFB_TSIZE(i) (0x00100608 + (i*16)) | 139 | #define NV40_PFB_TSIZE(i) (0x00100608 + (i*16)) |
140 | #define NV40_PFB_TSTATUS(i) (0x0010060C + (i*16)) | 140 | #define NV40_PFB_TSTATUS(i) (0x0010060C + (i*16)) |
141 | #define NV40_PFB_UNK_800 0x00100800 | ||
141 | 142 | ||
142 | #define NV04_PGRAPH_DEBUG_0 0x00400080 | 143 | #define NV04_PGRAPH_DEBUG_0 0x00400080 |
143 | #define NV04_PGRAPH_DEBUG_1 0x00400084 | 144 | #define NV04_PGRAPH_DEBUG_1 0x00400084 |
diff --git a/shared-core/nv40_fb.c b/shared-core/nv40_fb.c index ceae8079..ae784cb8 100644 --- a/shared-core/nv40_fb.c +++ b/shared-core/nv40_fb.c | |||
@@ -11,6 +11,13 @@ nv40_fb_init(struct drm_device *dev) | |||
11 | int num_tiles; | 11 | int num_tiles; |
12 | int i; | 12 | int i; |
13 | 13 | ||
14 | /* This is strictly a NV4x register (don't know about NV5x). */ | ||
15 | /* The blob sets these to all kinds of values, and they mess up our setup. */ | ||
16 | /* I got value 0x52802 instead. For some cards the blob even sets it back to 0x1. */ | ||
17 | /* Note: the blob doesn't read this value, so i'm pretty sure this is safe for all cards. */ | ||
18 | /* Any idea what this is? */ | ||
19 | NV_WRITE(NV40_PFB_UNK_800, 0x1); | ||
20 | |||
14 | switch (dev_priv->chipset) { | 21 | switch (dev_priv->chipset) { |
15 | case 0x40: | 22 | case 0x40: |
16 | case 0x45: | 23 | case 0x45: |