summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/nouveau
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2014-09-22 00:51:37 (GMT)
committerBen Skeggs <bskeggs@redhat.com>2014-12-02 05:43:40 (GMT)
commit7af4dec166d22f0b4fe30649fc5263a91126c64d (patch)
tree0e2d4c887c0479b6798270794166c0e732e44a35 /drivers/gpu/drm/nouveau
parent8d85e06b5e049efb97a88aa1b9822420108d24d7 (diff)
downloadlinux-7af4dec166d22f0b4fe30649fc5263a91126c64d.tar.xz
drm/nouveau/bios: use size/type from pci data structure
The field at +0x2 is technically processor specific, though I don't know that it's ever mattered in practice (yet). Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau')
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bios/image.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/image.c b/drivers/gpu/drm/nouveau/core/subdev/bios/image.c
index 4b2120b..64ed641 100644
--- a/drivers/gpu/drm/nouveau/core/subdev/bios/image.c
+++ b/drivers/gpu/drm/nouveau/core/subdev/bios/image.c
@@ -24,10 +24,14 @@
#include <subdev/bios.h>
#include <subdev/bios/image.h>
+#include <subdev/bios/pcir.h>
static bool
nvbios_imagen(struct nouveau_bios *bios, struct nvbios_image *image)
{
+ struct nvbios_pcirT pcir;
+ u8 ver;
+ u16 hdr;
u32 data;
switch ((data = nv_ro16(bios, image->base + 0x00))) {
@@ -39,8 +43,10 @@ nvbios_imagen(struct nouveau_bios *bios, struct nvbios_image *image)
return false;
}
- image->size = nv_ro08(bios, image->base + 0x02) * 512;
- image->type = 0x00;
+ if (!(data = nvbios_pcirTp(bios, image->base, &ver, &hdr, &pcir)))
+ return false;
+ image->size = pcir.image_size;
+ image->type = pcir.image_type;
image->last = true;
return true;
}