aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2016-11-17 20:22:33 -0500
committerBen Skeggs <bskeggs@redhat.com>2016-11-28 00:39:35 -0500
commit60fb7064e495bd70dd2151b18536ed969806b98e (patch)
treea27ed0f5be06e7d1f3d51f83ce6778f27a068c1b
parent1957d3d5682337e69bc117a2a873b9dfb730baed (diff)
drm/nouveau/bios/vmap: pointers are 32-bit
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r--drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/vmap.h8
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/subdev/bios/vmap.c22
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/subdev/volt/base.c4
3 files changed, 17 insertions, 17 deletions
diff --git a/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/vmap.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/vmap.h
index 8fa1294c27b7..bea31cdd1dd1 100644
--- a/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/vmap.h
+++ b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/vmap.h
@@ -6,8 +6,8 @@ struct nvbios_vmap {
6 u8 max2; 6 u8 max2;
7}; 7};
8 8
9u16 nvbios_vmap_table(struct nvkm_bios *, u8 *ver, u8 *hdr, u8 *cnt, u8 *len); 9u32 nvbios_vmap_table(struct nvkm_bios *, u8 *ver, u8 *hdr, u8 *cnt, u8 *len);
10u16 nvbios_vmap_parse(struct nvkm_bios *, u8 *ver, u8 *hdr, u8 *cnt, u8 *len, 10u32 nvbios_vmap_parse(struct nvkm_bios *, u8 *ver, u8 *hdr, u8 *cnt, u8 *len,
11 struct nvbios_vmap *); 11 struct nvbios_vmap *);
12 12
13struct nvbios_vmap_entry { 13struct nvbios_vmap_entry {
@@ -18,7 +18,7 @@ struct nvbios_vmap_entry {
18 s32 arg[6]; 18 s32 arg[6];
19}; 19};
20 20
21u16 nvbios_vmap_entry(struct nvkm_bios *, int idx, u8 *ver, u8 *len); 21u32 nvbios_vmap_entry(struct nvkm_bios *, int idx, u8 *ver, u8 *len);
22u16 nvbios_vmap_entry_parse(struct nvkm_bios *, int idx, u8 *ver, u8 *len, 22u32 nvbios_vmap_entry_parse(struct nvkm_bios *, int idx, u8 *ver, u8 *len,
23 struct nvbios_vmap_entry *); 23 struct nvbios_vmap_entry *);
24#endif 24#endif
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/vmap.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/vmap.c
index 32bd8b1d154f..c228ca15fa3b 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/vmap.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/vmap.c
@@ -25,15 +25,15 @@
25#include <subdev/bios/bit.h> 25#include <subdev/bios/bit.h>
26#include <subdev/bios/vmap.h> 26#include <subdev/bios/vmap.h>
27 27
28u16 28u32
29nvbios_vmap_table(struct nvkm_bios *bios, u8 *ver, u8 *hdr, u8 *cnt, u8 *len) 29nvbios_vmap_table(struct nvkm_bios *bios, u8 *ver, u8 *hdr, u8 *cnt, u8 *len)
30{ 30{
31 struct bit_entry bit_P; 31 struct bit_entry bit_P;
32 u16 vmap = 0x0000; 32 u32 vmap = 0;
33 33
34 if (!bit_entry(bios, 'P', &bit_P)) { 34 if (!bit_entry(bios, 'P', &bit_P)) {
35 if (bit_P.version == 2) { 35 if (bit_P.version == 2) {
36 vmap = nvbios_rd16(bios, bit_P.offset + 0x20); 36 vmap = nvbios_rd32(bios, bit_P.offset + 0x20);
37 if (vmap) { 37 if (vmap) {
38 *ver = nvbios_rd08(bios, vmap + 0); 38 *ver = nvbios_rd08(bios, vmap + 0);
39 switch (*ver) { 39 switch (*ver) {
@@ -50,14 +50,14 @@ nvbios_vmap_table(struct nvkm_bios *bios, u8 *ver, u8 *hdr, u8 *cnt, u8 *len)
50 } 50 }
51 } 51 }
52 52
53 return 0x0000; 53 return 0;
54} 54}
55 55
56u16 56u32
57nvbios_vmap_parse(struct nvkm_bios *bios, u8 *ver, u8 *hdr, u8 *cnt, u8 *len, 57nvbios_vmap_parse(struct nvkm_bios *bios, u8 *ver, u8 *hdr, u8 *cnt, u8 *len,
58 struct nvbios_vmap *info) 58 struct nvbios_vmap *info)
59{ 59{
60 u16 vmap = nvbios_vmap_table(bios, ver, hdr, cnt, len); 60 u32 vmap = nvbios_vmap_table(bios, ver, hdr, cnt, len);
61 memset(info, 0x00, sizeof(*info)); 61 memset(info, 0x00, sizeof(*info));
62 switch (!!vmap * *ver) { 62 switch (!!vmap * *ver) {
63 case 0x10: 63 case 0x10:
@@ -77,23 +77,23 @@ nvbios_vmap_parse(struct nvkm_bios *bios, u8 *ver, u8 *hdr, u8 *cnt, u8 *len,
77 return vmap; 77 return vmap;
78} 78}
79 79
80u16 80u32
81nvbios_vmap_entry(struct nvkm_bios *bios, int idx, u8 *ver, u8 *len) 81nvbios_vmap_entry(struct nvkm_bios *bios, int idx, u8 *ver, u8 *len)
82{ 82{
83 u8 hdr, cnt; 83 u8 hdr, cnt;
84 u16 vmap = nvbios_vmap_table(bios, ver, &hdr, &cnt, len); 84 u32 vmap = nvbios_vmap_table(bios, ver, &hdr, &cnt, len);
85 if (vmap && idx < cnt) { 85 if (vmap && idx < cnt) {
86 vmap = vmap + hdr + (idx * *len); 86 vmap = vmap + hdr + (idx * *len);
87 return vmap; 87 return vmap;
88 } 88 }
89 return 0x0000; 89 return 0;
90} 90}
91 91
92u16 92u32
93nvbios_vmap_entry_parse(struct nvkm_bios *bios, int idx, u8 *ver, u8 *len, 93nvbios_vmap_entry_parse(struct nvkm_bios *bios, int idx, u8 *ver, u8 *len,
94 struct nvbios_vmap_entry *info) 94 struct nvbios_vmap_entry *info)
95{ 95{
96 u16 vmap = nvbios_vmap_entry(bios, idx, ver, len); 96 u32 vmap = nvbios_vmap_entry(bios, idx, ver, len);
97 memset(info, 0x00, sizeof(*info)); 97 memset(info, 0x00, sizeof(*info));
98 switch (!!vmap * *ver) { 98 switch (!!vmap * *ver) {
99 case 0x10: 99 case 0x10:
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/volt/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/volt/base.c
index e8569b04b55d..5b5cc5cd08a9 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/volt/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/volt/base.c
@@ -84,7 +84,7 @@ nvkm_volt_map_min(struct nvkm_volt *volt, u8 id)
84 struct nvkm_bios *bios = volt->subdev.device->bios; 84 struct nvkm_bios *bios = volt->subdev.device->bios;
85 struct nvbios_vmap_entry info; 85 struct nvbios_vmap_entry info;
86 u8 ver, len; 86 u8 ver, len;
87 u16 vmap; 87 u32 vmap;
88 88
89 vmap = nvbios_vmap_entry_parse(bios, id, &ver, &len, &info); 89 vmap = nvbios_vmap_entry_parse(bios, id, &ver, &len, &info);
90 if (vmap) { 90 if (vmap) {
@@ -106,7 +106,7 @@ nvkm_volt_map(struct nvkm_volt *volt, u8 id, u8 temp)
106 struct nvkm_bios *bios = volt->subdev.device->bios; 106 struct nvkm_bios *bios = volt->subdev.device->bios;
107 struct nvbios_vmap_entry info; 107 struct nvbios_vmap_entry info;
108 u8 ver, len; 108 u8 ver, len;
109 u16 vmap; 109 u32 vmap;
110 110
111 vmap = nvbios_vmap_entry_parse(bios, id, &ver, &len, &info); 111 vmap = nvbios_vmap_entry_parse(bios, id, &ver, &len, &info);
112 if (vmap) { 112 if (vmap) {