summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2015-02-02 09:08:14 +1000
committerBen Skeggs <bskeggs@redhat.com>2015-02-02 09:11:51 +1000
commit7ca9e1d70f147945417c70cdc751acf4c5930c98 (patch)
tree2659a943015aed102b343a0a164d0ca2c1050bb2
parentc0c11820fad9fc922c406bdd67dcbf5c9e2e46d1 (diff)
downloadnouveau-7ca9e1d70f147945417c70cdc751acf4c5930c98.tar.gz
device: post write to NV_PMC_BOOT_1 when flipping endian switch
fdo#88868 Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r--drm/nouveau/nvkm/engine/device/base.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drm/nouveau/nvkm/engine/device/base.c b/drm/nouveau/nvkm/engine/device/base.c
index 29bd539af..6efa8f38f 100644
--- a/drm/nouveau/nvkm/engine/device/base.c
+++ b/drm/nouveau/nvkm/engine/device/base.c
@@ -340,11 +340,13 @@ nvkm_devobj_ctor(struct nvkm_object *parent, struct nvkm_object *engine,
/* switch mmio to cpu's native endianness */
#ifndef __BIG_ENDIAN
- if (ioread32_native(map + 0x000004) != 0x00000000)
+ if (ioread32_native(map + 0x000004) != 0x00000000) {
#else
- if (ioread32_native(map + 0x000004) == 0x00000000)
+ if (ioread32_native(map + 0x000004) == 0x00000000) {
#endif
iowrite32_native(0x01000001, map + 0x000004);
+ ioread32_native(map);
+ }
/* read boot0 and strapping information */
boot0 = ioread32_native(map + 0x000000);