aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2016-10-13 23:16:36 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-01-09 02:32:19 -0500
commitd95ef8af5425f7ac99427b7d4fad5b4c8e54c879 (patch)
treed4cd06d8af4cbef2cce76ca57984ed96d1957ba4 /drivers/gpu
parent2c256b8e81bf7ce751531b679421df517e8e0ec5 (diff)
drm/nouveau/bios: require checksum to match for fast acpi shadow method
commit 5dc7f4aa9d84ea94b54a9bfcef095f0289f1ebda upstream. Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/subdev/bios/priv.h1
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadow.c7
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowacpi.c1
3 files changed, 7 insertions, 2 deletions
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/priv.h b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/priv.h
index 212800ecdce9..7d1d3c6b4b72 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/priv.h
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/priv.h
@@ -12,6 +12,7 @@ struct nvbios_source {
12 bool rw; 12 bool rw;
13 bool ignore_checksum; 13 bool ignore_checksum;
14 bool no_pcir; 14 bool no_pcir;
15 bool require_checksum;
15}; 16};
16 17
17int nvbios_extend(struct nvkm_bios *, u32 length); 18int nvbios_extend(struct nvkm_bios *, u32 length);
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadow.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadow.c
index b2557e87afdd..7deb81b6dbac 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadow.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadow.c
@@ -86,9 +86,12 @@ shadow_image(struct nvkm_bios *bios, int idx, u32 offset, struct shadow *mthd)
86 nvbios_checksum(&bios->data[image.base], image.size)) { 86 nvbios_checksum(&bios->data[image.base], image.size)) {
87 nvkm_debug(subdev, "%08x: checksum failed\n", 87 nvkm_debug(subdev, "%08x: checksum failed\n",
88 image.base); 88 image.base);
89 if (mthd->func->rw) 89 if (!mthd->func->require_checksum) {
90 if (mthd->func->rw)
91 score += 1;
90 score += 1; 92 score += 1;
91 score += 1; 93 } else
94 return 0;
92 } else { 95 } else {
93 score += 3; 96 score += 3;
94 } 97 }
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowacpi.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowacpi.c
index 8fecb5ff22a0..06572f8ce914 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowacpi.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowacpi.c
@@ -99,6 +99,7 @@ nvbios_acpi_fast = {
99 .init = acpi_init, 99 .init = acpi_init,
100 .read = acpi_read_fast, 100 .read = acpi_read_fast,
101 .rw = false, 101 .rw = false,
102 .require_checksum = true,
102}; 103};
103 104
104const struct nvbios_source 105const struct nvbios_source