projects
/
cascardo
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'drm-nouveau-next' of git://anongit.freedesktop.org/git/nouveau/linux...
[cascardo/linux.git]
/
drivers
/
gpu
/
drm
/
nouveau
/
core
/
subdev
/
bios
/
base.c
diff --git
a/drivers/gpu/drm/nouveau/core/subdev/bios/base.c
b/drivers/gpu/drm/nouveau/core/subdev/bios/base.c
index
e9df94f
..
222e8eb
100644
(file)
--- a/
drivers/gpu/drm/nouveau/core/subdev/bios/base.c
+++ b/
drivers/gpu/drm/nouveau/core/subdev/bios/base.c
@@
-109,7
+109,7
@@
nouveau_bios_shadow_pramin(struct nouveau_bios *bios)
return;
}
return;
}
- addr = (
u64)(addr >> 8
) << 8;
+ addr = (
addr & 0xffffff00
) << 8;
if (!addr) {
addr = (u64)nv_rd32(bios, 0x001700) << 16;
addr += 0xf0000;
if (!addr) {
addr = (u64)nv_rd32(bios, 0x001700) << 16;
addr += 0xf0000;
@@
-168,7
+168,8
@@
nouveau_bios_shadow_prom(struct nouveau_bios *bios)
*/
i = 16;
do {
*/
i = 16;
do {
- if ((nv_rd32(bios, 0x300000) & 0xffff) == 0xaa55)
+ u32 data = le32_to_cpu(nv_rd32(bios, 0x300000)) & 0xffff;
+ if (data == 0xaa55)
break;
} while (i--);
break;
} while (i--);
@@
-176,14
+177,15
@@
nouveau_bios_shadow_prom(struct nouveau_bios *bios)
goto out;
/* read entire bios image to system memory */
goto out;
/* read entire bios image to system memory */
- bios->size = ((nv_rd32(bios, 0x300000) >> 16) & 0xff) * 512;
+ bios->size = (le32_to_cpu(nv_rd32(bios, 0x300000)) >> 16) & 0xff;
+ bios->size = bios->size * 512;
if (!bios->size)
goto out;
bios->data = kmalloc(bios->size, GFP_KERNEL);
if (bios->data) {
if (!bios->size)
goto out;
bios->data = kmalloc(bios->size, GFP_KERNEL);
if (bios->data) {
- for (i = 0; i < bios->size; i
+=
4)
-
nv_wo32(bios, i, nv_rd32(bios, 0x300000 + i)
);
+ for (i = 0; i < bios->size; i
+=
4)
+
((u32 *)bios->data)[i/4] = nv_rd32(bios, 0x300000 + i
);
}
/* check the PCI record header */
}
/* check the PCI record header */