aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/core/subdev/bios/image.c
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2014-09-22 11:21:57 +1000
committerBen Skeggs <bskeggs@redhat.com>2014-12-02 15:43:41 +1000
commit7205875d09e4fd60d21a448fe070c0ba3e6e9588 (patch)
treed8b16f03cee405d3feba919b491f53ccf9112b9d /drivers/gpu/drm/nouveau/core/subdev/bios/image.c
parentdrm/nouveau/bios: add NPDE parsing (diff)
downloadlinux-dev-7205875d09e4fd60d21a448fe070c0ba3e6e9588.tar.xz
linux-dev-7205875d09e4fd60d21a448fe070c0ba3e6e9588.zip
drm/nouveau/bios: use NPDE to locate images beyond those defined by PCIR
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/core/subdev/bios/image.c')
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bios/image.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/core/subdev/bios/image.c b/drivers/gpu/drm/nouveau/core/subdev/bios/image.c
index dd8fd2f4263b..df85cc6d0fc7 100644
--- a/drivers/gpu/drm/nouveau/core/subdev/bios/image.c
+++ b/drivers/gpu/drm/nouveau/core/subdev/bios/image.c
@@ -25,11 +25,13 @@
#include <subdev/bios.h>
#include <subdev/bios/image.h>
#include <subdev/bios/pcir.h>
+#include <subdev/bios/npde.h>
static bool
nvbios_imagen(struct nouveau_bios *bios, struct nvbios_image *image)
{
struct nvbios_pcirT pcir;
+ struct nvbios_npdeT npde;
u8 ver;
u16 hdr;
u32 data;
@@ -48,6 +50,11 @@ nvbios_imagen(struct nouveau_bios *bios, struct nvbios_image *image)
image->size = pcir.image_size;
image->type = pcir.image_type;
image->last = pcir.last;
+
+ if (!(data = nvbios_npdeTp(bios, image->base, &npde)))
+ return true;
+ image->size = npde.image_size;
+ image->last = npde.last;
return true;
}