diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2016-11-17 20:24:35 -0500 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2016-11-28 00:39:34 -0500 |
commit | 5878601767bfa46f0f9856b726a487ae02b57b9c (patch) | |
tree | 8e1c87130d7e4765c7bb100a5daeb10746560bbf | |
parent | ed828666a797bf78c12e83e847516588e1b1cb11 (diff) |
drm/nouveau/bios/boost: pointers are 32-bit
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r-- | drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/boost.h | 12 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nvkm/subdev/bios/boost.c | 30 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c | 4 |
3 files changed, 23 insertions, 23 deletions
diff --git a/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/boost.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/boost.h index 934b0ae5521d..2ff64a20c0ec 100644 --- a/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/boost.h +++ b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/boost.h | |||
@@ -1,6 +1,6 @@ | |||
1 | #ifndef __NVBIOS_BOOST_H__ | 1 | #ifndef __NVBIOS_BOOST_H__ |
2 | #define __NVBIOS_BOOST_H__ | 2 | #define __NVBIOS_BOOST_H__ |
3 | u16 nvbios_boostTe(struct nvkm_bios *, u8 *, u8 *, u8 *, u8 *, u8 *, u8 *); | 3 | u32 nvbios_boostTe(struct nvkm_bios *, u8 *, u8 *, u8 *, u8 *, u8 *, u8 *); |
4 | 4 | ||
5 | struct nvbios_boostE { | 5 | struct nvbios_boostE { |
6 | u8 pstate; | 6 | u8 pstate; |
@@ -8,10 +8,10 @@ struct nvbios_boostE { | |||
8 | u32 max; | 8 | u32 max; |
9 | }; | 9 | }; |
10 | 10 | ||
11 | u16 nvbios_boostEe(struct nvkm_bios *, int idx, u8 *, u8 *, u8 *, u8 *); | 11 | u32 nvbios_boostEe(struct nvkm_bios *, int idx, u8 *, u8 *, u8 *, u8 *); |
12 | u16 nvbios_boostEp(struct nvkm_bios *, int idx, u8 *, u8 *, u8 *, u8 *, | 12 | u32 nvbios_boostEp(struct nvkm_bios *, int idx, u8 *, u8 *, u8 *, u8 *, |
13 | struct nvbios_boostE *); | 13 | struct nvbios_boostE *); |
14 | u16 nvbios_boostEm(struct nvkm_bios *, u8, u8 *, u8 *, u8 *, u8 *, | 14 | u32 nvbios_boostEm(struct nvkm_bios *, u8, u8 *, u8 *, u8 *, u8 *, |
15 | struct nvbios_boostE *); | 15 | struct nvbios_boostE *); |
16 | 16 | ||
17 | struct nvbios_boostS { | 17 | struct nvbios_boostS { |
@@ -21,7 +21,7 @@ struct nvbios_boostS { | |||
21 | u32 max; | 21 | u32 max; |
22 | }; | 22 | }; |
23 | 23 | ||
24 | u16 nvbios_boostSe(struct nvkm_bios *, int, u16, u8 *, u8 *, u8, u8); | 24 | u32 nvbios_boostSe(struct nvkm_bios *, int, u32, u8 *, u8 *, u8, u8); |
25 | u16 nvbios_boostSp(struct nvkm_bios *, int, u16, u8 *, u8 *, u8, u8, | 25 | u32 nvbios_boostSp(struct nvkm_bios *, int, u32, u8 *, u8 *, u8, u8, |
26 | struct nvbios_boostS *); | 26 | struct nvbios_boostS *); |
27 | #endif | 27 | #endif |
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/boost.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/boost.c index 3756ec91a88d..eaf74eb72983 100644 --- a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/boost.c +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/boost.c | |||
@@ -25,16 +25,16 @@ | |||
25 | #include <subdev/bios/bit.h> | 25 | #include <subdev/bios/bit.h> |
26 | #include <subdev/bios/boost.h> | 26 | #include <subdev/bios/boost.h> |
27 | 27 | ||
28 | u16 | 28 | u32 |
29 | nvbios_boostTe(struct nvkm_bios *bios, | 29 | nvbios_boostTe(struct nvkm_bios *bios, |
30 | u8 *ver, u8 *hdr, u8 *cnt, u8 *len, u8 *snr, u8 *ssz) | 30 | u8 *ver, u8 *hdr, u8 *cnt, u8 *len, u8 *snr, u8 *ssz) |
31 | { | 31 | { |
32 | struct bit_entry bit_P; | 32 | struct bit_entry bit_P; |
33 | u16 boost = 0x0000; | 33 | u32 boost = 0; |
34 | 34 | ||
35 | if (!bit_entry(bios, 'P', &bit_P)) { | 35 | if (!bit_entry(bios, 'P', &bit_P)) { |
36 | if (bit_P.version == 2) | 36 | if (bit_P.version == 2) |
37 | boost = nvbios_rd16(bios, bit_P.offset + 0x30); | 37 | boost = nvbios_rd32(bios, bit_P.offset + 0x30); |
38 | 38 | ||
39 | if (boost) { | 39 | if (boost) { |
40 | *ver = nvbios_rd08(bios, boost + 0); | 40 | *ver = nvbios_rd08(bios, boost + 0); |
@@ -52,15 +52,15 @@ nvbios_boostTe(struct nvkm_bios *bios, | |||
52 | } | 52 | } |
53 | } | 53 | } |
54 | 54 | ||
55 | return 0x0000; | 55 | return 0; |
56 | } | 56 | } |
57 | 57 | ||
58 | u16 | 58 | u32 |
59 | nvbios_boostEe(struct nvkm_bios *bios, int idx, | 59 | nvbios_boostEe(struct nvkm_bios *bios, int idx, |
60 | u8 *ver, u8 *hdr, u8 *cnt, u8 *len) | 60 | u8 *ver, u8 *hdr, u8 *cnt, u8 *len) |
61 | { | 61 | { |
62 | u8 snr, ssz; | 62 | u8 snr, ssz; |
63 | u16 data = nvbios_boostTe(bios, ver, hdr, cnt, len, &snr, &ssz); | 63 | u32 data = nvbios_boostTe(bios, ver, hdr, cnt, len, &snr, &ssz); |
64 | if (data && idx < *cnt) { | 64 | if (data && idx < *cnt) { |
65 | data = data + *hdr + (idx * (*len + (snr * ssz))); | 65 | data = data + *hdr + (idx * (*len + (snr * ssz))); |
66 | *hdr = *len; | 66 | *hdr = *len; |
@@ -68,14 +68,14 @@ nvbios_boostEe(struct nvkm_bios *bios, int idx, | |||
68 | *len = ssz; | 68 | *len = ssz; |
69 | return data; | 69 | return data; |
70 | } | 70 | } |
71 | return 0x0000; | 71 | return 0; |
72 | } | 72 | } |
73 | 73 | ||
74 | u16 | 74 | u32 |
75 | nvbios_boostEp(struct nvkm_bios *bios, int idx, | 75 | nvbios_boostEp(struct nvkm_bios *bios, int idx, |
76 | u8 *ver, u8 *hdr, u8 *cnt, u8 *len, struct nvbios_boostE *info) | 76 | u8 *ver, u8 *hdr, u8 *cnt, u8 *len, struct nvbios_boostE *info) |
77 | { | 77 | { |
78 | u16 data = nvbios_boostEe(bios, idx, ver, hdr, cnt, len); | 78 | u32 data = nvbios_boostEe(bios, idx, ver, hdr, cnt, len); |
79 | memset(info, 0x00, sizeof(*info)); | 79 | memset(info, 0x00, sizeof(*info)); |
80 | if (data) { | 80 | if (data) { |
81 | info->pstate = (nvbios_rd16(bios, data + 0x00) & 0x01e0) >> 5; | 81 | info->pstate = (nvbios_rd16(bios, data + 0x00) & 0x01e0) >> 5; |
@@ -85,7 +85,7 @@ nvbios_boostEp(struct nvkm_bios *bios, int idx, | |||
85 | return data; | 85 | return data; |
86 | } | 86 | } |
87 | 87 | ||
88 | u16 | 88 | u32 |
89 | nvbios_boostEm(struct nvkm_bios *bios, u8 pstate, | 89 | nvbios_boostEm(struct nvkm_bios *bios, u8 pstate, |
90 | u8 *ver, u8 *hdr, u8 *cnt, u8 *len, struct nvbios_boostE *info) | 90 | u8 *ver, u8 *hdr, u8 *cnt, u8 *len, struct nvbios_boostE *info) |
91 | { | 91 | { |
@@ -97,21 +97,21 @@ nvbios_boostEm(struct nvkm_bios *bios, u8 pstate, | |||
97 | return data; | 97 | return data; |
98 | } | 98 | } |
99 | 99 | ||
100 | u16 | 100 | u32 |
101 | nvbios_boostSe(struct nvkm_bios *bios, int idx, | 101 | nvbios_boostSe(struct nvkm_bios *bios, int idx, |
102 | u16 data, u8 *ver, u8 *hdr, u8 cnt, u8 len) | 102 | u32 data, u8 *ver, u8 *hdr, u8 cnt, u8 len) |
103 | { | 103 | { |
104 | if (data && idx < cnt) { | 104 | if (data && idx < cnt) { |
105 | data = data + *hdr + (idx * len); | 105 | data = data + *hdr + (idx * len); |
106 | *hdr = len; | 106 | *hdr = len; |
107 | return data; | 107 | return data; |
108 | } | 108 | } |
109 | return 0x0000; | 109 | return 0; |
110 | } | 110 | } |
111 | 111 | ||
112 | u16 | 112 | u32 |
113 | nvbios_boostSp(struct nvkm_bios *bios, int idx, | 113 | nvbios_boostSp(struct nvkm_bios *bios, int idx, |
114 | u16 data, u8 *ver, u8 *hdr, u8 cnt, u8 len, | 114 | u32 data, u8 *ver, u8 *hdr, u8 cnt, u8 len, |
115 | struct nvbios_boostS *info) | 115 | struct nvbios_boostS *info) |
116 | { | 116 | { |
117 | data = nvbios_boostSe(bios, idx, data, ver, hdr, cnt, len); | 117 | data = nvbios_boostSe(bios, idx, data, ver, hdr, cnt, len); |
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c index fa1c12185e19..f43970156558 100644 --- a/drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c | |||
@@ -44,13 +44,13 @@ nvkm_clk_adjust(struct nvkm_clk *clk, bool adjust, | |||
44 | struct nvkm_bios *bios = clk->subdev.device->bios; | 44 | struct nvkm_bios *bios = clk->subdev.device->bios; |
45 | struct nvbios_boostE boostE; | 45 | struct nvbios_boostE boostE; |
46 | u8 ver, hdr, cnt, len; | 46 | u8 ver, hdr, cnt, len; |
47 | u16 data; | 47 | u32 data; |
48 | 48 | ||
49 | data = nvbios_boostEm(bios, pstate, &ver, &hdr, &cnt, &len, &boostE); | 49 | data = nvbios_boostEm(bios, pstate, &ver, &hdr, &cnt, &len, &boostE); |
50 | if (data) { | 50 | if (data) { |
51 | struct nvbios_boostS boostS; | 51 | struct nvbios_boostS boostS; |
52 | u8 idx = 0, sver, shdr; | 52 | u8 idx = 0, sver, shdr; |
53 | u16 subd; | 53 | u32 subd; |
54 | 54 | ||
55 | input = max(boostE.min, input); | 55 | input = max(boostE.min, input); |
56 | input = min(boostE.max, input); | 56 | input = min(boostE.max, input); |