| /kernel/linux/linux-6.6/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/ |
| D | gk20a.c | 54 struct gk20a_instmem *imem; member 145 struct gk20a_instmem *imem = obj->base.imem; in gk20a_instobj_iommu_recycle_vaddr() local 151 imem->vaddr_use -= nvkm_memory_size(&obj->base.memory); in gk20a_instobj_iommu_recycle_vaddr() 152 nvkm_debug(&imem->base.subdev, "vaddr used: %x/%x\n", imem->vaddr_use, in gk20a_instobj_iommu_recycle_vaddr() 153 imem->vaddr_max); in gk20a_instobj_iommu_recycle_vaddr() 160 gk20a_instmem_vaddr_gc(struct gk20a_instmem *imem, const u64 size) in gk20a_instmem_vaddr_gc() argument 162 while (imem->vaddr_use + size > imem->vaddr_max) { in gk20a_instmem_vaddr_gc() 164 if (list_empty(&imem->vaddr_lru)) in gk20a_instmem_vaddr_gc() 168 list_first_entry(&imem->vaddr_lru, in gk20a_instmem_vaddr_gc() 177 struct gk20a_instmem *imem = node->imem; in gk20a_instobj_acquire_dma() local [all …]
|
| D | base.c | 74 nvkm_instobj_dtor(struct nvkm_instmem *imem, struct nvkm_instobj *iobj) in nvkm_instobj_dtor() argument 76 spin_lock(&imem->lock); in nvkm_instobj_dtor() 78 spin_unlock(&imem->lock); in nvkm_instobj_dtor() 83 struct nvkm_instmem *imem, struct nvkm_instobj *iobj) in nvkm_instobj_ctor() argument 87 spin_lock(&imem->lock); in nvkm_instobj_ctor() 88 list_add_tail(&iobj->head, &imem->list); in nvkm_instobj_ctor() 89 spin_unlock(&imem->lock); in nvkm_instobj_ctor() 96 struct nvkm_instmem *imem = device->imem; in nvkm_instobj_wrap() local 98 if (!imem->func->memory_wrap) in nvkm_instobj_wrap() 101 return imem->func->memory_wrap(imem, memory, pmemory); in nvkm_instobj_wrap() [all …]
|
| D | nv40.c | 43 struct nv40_instmem *imem; member 51 iowrite32_native(data, iobj->imem->iomem + iobj->node->offset + offset); in nv40_instobj_wr32() 58 return ioread32_native(iobj->imem->iomem + iobj->node->offset + offset); in nv40_instobj_rd32() 77 return iobj->imem->iomem + iobj->node->offset; in nv40_instobj_acquire() 102 mutex_lock(&iobj->imem->base.mutex); in nv40_instobj_dtor() 103 nvkm_mm_free(&iobj->imem->heap, &iobj->node); in nv40_instobj_dtor() 104 mutex_unlock(&iobj->imem->base.mutex); in nv40_instobj_dtor() 105 nvkm_instobj_dtor(&iobj->imem->base, &iobj->base); in nv40_instobj_dtor() 123 struct nv40_instmem *imem = nv40_instmem(base); in nv40_instobj_new() local 131 nvkm_instobj_ctor(&nv40_instobj_func, &imem->base, &iobj->base); in nv40_instobj_new() [all …]
|
| D | nv04.c | 41 struct nv04_instmem *imem; member 49 struct nvkm_device *device = iobj->imem->base.subdev.device; in nv04_instobj_wr32() 57 struct nvkm_device *device = iobj->imem->base.subdev.device; in nv04_instobj_rd32() 76 struct nvkm_device *device = iobj->imem->base.subdev.device; in nv04_instobj_acquire() 102 mutex_lock(&iobj->imem->base.mutex); in nv04_instobj_dtor() 103 nvkm_mm_free(&iobj->imem->heap, &iobj->node); in nv04_instobj_dtor() 104 mutex_unlock(&iobj->imem->base.mutex); in nv04_instobj_dtor() 105 nvkm_instobj_dtor(&iobj->imem->base, &iobj->base); in nv04_instobj_dtor() 123 struct nv04_instmem *imem = nv04_instmem(base); in nv04_instobj_new() local 131 nvkm_instobj_ctor(&nv04_instobj_func, &imem->base, &iobj->base); in nv04_instobj_new() [all …]
|
| D | nv50.c | 47 struct nv50_instmem *imem; member 59 struct nv50_instmem *imem = iobj->imem; in nv50_instobj_wr32_slow() local 60 struct nvkm_device *device = imem->base.subdev.device; in nv50_instobj_wr32_slow() 65 spin_lock_irqsave(&imem->base.lock, flags); in nv50_instobj_wr32_slow() 66 if (unlikely(imem->addr != base)) { in nv50_instobj_wr32_slow() 68 imem->addr = base; in nv50_instobj_wr32_slow() 71 spin_unlock_irqrestore(&imem->base.lock, flags); in nv50_instobj_wr32_slow() 78 struct nv50_instmem *imem = iobj->imem; in nv50_instobj_rd32_slow() local 79 struct nvkm_device *device = imem->base.subdev.device; in nv50_instobj_rd32_slow() 85 spin_lock_irqsave(&imem->base.lock, flags); in nv50_instobj_rd32_slow() [all …]
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/ |
| D | gk20a.c | 54 struct gk20a_instmem *imem; member 145 struct gk20a_instmem *imem = obj->base.imem; in gk20a_instobj_iommu_recycle_vaddr() local 151 imem->vaddr_use -= nvkm_memory_size(&obj->base.memory); in gk20a_instobj_iommu_recycle_vaddr() 152 nvkm_debug(&imem->base.subdev, "vaddr used: %x/%x\n", imem->vaddr_use, in gk20a_instobj_iommu_recycle_vaddr() 153 imem->vaddr_max); in gk20a_instobj_iommu_recycle_vaddr() 160 gk20a_instmem_vaddr_gc(struct gk20a_instmem *imem, const u64 size) in gk20a_instmem_vaddr_gc() argument 162 while (imem->vaddr_use + size > imem->vaddr_max) { in gk20a_instmem_vaddr_gc() 164 if (list_empty(&imem->vaddr_lru)) in gk20a_instmem_vaddr_gc() 168 list_first_entry(&imem->vaddr_lru, in gk20a_instmem_vaddr_gc() 177 struct gk20a_instmem *imem = node->imem; in gk20a_instobj_acquire_dma() local [all …]
|
| D | base.c | 74 nvkm_instobj_dtor(struct nvkm_instmem *imem, struct nvkm_instobj *iobj) in nvkm_instobj_dtor() argument 76 spin_lock(&imem->lock); in nvkm_instobj_dtor() 78 spin_unlock(&imem->lock); in nvkm_instobj_dtor() 83 struct nvkm_instmem *imem, struct nvkm_instobj *iobj) in nvkm_instobj_ctor() argument 87 spin_lock(&imem->lock); in nvkm_instobj_ctor() 88 list_add_tail(&iobj->head, &imem->list); in nvkm_instobj_ctor() 89 spin_unlock(&imem->lock); in nvkm_instobj_ctor() 93 nvkm_instobj_new(struct nvkm_instmem *imem, u32 size, u32 align, bool zero, in nvkm_instobj_new() argument 96 struct nvkm_subdev *subdev = &imem->subdev; in nvkm_instobj_new() 101 ret = imem->func->memory_new(imem, size, align, zero, &memory); in nvkm_instobj_new() [all …]
|
| D | nv40.c | 43 struct nv40_instmem *imem; member 51 iowrite32_native(data, iobj->imem->iomem + iobj->node->offset + offset); in nv40_instobj_wr32() 58 return ioread32_native(iobj->imem->iomem + iobj->node->offset + offset); in nv40_instobj_rd32() 77 return iobj->imem->iomem + iobj->node->offset; in nv40_instobj_acquire() 102 mutex_lock(&iobj->imem->base.subdev.mutex); in nv40_instobj_dtor() 103 nvkm_mm_free(&iobj->imem->heap, &iobj->node); in nv40_instobj_dtor() 104 mutex_unlock(&iobj->imem->base.subdev.mutex); in nv40_instobj_dtor() 105 nvkm_instobj_dtor(&iobj->imem->base, &iobj->base); in nv40_instobj_dtor() 123 struct nv40_instmem *imem = nv40_instmem(base); in nv40_instobj_new() local 131 nvkm_instobj_ctor(&nv40_instobj_func, &imem->base, &iobj->base); in nv40_instobj_new() [all …]
|
| D | nv04.c | 41 struct nv04_instmem *imem; member 49 struct nvkm_device *device = iobj->imem->base.subdev.device; in nv04_instobj_wr32() 57 struct nvkm_device *device = iobj->imem->base.subdev.device; in nv04_instobj_rd32() 76 struct nvkm_device *device = iobj->imem->base.subdev.device; in nv04_instobj_acquire() 102 mutex_lock(&iobj->imem->base.subdev.mutex); in nv04_instobj_dtor() 103 nvkm_mm_free(&iobj->imem->heap, &iobj->node); in nv04_instobj_dtor() 104 mutex_unlock(&iobj->imem->base.subdev.mutex); in nv04_instobj_dtor() 105 nvkm_instobj_dtor(&iobj->imem->base, &iobj->base); in nv04_instobj_dtor() 123 struct nv04_instmem *imem = nv04_instmem(base); in nv04_instobj_new() local 131 nvkm_instobj_ctor(&nv04_instobj_func, &imem->base, &iobj->base); in nv04_instobj_new() [all …]
|
| D | nv50.c | 47 struct nv50_instmem *imem; member 59 struct nv50_instmem *imem = iobj->imem; in nv50_instobj_wr32_slow() local 60 struct nvkm_device *device = imem->base.subdev.device; in nv50_instobj_wr32_slow() 65 spin_lock_irqsave(&imem->base.lock, flags); in nv50_instobj_wr32_slow() 66 if (unlikely(imem->addr != base)) { in nv50_instobj_wr32_slow() 68 imem->addr = base; in nv50_instobj_wr32_slow() 71 spin_unlock_irqrestore(&imem->base.lock, flags); in nv50_instobj_wr32_slow() 78 struct nv50_instmem *imem = iobj->imem; in nv50_instobj_rd32_slow() local 79 struct nvkm_device *device = imem->base.subdev.device; in nv50_instobj_rd32_slow() 85 spin_lock_irqsave(&imem->base.lock, flags); in nv50_instobj_rd32_slow() [all …]
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/sram/ |
| D | qcom,imem.yaml | 4 $id: http://devicetree.org/schemas/sram/qcom,imem.yaml# 7 title: Qualcomm IMEM memory region 13 Qualcomm IMEM is dedicated memory region for various debug features and DMA 20 - qcom,apq8064-imem 21 - qcom,msm8226-imem 22 - qcom,msm8974-imem 23 - qcom,qcs404-imem 24 - qcom,qdu1000-imem 25 - qcom,sc7180-imem 26 - qcom,sc7280-imem [all …]
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/nouveau/nvkm/engine/fifo/ |
| D | dmanv40.c | 65 struct nvkm_instmem *imem = device->imem; in nv40_fifo_dma_engine_fini() local 79 nvkm_kmap(imem->ramfc); in nv40_fifo_dma_engine_fini() 80 nvkm_wo32(imem->ramfc, chan->ramfc + ctx, 0x00000000); in nv40_fifo_dma_engine_fini() 81 nvkm_done(imem->ramfc); in nv40_fifo_dma_engine_fini() 95 struct nvkm_instmem *imem = device->imem; in nv40_fifo_dma_engine_init() local 110 nvkm_kmap(imem->ramfc); in nv40_fifo_dma_engine_init() 111 nvkm_wo32(imem->ramfc, chan->ramfc + ctx, inst); in nv40_fifo_dma_engine_init() 112 nvkm_done(imem->ramfc); in nv40_fifo_dma_engine_init() 147 struct nvkm_instmem *imem = chan->fifo->base.engine.subdev.device->imem; in nv40_fifo_dma_object_ctor() local 163 hash = nvkm_ramht_insert(imem->ramht, object, chan->base.chid, 4, in nv40_fifo_dma_object_ctor() [all …]
|
| D | dmanv04.c | 39 struct nvkm_instmem *imem = chan->fifo->base.engine.subdev.device->imem; in nv04_fifo_dma_object_dtor() local 42 nvkm_ramht_remove(imem->ramht, cookie); in nv04_fifo_dma_object_dtor() 51 struct nvkm_instmem *imem = chan->fifo->base.engine.subdev.device->imem; in nv04_fifo_dma_object_ctor() local 67 hash = nvkm_ramht_insert(imem->ramht, object, chan->base.chid, 4, in nv04_fifo_dma_object_ctor() 79 struct nvkm_memory *fctx = device->imem->ramfc; in nv04_fifo_dma_fini() 144 struct nvkm_instmem *imem = fifo->base.engine.subdev.device->imem; in nv04_fifo_dma_dtor() local 147 nvkm_kmap(imem->ramfc); in nv04_fifo_dma_dtor() 149 nvkm_wo32(imem->ramfc, chan->ramfc + c->ctxp, 0x00000000); in nv04_fifo_dma_dtor() 151 nvkm_done(imem->ramfc); in nv04_fifo_dma_dtor() 175 struct nvkm_instmem *imem = device->imem; in nv04_fifo_dma_new() local [all …]
|
| D | dmanv17.c | 46 struct nvkm_instmem *imem = device->imem; in nv17_fifo_dma_new() local 77 nvkm_kmap(imem->ramfc); in nv17_fifo_dma_new() 78 nvkm_wo32(imem->ramfc, chan->ramfc + 0x00, args->v0.offset); in nv17_fifo_dma_new() 79 nvkm_wo32(imem->ramfc, chan->ramfc + 0x04, args->v0.offset); in nv17_fifo_dma_new() 80 nvkm_wo32(imem->ramfc, chan->ramfc + 0x0c, chan->base.push->addr >> 4); in nv17_fifo_dma_new() 81 nvkm_wo32(imem->ramfc, chan->ramfc + 0x14, in nv17_fifo_dma_new() 88 nvkm_done(imem->ramfc); in nv17_fifo_dma_new()
|
| D | dmanv10.c | 46 struct nvkm_instmem *imem = device->imem; in nv10_fifo_dma_new() local 76 nvkm_kmap(imem->ramfc); in nv10_fifo_dma_new() 77 nvkm_wo32(imem->ramfc, chan->ramfc + 0x00, args->v0.offset); in nv10_fifo_dma_new() 78 nvkm_wo32(imem->ramfc, chan->ramfc + 0x04, args->v0.offset); in nv10_fifo_dma_new() 79 nvkm_wo32(imem->ramfc, chan->ramfc + 0x0c, chan->base.push->addr >> 4); in nv10_fifo_dma_new() 80 nvkm_wo32(imem->ramfc, chan->ramfc + 0x14, in nv10_fifo_dma_new() 87 nvkm_done(imem->ramfc); in nv10_fifo_dma_new()
|
| /kernel/linux/linux-6.6/drivers/net/wwan/iosm/ |
| D | iosm_ipc_imem.h | 387 * Returns: Initialized imem pointer on success else NULL 395 * @ipc_imem: Pointer to imem data-struct 403 * @ipc_imem: Pointer to imem data-struct 410 * @ipc_imem: Pointer to imem data-struct 416 * @ipc_imem: Pointer to imem data-struct 422 * @ipc_imem: Pointer to imem data-struct 429 * @ipc_imem: Pointer to imem instance 437 * @ipc_imem: Pointer to imem data-struct 446 * @ipc_imem: Pointer to imem data-struct 453 * @ipc_imem: Pointer to imem data-struct [all …]
|
| D | iosm_ipc_mux.c | 13 channel_id = ipc_imem_channel_alloc(ipc_mux->imem, ipc_mux->instance_id, in ipc_mux_channel_create() 25 ipc_mux->channel = ipc_imem_channel_open(ipc_mux->imem, channel_id, in ipc_mux_channel_create() 187 ipc_imem_channel_close(ipc_mux->imem, ipc_mux->channel_id); in ipc_mux_channel_close() 223 ipc_imem_td_update_timer_suspend(ipc_mux->imem, true); in ipc_mux_schedule() 227 ipc_imem_td_update_timer_suspend(ipc_mux->imem, false); in ipc_mux_schedule() 236 ipc_imem_td_update_timer_suspend(ipc_mux->imem, true); in ipc_mux_schedule() 240 ipc_imem_td_update_timer_suspend(ipc_mux->imem, false); in ipc_mux_schedule() 279 struct iosm_imem *imem) in ipc_mux_init() argument 295 ipc_mux->pcie = imem->pcie; in ipc_mux_init() 296 ipc_mux->imem = imem; in ipc_mux_init() [all …]
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/nouveau/nvkm/engine/device/ |
| D | base.c | 86 .imem = nv04_instmem_new, 107 .imem = nv04_instmem_new, 129 .imem = nv04_instmem_new, 149 .imem = nv04_instmem_new, 171 .imem = nv04_instmem_new, 193 .imem = nv04_instmem_new, 215 .imem = nv04_instmem_new, 237 .imem = nv04_instmem_new, 259 .imem = nv04_instmem_new, 281 .imem = nv04_instmem_new, [all …]
|
| /kernel/linux/linux-5.10/drivers/remoteproc/ |
| D | qcom_pil_info.c | 33 struct resource imem; in qcom_pil_info_init() local 45 ret = of_address_to_resource(np, 0, &imem); in qcom_pil_info_init() 50 base = ioremap(imem.start, resource_size(&imem)); in qcom_pil_info_init() 56 memset_io(base, 0, resource_size(&imem)); in qcom_pil_info_init() 59 _reloc.num_entries = (u32)resource_size(&imem) / PIL_RELOC_ENTRY_SIZE; in qcom_pil_info_init() 65 * qcom_pil_info_store() - store PIL information of image in IMEM
|
| /kernel/linux/linux-6.6/drivers/remoteproc/ |
| D | qcom_pil_info.c | 33 struct resource imem; in qcom_pil_info_init() local 45 ret = of_address_to_resource(np, 0, &imem); in qcom_pil_info_init() 50 base = ioremap(imem.start, resource_size(&imem)); in qcom_pil_info_init() 56 memset_io(base, 0, resource_size(&imem)); in qcom_pil_info_init() 59 _reloc.num_entries = (u32)resource_size(&imem) / PIL_RELOC_ENTRY_SIZE; in qcom_pil_info_init() 65 * qcom_pil_info_store() - store PIL information of image in IMEM
|
| /kernel/linux/linux-6.6/drivers/gpu/drm/nouveau/nvkm/engine/fifo/ |
| D | nv40.c | 41 struct nvkm_memory *ramfc = chan->cgrp->runl->fifo->engine.subdev.device->imem->ramfc; in nv40_chan_ramfc_write() 114 struct nvkm_instmem *imem = fifo->engine.subdev.device->imem; in nv40_eobj_ramht_add() local 119 hash = nvkm_ramht_insert(imem->ramht, eobj, chan->id, 4, eobj->handle, context); in nv40_eobj_ramht_add() 129 struct nvkm_memory *ramfc = device->imem->ramfc; in nv40_ectx_bind() 185 struct nvkm_instmem *imem = device->imem; in nv40_fifo_init() local 186 struct nvkm_ramht *ramht = imem->ramht; in nv40_fifo_init() 187 struct nvkm_memory *ramro = imem->ramro; in nv40_fifo_init() 188 struct nvkm_memory *ramfc = imem->ramfc; in nv40_fifo_init()
|
| D | nv17.c | 40 struct nvkm_memory *ramfc = chan->cgrp->runl->fifo->engine.subdev.device->imem->ramfc; in nv17_chan_ramfc_write() 96 struct nvkm_instmem *imem = device->imem; in nv17_fifo_init() local 97 struct nvkm_ramht *ramht = imem->ramht; in nv17_fifo_init() 98 struct nvkm_memory *ramro = imem->ramro; in nv17_fifo_init() 99 struct nvkm_memory *ramfc = imem->ramfc; in nv17_fifo_init()
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/nouveau/nvkm/engine/mpeg/ |
| D | nv40.c | 33 struct nvkm_instmem *imem = device->imem; in nv40_mpeg_mthd_dma() local 37 u32 dma0 = nvkm_instmem_rd32(imem, inst + 0); in nv40_mpeg_mthd_dma() 38 u32 dma1 = nvkm_instmem_rd32(imem, inst + 4); in nv40_mpeg_mthd_dma() 39 u32 dma2 = nvkm_instmem_rd32(imem, inst + 8); in nv40_mpeg_mthd_dma()
|
| /kernel/linux/linux-6.6/drivers/gpu/drm/nouveau/nvkm/engine/mpeg/ |
| D | nv40.c | 33 struct nvkm_instmem *imem = device->imem; in nv40_mpeg_mthd_dma() local 37 u32 dma0 = nvkm_instmem_rd32(imem, inst + 0); in nv40_mpeg_mthd_dma() 38 u32 dma1 = nvkm_instmem_rd32(imem, inst + 4); in nv40_mpeg_mthd_dma() 39 u32 dma2 = nvkm_instmem_rd32(imem, inst + 8); in nv40_mpeg_mthd_dma()
|
| /kernel/linux/linux-6.6/drivers/gpu/drm/nouveau/nvkm/engine/device/ |
| D | base.c | 85 .imem = { 0x00000001, nv04_instmem_new }, 106 .imem = { 0x00000001, nv04_instmem_new }, 128 .imem = { 0x00000001, nv04_instmem_new }, 148 .imem = { 0x00000001, nv04_instmem_new }, 170 .imem = { 0x00000001, nv04_instmem_new }, 192 .imem = { 0x00000001, nv04_instmem_new }, 214 .imem = { 0x00000001, nv04_instmem_new }, 236 .imem = { 0x00000001, nv04_instmem_new }, 258 .imem = { 0x00000001, nv04_instmem_new }, 280 .imem = { 0x00000001, nv04_instmem_new }, [all …]
|