| /drivers/gpu/drm/panthor/ |
| A D | panthor_gpu.c | 93 ptdev->gpu_info.gpu_id = gpu_read(ptdev, GPU_ID); in panthor_gpu_init_info() 94 ptdev->gpu_info.csf_id = gpu_read(ptdev, GPU_CSF_ID); in panthor_gpu_init_info() 95 ptdev->gpu_info.gpu_rev = gpu_read(ptdev, GPU_REVID); in panthor_gpu_init_info() 96 ptdev->gpu_info.core_features = gpu_read(ptdev, GPU_CORE_FEATURES); in panthor_gpu_init_info() 97 ptdev->gpu_info.l2_features = gpu_read(ptdev, GPU_L2_FEATURES); in panthor_gpu_init_info() 98 ptdev->gpu_info.tiler_features = gpu_read(ptdev, GPU_TILER_FEATURES); in panthor_gpu_init_info() 99 ptdev->gpu_info.mem_features = gpu_read(ptdev, GPU_MEM_FEATURES); in panthor_gpu_init_info() 100 ptdev->gpu_info.mmu_features = gpu_read(ptdev, GPU_MMU_FEATURES); in panthor_gpu_init_info() 109 ptdev->gpu_info.as_present = gpu_read(ptdev, GPU_AS_PRESENT); in panthor_gpu_init_info() 113 ptdev->gpu_info.l2_present = gpu_read64(ptdev, GPU_L2_PRESENT); in panthor_gpu_init_info() [all …]
|
| A D | panthor_device.c | 27 ptdev->coherent = device_get_dma_attr(ptdev->base.dev) == DEV_DMA_COHERENT; in panthor_gpu_coherency_init() 29 if (!ptdev->coherent) in panthor_gpu_coherency_init() 45 ptdev->clks.core = devm_clk_get(ptdev->base.dev, NULL); in panthor_clk_init() 51 ptdev->clks.stacks = devm_clk_get_optional(ptdev->base.dev, "stacks"); in panthor_clk_init() 57 ptdev->clks.coregroup = devm_clk_get_optional(ptdev->base.dev, "coregroup"); in panthor_clk_init() 63 drm_info(&ptdev->base, "clock rate = %lu\n", clk_get_rate(ptdev->clks.core)); in panthor_clk_init() 95 drm_WARN_ON(&ptdev->base, pm_runtime_get_sync(ptdev->base.dev) < 0); in panthor_device_unplug() 175 ret = drmm_mutex_init(&ptdev->base, &ptdev->unplug.lock); in panthor_device_init() 179 ret = drmm_mutex_init(&ptdev->base, &ptdev->pm.mmio_lock); in panthor_device_init() 184 drmm_mutex_init(&ptdev->base, &ptdev->gems.lock); in panthor_device_init() [all …]
|
| A D | panthor_fw.c | 271 return ptdev->fw->vm; in panthor_fw_vm() 448 mem = panthor_kernel_bo_create(ptdev, ptdev->fw->vm, SZ_8K, in panthor_fw_alloc_queue_iface_mem() 482 return panthor_kernel_bo_create(ptdev, panthor_fw_vm(ptdev), size, in panthor_fw_alloc_suspend_buf_mem() 543 drm_err(&ptdev->base, in panthor_fw_load_section_entry() 603 section->mem = panthor_kernel_bo_create(ptdev, panthor_fw_vm(ptdev), in panthor_fw_load_section_entry() 734 drm_err(&ptdev->base, in panthor_fw_load_entry() 1007 mod_delayed_work(ptdev->reset.wq, &ptdev->fw->watchdog.ping_work, in panthor_fw_init_global_iface() 1037 ptdev->fw->booted, in panthor_fw_start() 1187 panthor_gpu_power_off(ptdev, L2, ptdev->gpu_info.l2_present, 20000); in panthor_fw_unplug() 1315 struct panthor_device *ptdev = fw->irq.ptdev; in panthor_fw_ping_work() local [all …]
|
| A D | panthor_device.h | 58 struct panthor_device *ptdev; member 231 struct panthor_device *ptdev; member 271 queue_work(ptdev->reset.wq, &ptdev->reset.work); in panthor_device_schedule_reset() 392 struct panthor_device *ptdev = pirq->ptdev; \ 406 struct panthor_device *ptdev = pirq->ptdev; \ 445 pirq->ptdev = ptdev; \ 460 writel(data, ptdev->iomem + reg); in gpu_write() 481 return (gpu_read(ptdev, reg) | ((u64)gpu_read(ptdev, reg + 4) << 32)); in gpu_read64() 494 hi1 = gpu_read(ptdev, reg + 4); in gpu_read64_counter() 495 lo = gpu_read(ptdev, reg); in gpu_read64_counter() [all …]
|
| A D | panthor_mmu.c | 598 struct panthor_device *ptdev = vm->ptdev; in mmu_hw_do_operation() local 674 struct panthor_device *ptdev = vm->ptdev; in panthor_vm_release_as_locked() local 698 struct panthor_device *ptdev = vm->ptdev; in panthor_vm_active() local 773 ptdev->mmu->irq.mask |= panthor_mmu_as_fault_mask(ptdev, as); in panthor_vm_active() 774 gpu_write(ptdev, MMU_INT_MASK, ~ptdev->mmu->as.faulty_mask); in panthor_vm_active() 808 struct panthor_device *ptdev = vm->ptdev; in panthor_vm_idle() local 872 struct panthor_device *ptdev = vm->ptdev; in panthor_vm_flush_range() local 890 struct panthor_device *ptdev = vm->ptdev; in panthor_vm_unmap_pages() local 920 struct panthor_device *ptdev = vm->ptdev; in panthor_vm_map_pages() local 1828 struct panthor_device *ptdev = vm->ptdev; in panthor_vm_free() local [all …]
|
| A D | panthor_sched.c | 854 struct panthor_device *ptdev = group->ptdev; in panthor_queue_get_syncwait_obj() local 930 struct panthor_device *ptdev = group->ptdev; in group_release() local 964 struct panthor_device *ptdev = group->ptdev; in group_bind_locked() local 1006 struct panthor_device *ptdev = group->ptdev; in group_unbind_locked() local 1433 struct panthor_device *ptdev = group->ptdev; in group_process_tiler_oom() local 1739 struct panthor_device *ptdev = sched->ptdev; in process_fw_events_work() local 1894 struct panthor_device *ptdev = group->ptdev; in group_is_idle() local 2001 struct panthor_device *ptdev = sched->ptdev; in tick_ctx_init() local 3400 if (drm_WARN_ON(&ptdev->base, ptdev != group->ptdev)) in add_group_kbo_sizes() 3454 group->ptdev = ptdev; in panthor_group_create() [all …]
|
| A D | panthor_devfreq.c | 65 struct panthor_device *ptdev = dev_get_drvdata(dev); in panthor_devfreq_target() local 76 ptdev->current_frequency = *freq; in panthor_devfreq_target() 91 struct panthor_device *ptdev = dev_get_drvdata(dev); in panthor_devfreq_get_dev_status() local 92 struct panthor_devfreq *pdevfreq = ptdev->devfreq; in panthor_devfreq_get_dev_status() 135 struct device *dev = ptdev->base.dev; in panthor_devfreq_init() 142 pdevfreq = drmm_kzalloc(&ptdev->base, sizeof(*ptdev->devfreq), GFP_KERNEL); in panthor_devfreq_init() 146 ptdev->devfreq = pdevfreq; in panthor_devfreq_init() 164 cur_freq = clk_get_rate(ptdev->clks.core); in panthor_devfreq_init() 201 ptdev->current_frequency = cur_freq; in panthor_devfreq_init() 218 ptdev->fast_rate = freq; in panthor_devfreq_init() [all …]
|
| A D | panthor_gpu.h | 12 int panthor_gpu_init(struct panthor_device *ptdev); 13 void panthor_gpu_unplug(struct panthor_device *ptdev); 14 void panthor_gpu_suspend(struct panthor_device *ptdev); 15 void panthor_gpu_resume(struct panthor_device *ptdev); 17 int panthor_gpu_block_power_on(struct panthor_device *ptdev, 21 int panthor_gpu_block_power_off(struct panthor_device *ptdev, 32 panthor_gpu_block_power_on(ptdev, #type, \ 44 panthor_gpu_block_power_off(ptdev, #type, \ 49 int panthor_gpu_l2_power_on(struct panthor_device *ptdev); 50 int panthor_gpu_flush_caches(struct panthor_device *ptdev, [all …]
|
| A D | panthor_sched.h | 44 int panthor_sched_init(struct panthor_device *ptdev); 45 void panthor_sched_unplug(struct panthor_device *ptdev); 46 void panthor_sched_pre_reset(struct panthor_device *ptdev); 47 void panthor_sched_post_reset(struct panthor_device *ptdev, bool reset_failed); 48 void panthor_sched_suspend(struct panthor_device *ptdev); 49 void panthor_sched_resume(struct panthor_device *ptdev); 51 void panthor_sched_report_mmu_fault(struct panthor_device *ptdev); 52 void panthor_sched_report_fw_events(struct panthor_device *ptdev, u32 events);
|
| A D | panthor_drv.c | 778 pm_runtime_put(ptdev->base.dev); in panthor_query_timestamp_info() 823 args->size = sizeof(ptdev->gpu_info); in panthor_ioctl_dev_query() 827 args->size = sizeof(ptdev->csif_info); in panthor_ioctl_dev_query() 1412 pfile->ptdev = ptdev; in panthor_open() 1485 struct panthor_device *ptdev = pfile->ptdev; in panthor_mmap() local 1635 struct panthor_device *ptdev; in panthor_probe() local 1639 if (IS_ERR(ptdev)) in panthor_probe() 1642 platform_set_drvdata(pdev, ptdev); in panthor_probe() 1644 return panthor_device_init(ptdev); in panthor_probe() 1651 panthor_device_unplug(ptdev); in panthor_remove() [all …]
|
| A D | panthor_fw.h | 461 panthor_fw_get_glb_iface(struct panthor_device *ptdev); 464 panthor_fw_get_csg_iface(struct panthor_device *ptdev, u32 csg_slot); 478 panthor_fw_alloc_queue_iface_mem(struct panthor_device *ptdev, 485 struct panthor_vm *panthor_fw_vm(struct panthor_device *ptdev); 488 int panthor_fw_post_reset(struct panthor_device *ptdev); 490 static inline void panthor_fw_suspend(struct panthor_device *ptdev) in panthor_fw_suspend() argument 492 panthor_fw_pre_reset(ptdev, false); in panthor_fw_suspend() 495 static inline int panthor_fw_resume(struct panthor_device *ptdev) in panthor_fw_resume() argument 497 return panthor_fw_post_reset(ptdev); in panthor_fw_resume() 500 int panthor_fw_init(struct panthor_device *ptdev); [all …]
|
| A D | panthor_mmu.h | 19 int panthor_mmu_init(struct panthor_device *ptdev); 20 void panthor_mmu_unplug(struct panthor_device *ptdev); 21 void panthor_mmu_pre_reset(struct panthor_device *ptdev); 22 void panthor_mmu_post_reset(struct panthor_device *ptdev); 23 void panthor_mmu_suspend(struct panthor_device *ptdev); 24 void panthor_mmu_resume(struct panthor_device *ptdev); 44 struct panthor_vm *panthor_vm_create(struct panthor_device *ptdev, bool for_mcu, 62 int panthor_vm_pool_create_vm(struct panthor_device *ptdev,
|
| A D | panthor_gem.c | 26 struct panthor_device *ptdev = container_of(bo->base.base.dev, in panthor_gem_debugfs_bo_add() local 32 mutex_lock(&ptdev->gems.lock); in panthor_gem_debugfs_bo_add() 33 list_add_tail(&bo->debugfs.node, &ptdev->gems.node); in panthor_gem_debugfs_bo_add() 34 mutex_unlock(&ptdev->gems.lock); in panthor_gem_debugfs_bo_add() 45 mutex_lock(&ptdev->gems.lock); in panthor_gem_debugfs_bo_rm() 47 mutex_unlock(&ptdev->gems.lock); in panthor_gem_debugfs_bo_rm() 140 if (drm_WARN_ON(&ptdev->base, !vm)) in panthor_kernel_bo_create() 147 obj = drm_gem_shmem_create(&ptdev->base, size); in panthor_kernel_bo_create() 157 if (vm == panthor_fw_vm(ptdev)) in panthor_kernel_bo_create() 248 obj->base.map_wc = !ptdev->coherent; in panthor_gem_create_object() [all …]
|
| A D | panthor_devfreq.h | 13 int panthor_devfreq_init(struct panthor_device *ptdev); 15 void panthor_devfreq_resume(struct panthor_device *ptdev); 16 void panthor_devfreq_suspend(struct panthor_device *ptdev); 18 void panthor_devfreq_record_busy(struct panthor_device *ptdev); 19 void panthor_devfreq_record_idle(struct panthor_device *ptdev);
|
| A D | panthor_heap.c | 87 struct panthor_device *ptdev; member 105 static int panthor_heap_ctx_stride(struct panthor_device *ptdev) in panthor_heap_ctx_stride() argument 107 u32 l2_features = ptdev->gpu_info.l2_features; in panthor_heap_ctx_stride() 115 return panthor_heap_ctx_stride(pool->ptdev) * id; in panthor_get_heap_ctx_offset() 336 memset(gpu_ctx, 0, panthor_heap_ctx_stride(pool->ptdev)); in panthor_heap_create() 374 u32 heap_id = (u32)offset / panthor_heap_ctx_stride(pool->ptdev); in panthor_heap_return_chunk() 438 u32 heap_id = (u32)offset / panthor_heap_ctx_stride(pool->ptdev); in panthor_heap_grow() 538 panthor_heap_ctx_stride(ptdev), in panthor_heap_pool_create() 551 pool->ptdev = ptdev; in panthor_heap_pool_create() 556 pool->gpu_contexts = panthor_kernel_bo_create(ptdev, vm, bosize, in panthor_heap_pool_create() [all …]
|
| A D | panthor_heap.h | 23 panthor_heap_pool_create(struct panthor_device *ptdev, struct panthor_vm *vm);
|
| A D | panthor_gem.h | 203 panthor_kernel_bo_create(struct panthor_device *ptdev, struct panthor_vm *vm,
|