diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2016-10-13 23:16:36 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-01-09 02:32:19 -0500 |
commit | d95ef8af5425f7ac99427b7d4fad5b4c8e54c879 (patch) | |
tree | d4cd06d8af4cbef2cce76ca57984ed96d1957ba4 /drivers/gpu | |
parent | 2c256b8e81bf7ce751531b679421df517e8e0ec5 (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.h | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadow.c | 7 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowacpi.c | 1 |
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 | ||
17 | int nvbios_extend(struct nvkm_bios *, u32 length); | 18 | int 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 | ||
104 | const struct nvbios_source | 105 | const struct nvbios_source |