drm/nouveau/bios/boost: pointers are 32-bit
authorBen Skeggs <bskeggs@redhat.com>
Fri, 18 Nov 2016 01:24:35 +0000 (11:24 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Mon, 28 Nov 2016 05:39:34 +0000 (15:39 +1000)
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/boost.h
drivers/gpu/drm/nouveau/nvkm/subdev/bios/boost.c
drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c

index 934b0ae5521d3d0c7c67b78bbc05d103cb31654c..2ff64a20c0ecdfdddd7c59a72556d47a46d21dd5 100644 (file)
@@ -1,6 +1,6 @@
 #ifndef __NVBIOS_BOOST_H__
 #define __NVBIOS_BOOST_H__
-u16 nvbios_boostTe(struct nvkm_bios *, u8 *, u8 *, u8 *, u8 *, u8 *, u8 *);
+u32 nvbios_boostTe(struct nvkm_bios *, u8 *, u8 *, u8 *, u8 *, u8 *, u8 *);
 
 struct nvbios_boostE {
        u8  pstate;
@@ -8,10 +8,10 @@ struct nvbios_boostE {
        u32 max;
 };
 
-u16 nvbios_boostEe(struct nvkm_bios *, int idx, u8 *, u8 *, u8 *, u8 *);
-u16 nvbios_boostEp(struct nvkm_bios *, int idx, u8 *, u8 *, u8 *, u8 *,
+u32 nvbios_boostEe(struct nvkm_bios *, int idx, u8 *, u8 *, u8 *, u8 *);
+u32 nvbios_boostEp(struct nvkm_bios *, int idx, u8 *, u8 *, u8 *, u8 *,
                   struct nvbios_boostE *);
-u16 nvbios_boostEm(struct nvkm_bios *, u8, u8 *, u8 *, u8 *, u8 *,
+u32 nvbios_boostEm(struct nvkm_bios *, u8, u8 *, u8 *, u8 *, u8 *,
                   struct nvbios_boostE *);
 
 struct nvbios_boostS {
@@ -21,7 +21,7 @@ struct nvbios_boostS {
        u32 max;
 };
 
-u16 nvbios_boostSe(struct nvkm_bios *, int, u16, u8 *, u8 *, u8, u8);
-u16 nvbios_boostSp(struct nvkm_bios *, int, u16, u8 *, u8 *, u8, u8,
+u32 nvbios_boostSe(struct nvkm_bios *, int, u32, u8 *, u8 *, u8, u8);
+u32 nvbios_boostSp(struct nvkm_bios *, int, u32, u8 *, u8 *, u8, u8,
                   struct nvbios_boostS *);
 #endif
index 3756ec91a88d8e5c63e9214d15b54b1a41db0473..eaf74eb7298386ec0d41cc96dada6b7f774b4d4d 100644 (file)
 #include <subdev/bios/bit.h>
 #include <subdev/bios/boost.h>
 
-u16
+u32
 nvbios_boostTe(struct nvkm_bios *bios,
               u8 *ver, u8 *hdr, u8 *cnt, u8 *len, u8 *snr, u8 *ssz)
 {
        struct bit_entry bit_P;
-       u16 boost = 0x0000;
+       u32 boost = 0;
 
        if (!bit_entry(bios, 'P', &bit_P)) {
                if (bit_P.version == 2)
-                       boost = nvbios_rd16(bios, bit_P.offset + 0x30);
+                       boost = nvbios_rd32(bios, bit_P.offset + 0x30);
 
                if (boost) {
                        *ver = nvbios_rd08(bios, boost + 0);
@@ -52,15 +52,15 @@ nvbios_boostTe(struct nvkm_bios *bios,
                }
        }
 
-       return 0x0000;
+       return 0;
 }
 
-u16
+u32
 nvbios_boostEe(struct nvkm_bios *bios, int idx,
               u8 *ver, u8 *hdr, u8 *cnt, u8 *len)
 {
        u8  snr, ssz;
-       u16 data = nvbios_boostTe(bios, ver, hdr, cnt, len, &snr, &ssz);
+       u32 data = nvbios_boostTe(bios, ver, hdr, cnt, len, &snr, &ssz);
        if (data && idx < *cnt) {
                data = data + *hdr + (idx * (*len + (snr * ssz)));
                *hdr = *len;
@@ -68,14 +68,14 @@ nvbios_boostEe(struct nvkm_bios *bios, int idx,
                *len = ssz;
                return data;
        }
-       return 0x0000;
+       return 0;
 }
 
-u16
+u32
 nvbios_boostEp(struct nvkm_bios *bios, int idx,
               u8 *ver, u8 *hdr, u8 *cnt, u8 *len, struct nvbios_boostE *info)
 {
-       u16 data = nvbios_boostEe(bios, idx, ver, hdr, cnt, len);
+       u32 data = nvbios_boostEe(bios, idx, ver, hdr, cnt, len);
        memset(info, 0x00, sizeof(*info));
        if (data) {
                info->pstate = (nvbios_rd16(bios, data + 0x00) & 0x01e0) >> 5;
@@ -85,7 +85,7 @@ nvbios_boostEp(struct nvkm_bios *bios, int idx,
        return data;
 }
 
-u16
+u32
 nvbios_boostEm(struct nvkm_bios *bios, u8 pstate,
               u8 *ver, u8 *hdr, u8 *cnt, u8 *len, struct nvbios_boostE *info)
 {
@@ -97,21 +97,21 @@ nvbios_boostEm(struct nvkm_bios *bios, u8 pstate,
        return data;
 }
 
-u16
+u32
 nvbios_boostSe(struct nvkm_bios *bios, int idx,
-              u16 data, u8 *ver, u8 *hdr, u8 cnt, u8 len)
+              u32 data, u8 *ver, u8 *hdr, u8 cnt, u8 len)
 {
        if (data && idx < cnt) {
                data = data + *hdr + (idx * len);
                *hdr = len;
                return data;
        }
-       return 0x0000;
+       return 0;
 }
 
-u16
+u32
 nvbios_boostSp(struct nvkm_bios *bios, int idx,
-              u16 data, u8 *ver, u8 *hdr, u8 cnt, u8 len,
+              u32 data, u8 *ver, u8 *hdr, u8 cnt, u8 len,
               struct nvbios_boostS *info)
 {
        data = nvbios_boostSe(bios, idx, data, ver, hdr, cnt, len);
index fa1c12185e19f54abe95fd04e772dadf8b9a1470..f43970156558a87e145a3a7f53ac11b1ae8a0cf0 100644 (file)
@@ -44,13 +44,13 @@ nvkm_clk_adjust(struct nvkm_clk *clk, bool adjust,
        struct nvkm_bios *bios = clk->subdev.device->bios;
        struct nvbios_boostE boostE;
        u8  ver, hdr, cnt, len;
-       u16 data;
+       u32 data;
 
        data = nvbios_boostEm(bios, pstate, &ver, &hdr, &cnt, &len, &boostE);
        if (data) {
                struct nvbios_boostS boostS;
                u8  idx = 0, sver, shdr;
-               u16 subd;
+               u32 subd;
 
                input = max(boostE.min, input);
                input = min(boostE.max, input);