diff options
Diffstat (limited to 'SOURCES/0001-device-detect-if-changing-endianness-failed.patch')
-rw-r--r-- | SOURCES/0001-device-detect-if-changing-endianness-failed.patch | 62 |
1 files changed, 0 insertions, 62 deletions
diff --git a/SOURCES/0001-device-detect-if-changing-endianness-failed.patch b/SOURCES/0001-device-detect-if-changing-endianness-failed.patch deleted file mode 100644 index 1089b7e..0000000 --- a/SOURCES/0001-device-detect-if-changing-endianness-failed.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Karol Herbst <kherbst@redhat.com> -Date: Tue, 28 Apr 2020 18:54:03 +0200 -Subject: [PATCH] device: detect if changing endianness failed - -v2: relax the checks a little - -Signed-off-by: Karol Herbst <kherbst@redhat.com> -Signed-off-by: Ben Skeggs <bskeggs@redhat.com> ---- - .../gpu/drm/nouveau/nvkm/engine/device/base.c | 26 +++++++++++++++---- - 1 file changed, 21 insertions(+), 5 deletions(-) - -diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c -index 37589f36546d..c732074bf790 100644 ---- a/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c -+++ b/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c -@@ -2924,6 +2924,20 @@ nvkm_device_del(struct nvkm_device **pdevice) - } - } - -+static inline bool -+nvkm_device_endianness(void __iomem *pri) -+{ -+ u32 boot1 = ioread32_native(pri + 0x000004) & 0x01000001; -+#ifdef __BIG_ENDIAN -+ if (!boot1) -+ return false; -+#else -+ if (boot1) -+ return false; -+#endif -+ return true; -+} -+ - int - nvkm_device_ctor(const struct nvkm_device_func *func, - const struct nvkm_device_quirk *quirk, -@@ -2973,13 +2987,15 @@ nvkm_device_ctor(const struct nvkm_device_func *func, - /* identify the chipset, and determine classes of subdev/engines */ - if (detect) { - /* switch mmio to cpu's native endianness */ --#ifndef __BIG_ENDIAN -- if (ioread32_native(map + 0x000004) != 0x00000000) { --#else -- if (ioread32_native(map + 0x000004) == 0x00000000) { --#endif -+ if (!nvkm_device_endianness(map)) { - iowrite32_native(0x01000001, map + 0x000004); - ioread32_native(map); -+ if (!nvkm_device_endianness(map)) { -+ nvdev_error(device, -+ "GPU not supported on big-endian\n"); -+ ret = -ENOSYS; -+ goto done; -+ } - } - - /* read boot0 and strapping information */ --- -2.26.2 - |