search for: iowrite32_native

Displaying 20 results from an estimated 28 matches for "iowrite32_native".

2012 Aug 19
1
[PATCH 08/10] drm/nouveau: use ioread32_native/iowrite32_native for fifo control registers
...; - return ((volatile u32 *)chan->user)[addr / 4]; + return ioread32_native(chan->user + addr); } void _nouveau_fifo_channel_wr32(struct nouveau_object *object, u32 addr, u32 data) { struct nouveau_fifo_chan *chan = (void *)object; - ((volatile u32 *)chan->user)[addr / 4] = data; + iowrite32_native(data, chan->user + addr); } static int -- 1.7.8.6
2009 Sep 17
1
[PATCH 1/3] drm/nouveau: change channel regs mapping to ioremap
...ing the fifo */ - struct drm_local_map *user; + void __iomem *user; uint32_t user_get; uint32_t user_put; @@ -1047,11 +1047,8 @@ extern int nouveau_gem_ioctl_info(struct drm_device *, void *, #endif /* !ioread32_native */ /* channel control reg access */ -#define nvchan_wr32(reg, val) \ - iowrite32_native((val), \ - (void __force __iomem *)chan->user->handle + (reg)) -#define nvchan_rd32(reg) \ - ioread32_native((void __force __iomem *)chan->user->handle + (reg)) +#define nvchan_wr32(reg, val) iowrite32_native((val), chan->user + (reg)) +#define nvchan_rd32(reg) ioread32_native(chan...
2014 May 19
3
[PATCH 4/4] drm/nouveau: introduce CPU cache flushing macro
...oid __force __iomem *)mem); > - else > + else { > *mem = val; > + nv_cpu_cache_flush_area(mem, 2); > + } > } > > u32 > @@ -461,8 +463,10 @@ nouveau_bo_wr32(struct nouveau_bo *nvbo, unsigned index, u32 val) > mem = &mem[index]; > if (is_iomem) > iowrite32_native(val, (void __force __iomem *)mem); > - else > + else { > *mem = val; > + nv_cpu_cache_flush_area(mem, 4); > + } This looks rather like a sledgehammer to me. Effectively this turns nvbo into an uncached buffer. With additional overhead of constantly flushing caches. Wouldn't...
2012 Aug 19
1
[PATCH 09/10] drm/nv50/evo: store iomem pointer in properly typed field
...= ((struct evo_object *)object)->iomem; return ioread32_native(iomem + addr); } static void nv50_evo_wr32(struct nouveau_object *object, u32 addr, u32 data) { - void __iomem *iomem = object->oclass->ofuncs->rd08; + void __iomem *iomem = ((struct evo_object *)object)->iomem; iowrite32_native(data, iomem + addr); } @@ -60,7 +65,7 @@ nv50_evo_channel_del(struct nouveau_channel **pevo) nouveau_bo_ref(NULL, &evo->push.buffer); if (evo->object) - iounmap(evo->object->oclass->ofuncs); + iounmap(((struct evo_object *)evo->object)->iomem); kfree(evo); }...
2014 May 19
2
[PATCH 4/4] drm/nouveau: introduce CPU cache flushing macro
...nv_cpu_cache_flush_area(mem, 2); > > > + } > > > } > > > > > > u32 > > > @@ -461,8 +463,10 @@ nouveau_bo_wr32(struct nouveau_bo *nvbo, unsigned index, u32 val) > > > mem = &mem[index]; > > > if (is_iomem) > > > iowrite32_native(val, (void __force __iomem *)mem); > > > - else > > > + else { > > > *mem = val; > > > + nv_cpu_cache_flush_area(mem, 4); > > > + } > > > > This looks rather like a sledgehammer to me. Effectively this turns nvbo > > into an uncach...
2014 Jun 09
2
[PATCH 4/4] drm/nouveau: introduce CPU cache flushing macro
...cpu_cache_flush_area(mem, 2); >> > + } >> > } >> > >> > u32 >> > @@ -461,8 +463,10 @@ nouveau_bo_wr32(struct nouveau_bo *nvbo, unsigned index, u32 val) >> > mem = &mem[index]; >> > if (is_iomem) >> > iowrite32_native(val, (void __force __iomem *)mem); >> > - else >> > + else { >> > *mem = val; >> > + nv_cpu_cache_flush_area(mem, 4); >> > + } >> >> This looks rather like a sledgehammer to me. Effectively this turns nvbo >>...
2020 Apr 28
0
[PATCH v3 2/3] device: detect if changing endianness failed
...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.25.3
2014 May 19
0
[PATCH 4/4] drm/nouveau: introduce CPU cache flushing macro
...&mem[index]; if (is_iomem) iowrite16_native(val, (void __force __iomem *)mem); - else + else { *mem = val; + nv_cpu_cache_flush_area(mem, 2); + } } u32 @@ -461,8 +463,10 @@ nouveau_bo_wr32(struct nouveau_bo *nvbo, unsigned index, u32 val) mem = &mem[index]; if (is_iomem) iowrite32_native(val, (void __force __iomem *)mem); - else + else { *mem = val; + nv_cpu_cache_flush_area(mem, 4); + } } static struct ttm_tt * -- 1.9.2
2009 Aug 02
3
[PATCH 1/4] drm/nouveau: refactor VGA font save/restore
...rm_device *dev, unsigned offset) -{ - struct drm_nouveau_private *dev_priv = dev->dev_private; - return ioread32_native(dev_priv->fb + offset); -} - -static inline void nv_wf32(struct drm_device *dev, unsigned offset, u32 val) -{ - struct drm_nouveau_private *dev_priv = dev->dev_private; - iowrite32_native(val, dev_priv->fb + offset); -} - /* PRAMIN access */ static inline u32 nv_ri32(struct drm_device *dev, unsigned offset) { diff --git a/drivers/gpu/drm/nouveau/nouveau_hw.c b/drivers/gpu/drm/nouveau/nouveau_hw.c index 295b876..6f55f55 100644 --- a/drivers/gpu/drm/nouveau/nouveau_hw.c +++ b/dr...
2009 Aug 18
1
[PATCH 1/2] drm/nouveau: minor gem cleanups
Signed-off-by: Pekka Paalanen <pq at iki.fi> --- drivers/gpu/drm/nouveau/nouveau_gem.c | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c index 64e59fb..75cae79 100644 --- a/drivers/gpu/drm/nouveau/nouveau_gem.c +++ b/drivers/gpu/drm/nouveau/nouveau_gem.c @@ -595,7 +595,7 @@
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 +++
2014 May 19
0
[PATCH 4/4] drm/nouveau: introduce CPU cache flushing macro
...e { > > *mem = val; > > + nv_cpu_cache_flush_area(mem, 2); > > + } > > } > > > > u32 > > @@ -461,8 +463,10 @@ nouveau_bo_wr32(struct nouveau_bo *nvbo, unsigned index, u32 val) > > mem = &mem[index]; > > if (is_iomem) > > iowrite32_native(val, (void __force __iomem *)mem); > > - else > > + else { > > *mem = val; > > + nv_cpu_cache_flush_area(mem, 4); > > + } > > This looks rather like a sledgehammer to me. Effectively this turns nvbo > into an uncached buffer. With additional overhead of c...
2014 Jun 12
0
[PATCH 4/4] drm/nouveau: introduce CPU cache flushing macro
...t;>> > + } >>> > } >>> > >>> > u32 >>> > @@ -461,8 +463,10 @@ nouveau_bo_wr32(struct nouveau_bo *nvbo, unsigned index, u32 val) >>> > mem = &mem[index]; >>> > if (is_iomem) >>> > iowrite32_native(val, (void __force __iomem *)mem); >>> > - else >>> > + else { >>> > *mem = val; >>> > + nv_cpu_cache_flush_area(mem, 4); >>> > + } >>> >>> This looks rather like a sledgehammer to me. Effectiv...
2016 Jul 07
19
[Bug 96836] New: Kernel unaligned access at TPC[105d9fb4] nvkm_instobj_wr32+0x14/0x20
...og there are several repeating errors. log_unaligned: 598 callbacks suppressed Kernel unaligned access at TPC[105d9fb4] nvkm_instobj_wr32+0x14/0x20 [nouveau] Eventually the Xorg session gives up and times out. I'll try and attach some more logs but it appears to have something to do with the iowrite32_native macro on SPARC V9 systems. -- You are receiving this mail because: You are the assignee for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: <https://lists.freedesktop.org/archives/nouveau/attachments/20160707/c6c9e745/attachment.html>
2014 May 19
8
[PATCH 0/4] drm/ttm: nouveau: memory coherency fixes for ARM
This small series introduces TTM helper functions as well as Nouveau hooks that are needed to ensure buffer coherency on ARM. Most of this series is a forward-port of some patches Lucas Stach sent last year and that are also needed for Nouveau GK20A support: http://lists.freedesktop.org/archives/nouveau/2013-August/014026.html Another patch takes care of flushing the CPU write-buffer when
2016 Jul 13
1
[PATCH 1/2] ttm: remove special handling of coherent objects
...32_native((void __force __iomem *)mem); @@ -562,7 +529,7 @@ nouveau_bo_wr32(struct nouveau_bo *nvbo, unsigned index, u32 val) bool is_iomem; u32 *mem = ttm_kmap_obj_virtual(&nvbo->kmap, &is_iomem); - mem = nouveau_bo_mem_index(nvbo, index, mem); + mem += index; if (is_iomem) iowrite32_native(val, (void __force __iomem *)mem); @@ -1492,14 +1459,6 @@ nouveau_ttm_tt_populate(struct ttm_tt *ttm) dev = drm->dev; pdev = device->dev; - /* - * Objects matching this condition have been marked as force_coherent, - * so use the DMA API for them. - */ - if (!nvxx_device(&drm-&gt...
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 ---
2014 Dec 21
6
[Bug 87554] New: [NV1A] 3.19-rc1 NULL dereference on modprobe in pramin_fini
https://bugs.freedesktop.org/show_bug.cgi?id=87554 Bug ID: 87554 Summary: [NV1A] 3.19-rc1 NULL dereference on modprobe in pramin_fini Product: xorg Version: unspecified Hardware: x86 (IA32) OS: Linux (All) Status: NEW Severity: major Priority: medium Component:
2009 Aug 04
5
[PATCH 1/6] drm/nouveau: bo read/write wrappers for nv04_crtc.c
...s_iomem) + return ioread32_native((void __force __iomem *)mem); + else + return *mem; +} + +void +nouveau_bo_wr32(struct nouveau_bo *nvbo, unsigned index, u32 val) +{ + bool is_iomem; + u32 *mem = ttm_kmap_obj_virtual(&nvbo->kmap, &is_iomem); + mem = &mem[index]; + if (is_iomem) + iowrite32_native(val, (void __force __iomem *)mem); + else + *mem = val; +} static struct ttm_backend * nouveau_bo_create_ttm_backend_entry(struct ttm_bo_device *bdev) { diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.h b/drivers/gpu/drm/nouveau/nouveau_drv.h index c6143b8..44a7ab5 100644 --- a/drivers/gpu/drm...