search for: nvkm_device_endian

Displaying 10 results from an estimated 10 matches for "nvkm_device_endian".

2020 Oct 13
3
[PATCH] drm/nouveau/device: fix changing endianess code to work on older GPUs
...cc..7851bec5f0e5f 100644 --- a/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c +++ b/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c @@ -2924,17 +2924,34 @@ nvkm_device_del(struct nvkm_device **pdevice) } } +/* returns true if the GPU is in the CPU native byte order */ static inline bool nvkm_device_endianness(struct nvkm_device *device) { - u32 boot1 = nvkm_rd32(device, 0x000004) & 0x01000001; #ifdef __BIG_ENDIAN - if (!boot1) - return false; + const bool big_endian = true; #else - if (boot1) - return false; + const bool big_endian = false; #endif + + /* Read NV_PMC_BOOT_1, and assume non-...
2020 Apr 28
0
[PATCH v3 2/3] device: detect if changing endianness failed
.../drm/nouveau/nvkm/engine/device/base.c b/drm/nouveau/nvkm/engine/device/base.c index 37589f365..c732074bf 100644 --- a/drm/nouveau/nvkm/engine/device/base.c +++ b/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_qui...
2020 Oct 13
0
[PATCH] drm/nouveau/device: fix changing endianess code to work on older GPUs
...rm/nouveau/nvkm/engine/device/base.c > +++ b/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c > @@ -2924,17 +2924,34 @@ nvkm_device_del(struct nvkm_device **pdevice) > } > } > > +/* returns true if the GPU is in the CPU native byte order */ > static inline bool > nvkm_device_endianness(struct nvkm_device *device) > { > - u32 boot1 = nvkm_rd32(device, 0x000004) & 0x01000001; > #ifdef __BIG_ENDIAN > - if (!boot1) > - return false; > + const bool big_endian = true; > #else > - if (boot1) > - re...
2020 Apr 17
2
[PATCH 1/3] device: use the correct mmio size when mapping
Fixes warnings on GPUs with smaller a smaller mmio region like vGPUs. Signed-off-by: Karol Herbst <kherbst at redhat.com> --- drm/nouveau/nvkm/engine/device/base.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drm/nouveau/nvkm/engine/device/base.c b/drm/nouveau/nvkm/engine/device/base.c index 8ebbe1656..17676c75a 100644 --- a/drm/nouveau/nvkm/engine/device/base.c +++
2020 Apr 17
2
[PATCH v2 1/3] device: use the correct mmio size when mapping
Fixes warnings on GPUs with smaller a smaller mmio region like vGPUs. Signed-off-by: Karol Herbst <kherbst at redhat.com> --- drm/nouveau/nvkm/engine/device/base.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drm/nouveau/nvkm/engine/device/base.c b/drm/nouveau/nvkm/engine/device/base.c index 8ebbe1656..17676c75a 100644 --- a/drm/nouveau/nvkm/engine/device/base.c +++
2020 Oct 09
3
nouveau broken on Riva TNT2 in 5.9.0-rc8: GPU not supported on big-endian
...t and apparently that broke > something... I will give it some thoughts, but could you be so kind > and create an mmiotrace under 5.9 with nouveau? You won't need to > start X or anything while doing it. Just enable the trace and modprobe > nouveau and collect the trace. Looks like nvkm_device_endianness unconditionally reads out 0x4. I don't think that reg is there pre-NV11. At least NV4, NV5, NV10 and maybe NV15 (which is logically pre-NV11) don't support big-endian mode. Not sure about NV1A, which was the IGP of the series and IIRC logically pre-NV11 as well (but clearly could only b...
2020 Apr 28
3
[PATCH v3 1/3] device: rework mmio mapping code to get rid of second map
Fixes warnings on GPUs with smaller a smaller mmio region like vGPUs. Signed-off-by: Karol Herbst <kherbst at redhat.com> --- drm/nouveau/nvkm/engine/device/base.c | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/drm/nouveau/nvkm/engine/device/base.c b/drm/nouveau/nvkm/engine/device/base.c index 8ebbe1656..37589f365 100644 ---
2020 Oct 10
0
nouveau broken on Riva TNT2 in 5.9.0-rc8: GPU not supported on big-endian
...gt; > something... I will give it some thoughts, but could you be so kind > > and create an mmiotrace under 5.9 with nouveau? You won't need to > > start X or anything while doing it. Just enable the trace and modprobe > > nouveau and collect the trace. > > Looks like nvkm_device_endianness unconditionally reads out 0x4. I > don't think that reg is there pre-NV11. At least NV4, NV5, NV10 and > maybe NV15 (which is logically pre-NV11) don't support big-endian > mode. Not sure about NV1A, which was the IGP of the series and IIRC > logically pre-NV11 as well (but...
2020 Oct 28
1
nouveau broken on Riva TNT2 in 5.9.0-rc8: GPU not supported on big-endian
...ill give it some thoughts, but could you be so kind > > > and create an mmiotrace under 5.9 with nouveau? You won't need to > > > start X or anything while doing it. Just enable the trace and modprobe > > > nouveau and collect the trace. > > > > Looks like nvkm_device_endianness unconditionally reads out 0x4. I > > don't think that reg is there pre-NV11. At least NV4, NV5, NV10 and > > maybe NV15 (which is logically pre-NV11) don't support big-endian > > mode. Not sure about NV1A, which was the IGP of the series and IIRC > > logically pr...
2020 Oct 09
2
nouveau broken on Riva TNT2 in 5.9.0-rc8: GPU not supported on big-endian
Hello, I'm testing 5.9.0-rc8 and found that Riva TNT2 stopped working: [ 0.000000] Linux version 5.9.0-rc8+ (zary at gsql) (gcc (Debian 8.3.0-6) 8.3.0, GNU ld (GNU Binutils for Debian) 2.31.1) #326 SMP Fri Oct 9 22:31:40 CEST 2020 ... [ 14.771464] nouveau 0000:01:00.0: GPU not supported on big-endian [ 14.771782] nouveau: probe of 0000:01:00.0 failed with error -38 big-endian? WTF? The