summaryrefslogtreecommitdiff
path: root/nvkm
diff options
context:
space:
mode:
Diffstat (limited to 'nvkm')
-rw-r--r--nvkm/subdev/bios/image.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/nvkm/subdev/bios/image.c b/nvkm/subdev/bios/image.c
index 64ed641b8..dd8fd2f42 100644
--- a/nvkm/subdev/bios/image.c
+++ b/nvkm/subdev/bios/image.c
@@ -47,7 +47,7 @@ nvbios_imagen(struct nouveau_bios *bios, struct nvbios_image *image)
return false;
image->size = pcir.image_size;
image->type = pcir.image_type;
- image->last = true;
+ image->last = pcir.last;
return true;
}
@@ -55,7 +55,10 @@ bool
nvbios_image(struct nouveau_bios *bios, int idx, struct nvbios_image *image)
{
memset(image, 0x00, sizeof(*image));
- if (idx)
- return false;
- return nvbios_imagen(bios, image);
+ do {
+ image->base += image->size;
+ if (image->last || !nvbios_imagen(bios, image))
+ return false;
+ } while(idx--);
+ return true;
}