/kernel/linux/linux-5.10/drivers/gpu/drm/panfrost/ |
H A D | panfrost_device.c | 19 static int panfrost_reset_init(struct panfrost_device *pfdev) in panfrost_reset_init() argument 23 pfdev->rstc = devm_reset_control_array_get(pfdev->dev, false, true); in panfrost_reset_init() 24 if (IS_ERR(pfdev->rstc)) { in panfrost_reset_init() 25 dev_err(pfdev->dev, "get reset failed %ld\n", PTR_ERR(pfdev->rstc)); in panfrost_reset_init() 26 return PTR_ERR(pfdev->rstc); in panfrost_reset_init() 29 err = reset_control_deassert(pfdev->rstc); in panfrost_reset_init() 36 static void panfrost_reset_fini(struct panfrost_device *pfdev) in panfrost_reset_fini() argument 38 reset_control_assert(pfdev in panfrost_reset_fini() 41 panfrost_clk_init(struct panfrost_device *pfdev) panfrost_clk_init() argument 84 panfrost_clk_fini(struct panfrost_device *pfdev) panfrost_clk_fini() argument 90 panfrost_regulator_init(struct panfrost_device *pfdev) panfrost_regulator_init() argument 123 panfrost_regulator_fini(struct panfrost_device *pfdev) panfrost_regulator_fini() argument 131 panfrost_pm_domain_fini(struct panfrost_device *pfdev) panfrost_pm_domain_fini() argument 146 panfrost_pm_domain_init(struct panfrost_device *pfdev) panfrost_pm_domain_init() argument 204 panfrost_device_init(struct panfrost_device *pfdev) panfrost_device_init() argument 289 panfrost_device_fini(struct panfrost_device *pfdev) panfrost_device_fini() argument 302 panfrost_exception_name(struct panfrost_device *pfdev, u32 exception_code) panfrost_exception_name() argument 353 panfrost_device_reset(struct panfrost_device *pfdev) panfrost_device_reset() argument 366 struct panfrost_device *pfdev = platform_get_drvdata(pdev); panfrost_device_resume() local 377 struct panfrost_device *pfdev = platform_get_drvdata(pdev); panfrost_device_suspend() local [all...] |
H A D | panfrost_gpu.c | 24 struct panfrost_device *pfdev = data; in panfrost_gpu_irq_handler() local 25 u32 state = gpu_read(pfdev, GPU_INT_STAT); in panfrost_gpu_irq_handler() 26 u32 fault_status = gpu_read(pfdev, GPU_FAULT_STATUS); in panfrost_gpu_irq_handler() 32 u64 address = (u64) gpu_read(pfdev, GPU_FAULT_ADDRESS_HI) << 32; in panfrost_gpu_irq_handler() 33 address |= gpu_read(pfdev, GPU_FAULT_ADDRESS_LO); in panfrost_gpu_irq_handler() 35 dev_warn(pfdev->dev, "GPU Fault 0x%08x (%s) at 0x%016llx\n", in panfrost_gpu_irq_handler() 36 fault_status & 0xFF, panfrost_exception_name(pfdev, fault_status), in panfrost_gpu_irq_handler() 40 dev_warn(pfdev->dev, "There were multiple GPU faults - some have not been reported\n"); in panfrost_gpu_irq_handler() 42 gpu_write(pfdev, GPU_INT_MASK, 0); in panfrost_gpu_irq_handler() 46 panfrost_perfcnt_sample_done(pfdev); in panfrost_gpu_irq_handler() 56 panfrost_gpu_soft_reset(struct panfrost_device *pfdev) panfrost_gpu_soft_reset() argument 79 panfrost_gpu_amlogic_quirk(struct panfrost_device *pfdev) panfrost_gpu_amlogic_quirk() argument 90 panfrost_gpu_init_quirks(struct panfrost_device *pfdev) panfrost_gpu_init_quirks() argument 212 panfrost_gpu_init_features(struct panfrost_device *pfdev) panfrost_gpu_init_features() argument 318 panfrost_gpu_power_on(struct panfrost_device *pfdev) panfrost_gpu_power_on() argument 345 panfrost_gpu_power_off(struct panfrost_device *pfdev) panfrost_gpu_power_off() argument 352 panfrost_gpu_init(struct panfrost_device *pfdev) panfrost_gpu_init() argument 385 panfrost_gpu_fini(struct panfrost_device *pfdev) panfrost_gpu_fini() argument 390 panfrost_gpu_get_latest_flush_id(struct panfrost_device *pfdev) panfrost_gpu_get_latest_flush_id() argument [all...] |
H A D | panfrost_perfcnt.c | 36 void panfrost_perfcnt_clean_cache_done(struct panfrost_device *pfdev) in panfrost_perfcnt_clean_cache_done() argument 38 complete(&pfdev->perfcnt->dump_comp); in panfrost_perfcnt_clean_cache_done() 41 void panfrost_perfcnt_sample_done(struct panfrost_device *pfdev) in panfrost_perfcnt_sample_done() argument 43 gpu_write(pfdev, GPU_CMD, GPU_CMD_CLEAN_CACHES); in panfrost_perfcnt_sample_done() 46 static int panfrost_perfcnt_dump_locked(struct panfrost_device *pfdev) in panfrost_perfcnt_dump_locked() argument 51 reinit_completion(&pfdev->perfcnt->dump_comp); in panfrost_perfcnt_dump_locked() 52 gpuva = pfdev->perfcnt->mapping->mmnode.start << PAGE_SHIFT; in panfrost_perfcnt_dump_locked() 53 gpu_write(pfdev, GPU_PERFCNT_BASE_LO, gpuva); in panfrost_perfcnt_dump_locked() 54 gpu_write(pfdev, GPU_PERFCNT_BASE_HI, gpuva >> 32); in panfrost_perfcnt_dump_locked() 55 gpu_write(pfdev, GPU_INT_CLEA in panfrost_perfcnt_dump_locked() 69 panfrost_perfcnt_enable_locked(struct panfrost_device *pfdev, struct drm_file *file_priv, unsigned int counterset) panfrost_perfcnt_enable_locked() argument 178 panfrost_perfcnt_disable_locked(struct panfrost_device *pfdev, struct drm_file *file_priv) panfrost_perfcnt_disable_locked() argument 210 struct panfrost_device *pfdev = dev->dev_private; panfrost_ioctl_perfcnt_enable() local 237 struct panfrost_device *pfdev = dev->dev_private; panfrost_ioctl_perfcnt_dump() local 269 struct panfrost_device *pfdev = pfile->pfdev; panfrost_perfcnt_close() local 281 panfrost_perfcnt_init(struct panfrost_device *pfdev) panfrost_perfcnt_init() argument 337 panfrost_perfcnt_fini(struct panfrost_device *pfdev) panfrost_perfcnt_fini() argument [all...] |
H A D | panfrost_mmu.c | 29 static int wait_ready(struct panfrost_device *pfdev, u32 as_nr) in wait_ready() argument 36 ret = readl_relaxed_poll_timeout_atomic(pfdev->iomem + AS_STATUS(as_nr), in wait_ready() 40 dev_err(pfdev->dev, "AS_ACTIVE bit stuck\n"); in wait_ready() 45 static int write_cmd(struct panfrost_device *pfdev, u32 as_nr, u32 cmd) in write_cmd() argument 50 status = wait_ready(pfdev, as_nr); in write_cmd() 52 mmu_write(pfdev, AS_COMMAND(as_nr), cmd); in write_cmd() 57 static void lock_region(struct panfrost_device *pfdev, u32 as_nr, in lock_region() argument 71 mmu_write(pfdev, AS_LOCKADDR_LO(as_nr), region & 0xFFFFFFFFUL); in lock_region() 72 mmu_write(pfdev, AS_LOCKADDR_HI(as_nr), (region >> 32) & 0xFFFFFFFFUL); in lock_region() 73 write_cmd(pfdev, as_n in lock_region() 77 mmu_hw_do_operation_locked(struct panfrost_device *pfdev, int as_nr, u64 iova, u64 size, u32 op) mmu_hw_do_operation_locked() argument 93 mmu_hw_do_operation(struct panfrost_device *pfdev, struct panfrost_mmu *mmu, u64 iova, u64 size, u32 op) mmu_hw_do_operation() argument 105 panfrost_mmu_enable(struct panfrost_device *pfdev, struct panfrost_mmu *mmu) panfrost_mmu_enable() argument 126 panfrost_mmu_disable(struct panfrost_device *pfdev, u32 as_nr) panfrost_mmu_disable() argument 139 panfrost_mmu_as_get(struct panfrost_device *pfdev, struct panfrost_mmu *mmu) panfrost_mmu_as_get() argument 192 panfrost_mmu_as_put(struct panfrost_device *pfdev, struct panfrost_mmu *mmu) panfrost_mmu_as_put() argument 198 panfrost_mmu_reset(struct panfrost_device *pfdev) panfrost_mmu_reset() argument 226 panfrost_mmu_flush_range(struct panfrost_device *pfdev, struct panfrost_mmu *mmu, u64 iova, u64 size) panfrost_mmu_flush_range() argument 242 mmu_map_sg(struct panfrost_device *pfdev, struct panfrost_mmu *mmu, u64 iova, int prot, struct sg_table *sgt) mmu_map_sg() argument 275 struct panfrost_device *pfdev = to_panfrost_device(obj->dev); panfrost_mmu_map() local 300 struct panfrost_device *pfdev = to_panfrost_device(obj->dev); panfrost_mmu_unmap() local 357 addr_to_mapping(struct panfrost_device *pfdev, int as, u64 addr) addr_to_mapping() argument 393 panfrost_mmu_map_fault_addr(struct panfrost_device *pfdev, int as, u64 addr) panfrost_mmu_map_fault_addr() argument 503 struct panfrost_device *pfdev = mmu->pfdev; panfrost_mmu_release_ctx() local 561 panfrost_mmu_ctx_create(struct panfrost_device *pfdev) panfrost_mmu_ctx_create() argument 600 access_type_name(struct panfrost_device *pfdev, u32 fault_status) access_type_name() argument 623 struct panfrost_device *pfdev = data; panfrost_mmu_irq_handler() local 634 struct panfrost_device *pfdev = data; panfrost_mmu_irq_handler_thread() local 690 panfrost_mmu_init(struct panfrost_device *pfdev) panfrost_mmu_init() argument 712 panfrost_mmu_fini(struct panfrost_device *pfdev) panfrost_mmu_fini() argument [all...] |
H A D | panfrost_job.c | 94 static struct dma_fence *panfrost_fence_create(struct panfrost_device *pfdev, int js_num) in panfrost_fence_create() argument 97 struct panfrost_job_slot *js = pfdev->js; in panfrost_fence_create() 103 fence->dev = pfdev->ddev; in panfrost_fence_create() 125 (job->pfdev->features.nr_core_groups == 2)) in panfrost_job_get_slot() 127 if (panfrost_has_hw_issue(job->pfdev, HW_ISSUE_8987)) in panfrost_job_get_slot() 134 static void panfrost_job_write_affinity(struct panfrost_device *pfdev, in panfrost_job_write_affinity() argument 145 affinity = pfdev->features.shader_present; in panfrost_job_write_affinity() 147 job_write(pfdev, JS_AFFINITY_NEXT_LO(js), affinity & 0xFFFFFFFF); in panfrost_job_write_affinity() 148 job_write(pfdev, JS_AFFINITY_NEXT_HI(js), affinity >> 32); in panfrost_job_write_affinity() 153 struct panfrost_device *pfdev in panfrost_job_hw_submit() local 221 struct panfrost_device *pfdev = job->pfdev; panfrost_job_push() local 347 struct panfrost_device *pfdev = job->pfdev; panfrost_job_run() local 369 panfrost_job_enable_interrupts(struct panfrost_device *pfdev) panfrost_job_enable_interrupts() argument 438 struct panfrost_device *pfdev = job->pfdev; panfrost_job_timedout() local 474 struct panfrost_device *pfdev = data; panfrost_job_irq_handler() local 544 struct panfrost_device *pfdev = container_of(work, panfrost_reset() local 595 panfrost_job_init(struct panfrost_device *pfdev) panfrost_job_init() argument 645 panfrost_job_fini(struct panfrost_device *pfdev) panfrost_job_fini() argument 661 struct panfrost_device *pfdev = panfrost_priv->pfdev; panfrost_job_open() local 685 panfrost_job_is_idle(struct panfrost_device *pfdev) panfrost_job_is_idle() argument [all...] |
H A D | panfrost_gem_shrinker.c | 21 struct panfrost_device *pfdev = in panfrost_gem_shrinker_count() local 26 if (!mutex_trylock(&pfdev->shrinker_lock)) in panfrost_gem_shrinker_count() 29 list_for_each_entry(shmem, &pfdev->shrinker_list, madv_list) { in panfrost_gem_shrinker_count() 34 mutex_unlock(&pfdev->shrinker_lock); in panfrost_gem_shrinker_count() 68 struct panfrost_device *pfdev = in panfrost_gem_shrinker_scan() local 73 if (!mutex_trylock(&pfdev->shrinker_lock)) in panfrost_gem_shrinker_scan() 76 list_for_each_entry_safe(shmem, tmp, &pfdev->shrinker_list, madv_list) { in panfrost_gem_shrinker_scan() 86 mutex_unlock(&pfdev->shrinker_lock); in panfrost_gem_shrinker_scan() 102 struct panfrost_device *pfdev = dev->dev_private; in panfrost_gem_shrinker_init() local 103 pfdev in panfrost_gem_shrinker_init() 117 struct panfrost_device *pfdev = dev->dev_private; panfrost_gem_shrinker_cleanup() local [all...] |
H A D | panfrost_drv.c | 29 struct panfrost_device *pfdev = ddev->dev_private; in panfrost_ioctl_get_param() local 36 param->value = pfdev->features.member; \ in panfrost_ioctl_get_param() 41 param->value = pfdev->features.member[param->param - \ in panfrost_ioctl_get_param() 250 struct panfrost_device *pfdev = dev->dev_private; in panfrost_ioctl_submit() local 276 job->pfdev = pfdev; in panfrost_ioctl_submit() 279 job->flush_id = panfrost_gpu_get_latest_flush_id(pfdev); in panfrost_ioctl_submit() 398 struct panfrost_device *pfdev = dev->dev_private; in panfrost_ioctl_madvise() local 411 mutex_lock(&pfdev->shrinker_lock); in panfrost_ioctl_madvise() 440 &pfdev in panfrost_ioctl_madvise() 465 struct panfrost_device *pfdev = dev->dev_private; panfrost_open() local 550 struct panfrost_device *pfdev; panfrost_probe() local 616 struct panfrost_device *pfdev = platform_get_drvdata(pdev); panfrost_remove() local [all...] |
H A D | panfrost_device.h | 75 void (*vendor_quirk)(struct panfrost_device *pfdev); 123 struct panfrost_device *pfdev; member 135 struct panfrost_device *pfdev; member 147 static inline int panfrost_model_cmp(struct panfrost_device *pfdev, s32 id) in panfrost_model_cmp() argument 149 s32 match_id = pfdev->features.id; in panfrost_model_cmp() 156 static inline bool panfrost_model_is_bifrost(struct panfrost_device *pfdev) in panfrost_model_is_bifrost() argument 158 return panfrost_model_cmp(pfdev, 0x1000) >= 0; in panfrost_model_is_bifrost() 161 static inline bool panfrost_model_eq(struct panfrost_device *pfdev, s32 id) in panfrost_model_eq() argument 163 return !panfrost_model_cmp(pfdev, id); in panfrost_model_eq() 168 int panfrost_device_init(struct panfrost_device *pfdev); [all...] |
H A D | panfrost_devfreq.c | 56 struct panfrost_device *pfdev = dev_get_drvdata(dev); in panfrost_devfreq_get_dev_status() local 57 struct panfrost_devfreq *pfdevfreq = &pfdev->pfdevfreq; in panfrost_devfreq_get_dev_status() 60 status->current_frequency = clk_get_rate(pfdev->clock); in panfrost_devfreq_get_dev_status() 75 dev_dbg(pfdev->dev, "busy %lu total %lu %lu %% freq %lu MHz\n", in panfrost_devfreq_get_dev_status() 89 int panfrost_devfreq_init(struct panfrost_device *pfdev) in panfrost_devfreq_init() argument 94 struct device *dev = &pfdev->pdev->dev; in panfrost_devfreq_init() 98 struct panfrost_devfreq *pfdevfreq = &pfdev->pfdevfreq; in panfrost_devfreq_init() 100 opp_table = dev_pm_opp_set_regulators(dev, pfdev->comp->supply_names, in panfrost_devfreq_init() 101 pfdev->comp->num_supplies); in panfrost_devfreq_init() 126 cur_freq = clk_get_rate(pfdev in panfrost_devfreq_init() 159 panfrost_devfreq_fini(struct panfrost_device *pfdev) panfrost_devfreq_fini() argument 179 panfrost_devfreq_resume(struct panfrost_device *pfdev) panfrost_devfreq_resume() argument 191 panfrost_devfreq_suspend(struct panfrost_device *pfdev) panfrost_devfreq_suspend() argument [all...] |
H A D | panfrost_gpu.h | 10 int panfrost_gpu_init(struct panfrost_device *pfdev); 11 void panfrost_gpu_fini(struct panfrost_device *pfdev); 13 u32 panfrost_gpu_get_latest_flush_id(struct panfrost_device *pfdev); 15 int panfrost_gpu_soft_reset(struct panfrost_device *pfdev); 16 void panfrost_gpu_power_on(struct panfrost_device *pfdev); 17 void panfrost_gpu_power_off(struct panfrost_device *pfdev); 19 void panfrost_gpu_amlogic_quirk(struct panfrost_device *pfdev);
|
H A D | panfrost_mmu.h | 14 int panfrost_mmu_init(struct panfrost_device *pfdev); 15 void panfrost_mmu_fini(struct panfrost_device *pfdev); 16 void panfrost_mmu_reset(struct panfrost_device *pfdev); 18 u32 panfrost_mmu_as_get(struct panfrost_device *pfdev, struct panfrost_mmu *mmu); 19 void panfrost_mmu_as_put(struct panfrost_device *pfdev, struct panfrost_mmu *mmu); 23 struct panfrost_mmu *panfrost_mmu_ctx_create(struct panfrost_device *pfdev);
|
H A D | panfrost_job.h | 19 struct panfrost_device *pfdev; member 43 int panfrost_job_init(struct panfrost_device *pfdev); 44 void panfrost_job_fini(struct panfrost_device *pfdev); 49 void panfrost_job_enable_interrupts(struct panfrost_device *pfdev); 50 int panfrost_job_is_idle(struct panfrost_device *pfdev);
|
/kernel/linux/linux-6.6/drivers/gpu/drm/panfrost/ |
H A D | panfrost_gpu.c | 24 struct panfrost_device *pfdev = data; in panfrost_gpu_irq_handler() local 25 u32 state = gpu_read(pfdev, GPU_INT_STAT); in panfrost_gpu_irq_handler() 26 u32 fault_status = gpu_read(pfdev, GPU_FAULT_STATUS); in panfrost_gpu_irq_handler() 32 u64 address = (u64) gpu_read(pfdev, GPU_FAULT_ADDRESS_HI) << 32; in panfrost_gpu_irq_handler() 33 address |= gpu_read(pfdev, GPU_FAULT_ADDRESS_LO); in panfrost_gpu_irq_handler() 35 dev_warn(pfdev->dev, "GPU Fault 0x%08x (%s) at 0x%016llx\n", in panfrost_gpu_irq_handler() 40 dev_warn(pfdev->dev, "There were multiple GPU faults - some have not been reported\n"); in panfrost_gpu_irq_handler() 42 gpu_write(pfdev, GPU_INT_MASK, 0); in panfrost_gpu_irq_handler() 46 panfrost_perfcnt_sample_done(pfdev); in panfrost_gpu_irq_handler() 49 panfrost_perfcnt_clean_cache_done(pfdev); in panfrost_gpu_irq_handler() 56 panfrost_gpu_soft_reset(struct panfrost_device *pfdev) panfrost_gpu_soft_reset() argument 84 panfrost_gpu_amlogic_quirk(struct panfrost_device *pfdev) panfrost_gpu_amlogic_quirk() argument 95 panfrost_gpu_init_quirks(struct panfrost_device *pfdev) panfrost_gpu_init_quirks() argument 222 panfrost_gpu_init_features(struct panfrost_device *pfdev) panfrost_gpu_init_features() argument 329 panfrost_get_core_mask(struct panfrost_device *pfdev) panfrost_get_core_mask() argument 352 panfrost_gpu_power_on(struct panfrost_device *pfdev) panfrost_gpu_power_on() argument 383 panfrost_gpu_power_off(struct panfrost_device *pfdev) panfrost_gpu_power_off() argument 407 panfrost_gpu_init(struct panfrost_device *pfdev) panfrost_gpu_init() argument 440 panfrost_gpu_fini(struct panfrost_device *pfdev) panfrost_gpu_fini() argument 445 panfrost_gpu_get_latest_flush_id(struct panfrost_device *pfdev) panfrost_gpu_get_latest_flush_id() argument [all...] |
H A D | panfrost_device.c | 21 static int panfrost_reset_init(struct panfrost_device *pfdev) in panfrost_reset_init() argument 23 pfdev->rstc = devm_reset_control_array_get_optional_exclusive(pfdev->dev); in panfrost_reset_init() 24 if (IS_ERR(pfdev->rstc)) { in panfrost_reset_init() 25 dev_err(pfdev->dev, "get reset failed %ld\n", PTR_ERR(pfdev->rstc)); in panfrost_reset_init() 26 return PTR_ERR(pfdev->rstc); in panfrost_reset_init() 29 return reset_control_deassert(pfdev->rstc); in panfrost_reset_init() 32 static void panfrost_reset_fini(struct panfrost_device *pfdev) in panfrost_reset_fini() argument 34 reset_control_assert(pfdev in panfrost_reset_fini() 37 panfrost_clk_init(struct panfrost_device *pfdev) panfrost_clk_init() argument 80 panfrost_clk_fini(struct panfrost_device *pfdev) panfrost_clk_fini() argument 86 panfrost_regulator_init(struct panfrost_device *pfdev) panfrost_regulator_init() argument 119 panfrost_regulator_fini(struct panfrost_device *pfdev) panfrost_regulator_fini() argument 127 panfrost_pm_domain_fini(struct panfrost_device *pfdev) panfrost_pm_domain_fini() argument 142 panfrost_pm_domain_init(struct panfrost_device *pfdev) panfrost_pm_domain_init() argument 200 panfrost_device_init(struct panfrost_device *pfdev) panfrost_device_init() argument 282 panfrost_device_fini(struct panfrost_device *pfdev) panfrost_device_fini() argument 382 panfrost_exception_needs_reset(const struct panfrost_device *pfdev, u32 exception_code) panfrost_exception_needs_reset() argument 395 panfrost_device_reset(struct panfrost_device *pfdev) panfrost_device_reset() argument 406 struct panfrost_device *pfdev = dev_get_drvdata(dev); panfrost_device_resume() local 416 struct panfrost_device *pfdev = dev_get_drvdata(dev); panfrost_device_suspend() local [all...] |
H A D | panfrost_job.c | 88 static struct dma_fence *panfrost_fence_create(struct panfrost_device *pfdev, int js_num) in panfrost_fence_create() argument 91 struct panfrost_job_slot *js = pfdev->js; in panfrost_fence_create() 97 fence->dev = pfdev->ddev; in panfrost_fence_create() 119 (job->pfdev->features.nr_core_groups == 2)) in panfrost_job_get_slot() 121 if (panfrost_has_hw_issue(job->pfdev, HW_ISSUE_8987)) in panfrost_job_get_slot() 128 static void panfrost_job_write_affinity(struct panfrost_device *pfdev, in panfrost_job_write_affinity() argument 139 affinity = pfdev->features.shader_present; in panfrost_job_write_affinity() 141 job_write(pfdev, JS_AFFINITY_NEXT_LO(js), lower_32_bits(affinity)); in panfrost_job_write_affinity() 142 job_write(pfdev, JS_AFFINITY_NEXT_HI(js), upper_32_bits(affinity)); in panfrost_job_write_affinity() 150 if (!panfrost_has_hw_feature(job->pfdev, HW_FEATURE_JOBCHAIN_DISAMBIGUATIO in panfrost_get_job_chain_flag() 157 panfrost_dequeue_job(struct panfrost_device *pfdev, int slot) panfrost_dequeue_job() argument 169 panfrost_enqueue_job(struct panfrost_device *pfdev, int slot, struct panfrost_job *job) panfrost_enqueue_job() argument 189 struct panfrost_device *pfdev = job->pfdev; panfrost_job_hw_submit() local 277 struct panfrost_device *pfdev = job->pfdev; panfrost_job_push() local 360 struct panfrost_device *pfdev = job->pfdev; panfrost_job_run() local 386 panfrost_job_enable_interrupts(struct panfrost_device *pfdev) panfrost_job_enable_interrupts() argument 399 panfrost_job_handle_err(struct panfrost_device *pfdev, struct panfrost_job *job, unsigned int js) panfrost_job_handle_err() argument 453 panfrost_job_handle_done(struct panfrost_device *pfdev, struct panfrost_job *job) panfrost_job_handle_done() argument 467 panfrost_job_handle_irq(struct panfrost_device *pfdev, u32 status) panfrost_job_handle_irq() argument 568 panfrost_job_handle_irqs(struct panfrost_device *pfdev) panfrost_job_handle_irqs() argument 582 panfrost_active_slots(struct panfrost_device *pfdev, u32 *js_state_mask, u32 js_state) panfrost_active_slots() argument 604 panfrost_reset(struct panfrost_device *pfdev, struct drm_sched_job *bad) panfrost_reset() argument 713 struct panfrost_device *pfdev = job->pfdev; panfrost_job_timedout() local 757 struct panfrost_device *pfdev; panfrost_reset_work() local 771 struct panfrost_device *pfdev = data; panfrost_job_irq_handler_thread() local 782 struct panfrost_device *pfdev = data; panfrost_job_irq_handler() local 792 panfrost_job_init(struct panfrost_device *pfdev) panfrost_job_init() argument 857 panfrost_job_fini(struct panfrost_device *pfdev) panfrost_job_fini() argument 874 struct panfrost_device *pfdev = panfrost_priv->pfdev; panfrost_job_open() local 892 struct panfrost_device *pfdev = panfrost_priv->pfdev; panfrost_job_close() local 934 panfrost_job_is_idle(struct panfrost_device *pfdev) panfrost_job_is_idle() argument [all...] |
H A D | panfrost_perfcnt.c | 38 void panfrost_perfcnt_clean_cache_done(struct panfrost_device *pfdev) in panfrost_perfcnt_clean_cache_done() argument 40 complete(&pfdev->perfcnt->dump_comp); in panfrost_perfcnt_clean_cache_done() 43 void panfrost_perfcnt_sample_done(struct panfrost_device *pfdev) in panfrost_perfcnt_sample_done() argument 45 gpu_write(pfdev, GPU_CMD, GPU_CMD_CLEAN_CACHES); in panfrost_perfcnt_sample_done() 48 static int panfrost_perfcnt_dump_locked(struct panfrost_device *pfdev) in panfrost_perfcnt_dump_locked() argument 53 reinit_completion(&pfdev->perfcnt->dump_comp); in panfrost_perfcnt_dump_locked() 54 gpuva = pfdev->perfcnt->mapping->mmnode.start << PAGE_SHIFT; in panfrost_perfcnt_dump_locked() 55 gpu_write(pfdev, GPU_PERFCNT_BASE_LO, lower_32_bits(gpuva)); in panfrost_perfcnt_dump_locked() 56 gpu_write(pfdev, GPU_PERFCNT_BASE_HI, upper_32_bits(gpuva)); in panfrost_perfcnt_dump_locked() 57 gpu_write(pfdev, GPU_INT_CLEA in panfrost_perfcnt_dump_locked() 71 panfrost_perfcnt_enable_locked(struct panfrost_device *pfdev, struct drm_file *file_priv, unsigned int counterset) panfrost_perfcnt_enable_locked() argument 180 panfrost_perfcnt_disable_locked(struct panfrost_device *pfdev, struct drm_file *file_priv) panfrost_perfcnt_disable_locked() argument 213 struct panfrost_device *pfdev = dev->dev_private; panfrost_ioctl_perfcnt_enable() local 240 struct panfrost_device *pfdev = dev->dev_private; panfrost_ioctl_perfcnt_dump() local 272 struct panfrost_device *pfdev = pfile->pfdev; panfrost_perfcnt_close() local 284 panfrost_perfcnt_init(struct panfrost_device *pfdev) panfrost_perfcnt_init() argument 340 panfrost_perfcnt_fini(struct panfrost_device *pfdev) panfrost_perfcnt_fini() argument [all...] |
H A D | panfrost_mmu.c | 29 static int wait_ready(struct panfrost_device *pfdev, u32 as_nr) in wait_ready() argument 36 ret = readl_relaxed_poll_timeout_atomic(pfdev->iomem + AS_STATUS(as_nr), in wait_ready() 41 panfrost_device_schedule_reset(pfdev); in wait_ready() 42 dev_err(pfdev->dev, "AS_ACTIVE bit stuck\n"); in wait_ready() 48 static int write_cmd(struct panfrost_device *pfdev, u32 as_nr, u32 cmd) in write_cmd() argument 53 status = wait_ready(pfdev, as_nr); in write_cmd() 55 mmu_write(pfdev, AS_COMMAND(as_nr), cmd); in write_cmd() 60 static void lock_region(struct panfrost_device *pfdev, u32 as_nr, in lock_region() argument 90 mmu_write(pfdev, AS_LOCKADDR_LO(as_nr), lower_32_bits(region)); in lock_region() 91 mmu_write(pfdev, AS_LOCKADDR_H in lock_region() 96 mmu_hw_do_operation_locked(struct panfrost_device *pfdev, int as_nr, u64 iova, u64 size, u32 op) mmu_hw_do_operation_locked() argument 112 mmu_hw_do_operation(struct panfrost_device *pfdev, struct panfrost_mmu *mmu, u64 iova, u64 size, u32 op) mmu_hw_do_operation() argument 124 panfrost_mmu_enable(struct panfrost_device *pfdev, struct panfrost_mmu *mmu) panfrost_mmu_enable() argument 145 panfrost_mmu_disable(struct panfrost_device *pfdev, u32 as_nr) panfrost_mmu_disable() argument 158 panfrost_mmu_as_get(struct panfrost_device *pfdev, struct panfrost_mmu *mmu) panfrost_mmu_as_get() argument 224 panfrost_mmu_as_put(struct panfrost_device *pfdev, struct panfrost_mmu *mmu) panfrost_mmu_as_put() argument 230 panfrost_mmu_reset(struct panfrost_device *pfdev) panfrost_mmu_reset() argument 272 panfrost_mmu_flush_range(struct panfrost_device *pfdev, struct panfrost_mmu *mmu, u64 iova, u64 size) panfrost_mmu_flush_range() argument 288 mmu_map_sg(struct panfrost_device *pfdev, struct panfrost_mmu *mmu, u64 iova, int prot, struct sg_table *sgt) mmu_map_sg() argument 326 struct panfrost_device *pfdev = to_panfrost_device(obj->dev); panfrost_mmu_map() local 351 struct panfrost_device *pfdev = to_panfrost_device(obj->dev); panfrost_mmu_unmap() local 403 addr_to_mapping(struct panfrost_device *pfdev, int as, u64 addr) addr_to_mapping() argument 439 panfrost_mmu_map_fault_addr(struct panfrost_device *pfdev, int as, u64 addr) panfrost_mmu_map_fault_addr() argument 550 struct panfrost_device *pfdev = mmu->pfdev; panfrost_mmu_release_ctx() local 608 panfrost_mmu_ctx_create(struct panfrost_device *pfdev) panfrost_mmu_ctx_create() argument 647 access_type_name(struct panfrost_device *pfdev, u32 fault_status) access_type_name() argument 670 struct panfrost_device *pfdev = data; panfrost_mmu_irq_handler() local 681 struct panfrost_device *pfdev = data; panfrost_mmu_irq_handler_thread() local 753 panfrost_mmu_init(struct panfrost_device *pfdev) panfrost_mmu_init() argument 775 panfrost_mmu_fini(struct panfrost_device *pfdev) panfrost_mmu_fini() argument [all...] |
H A D | panfrost_gem_shrinker.c | 21 struct panfrost_device *pfdev = in panfrost_gem_shrinker_count() local 26 if (!mutex_trylock(&pfdev->shrinker_lock)) in panfrost_gem_shrinker_count() 29 list_for_each_entry(shmem, &pfdev->shrinker_list, madv_list) { in panfrost_gem_shrinker_count() 34 mutex_unlock(&pfdev->shrinker_lock); in panfrost_gem_shrinker_count() 68 struct panfrost_device *pfdev = in panfrost_gem_shrinker_scan() local 73 if (!mutex_trylock(&pfdev->shrinker_lock)) in panfrost_gem_shrinker_scan() 76 list_for_each_entry_safe(shmem, tmp, &pfdev->shrinker_list, madv_list) { in panfrost_gem_shrinker_scan() 86 mutex_unlock(&pfdev->shrinker_lock); in panfrost_gem_shrinker_scan() 102 struct panfrost_device *pfdev = dev->dev_private; in panfrost_gem_shrinker_init() local 103 pfdev in panfrost_gem_shrinker_init() 117 struct panfrost_device *pfdev = dev->dev_private; panfrost_gem_shrinker_cleanup() local [all...] |
H A D | panfrost_drv.c | 30 struct panfrost_device *pfdev = ddev->dev_private; in panfrost_ioctl_get_param() local 37 param->value = pfdev->features.member; \ in panfrost_ioctl_get_param() 42 param->value = pfdev->features.member[param->param - \ in panfrost_ioctl_get_param() 238 struct panfrost_device *pfdev = dev->dev_private; in panfrost_ioctl_submit() local 265 job->pfdev = pfdev; in panfrost_ioctl_submit() 268 job->flush_id = panfrost_gpu_get_latest_flush_id(pfdev); in panfrost_ioctl_submit() 398 struct panfrost_device *pfdev = dev->dev_private; in panfrost_ioctl_madvise() local 415 mutex_lock(&pfdev->shrinker_lock); in panfrost_ioctl_madvise() 444 &pfdev in panfrost_ioctl_madvise() 470 struct panfrost_device *pfdev = dev->dev_private; panfrost_open() local 553 struct panfrost_device *pfdev; panfrost_probe() local 619 struct panfrost_device *pfdev = platform_get_drvdata(pdev); panfrost_remove() local [all...] |
H A D | panfrost_gpu.h | 10 int panfrost_gpu_init(struct panfrost_device *pfdev); 11 void panfrost_gpu_fini(struct panfrost_device *pfdev); 13 u32 panfrost_gpu_get_latest_flush_id(struct panfrost_device *pfdev); 15 int panfrost_gpu_soft_reset(struct panfrost_device *pfdev); 16 void panfrost_gpu_power_on(struct panfrost_device *pfdev); 17 void panfrost_gpu_power_off(struct panfrost_device *pfdev); 19 void panfrost_gpu_amlogic_quirk(struct panfrost_device *pfdev);
|
H A D | panfrost_device.h | 77 void (*vendor_quirk)(struct panfrost_device *pfdev); 127 struct panfrost_device *pfdev; member 139 struct panfrost_device *pfdev; member 151 static inline int panfrost_model_cmp(struct panfrost_device *pfdev, s32 id) in panfrost_model_cmp() argument 153 s32 match_id = pfdev->features.id; in panfrost_model_cmp() 160 static inline bool panfrost_model_is_bifrost(struct panfrost_device *pfdev) in panfrost_model_is_bifrost() argument 162 return panfrost_model_cmp(pfdev, 0x1000) >= 0; in panfrost_model_is_bifrost() 165 static inline bool panfrost_model_eq(struct panfrost_device *pfdev, s32 id) in panfrost_model_eq() argument 167 return !panfrost_model_cmp(pfdev, id); in panfrost_model_eq() 172 int panfrost_device_init(struct panfrost_device *pfdev); 259 panfrost_device_schedule_reset(struct panfrost_device *pfdev) panfrost_device_schedule_reset() argument [all...] |
H A D | panfrost_devfreq.c | 52 struct panfrost_device *pfdev = dev_get_drvdata(dev); in panfrost_devfreq_get_dev_status() local 53 struct panfrost_devfreq *pfdevfreq = &pfdev->pfdevfreq; in panfrost_devfreq_get_dev_status() 56 status->current_frequency = clk_get_rate(pfdev->clock); in panfrost_devfreq_get_dev_status() 71 dev_dbg(pfdev->dev, "busy %lu total %lu %lu %% freq %lu MHz\n", in panfrost_devfreq_get_dev_status() 111 int panfrost_devfreq_init(struct panfrost_device *pfdev) in panfrost_devfreq_init() argument 116 struct device *dev = &pfdev->pdev->dev; in panfrost_devfreq_init() 119 struct panfrost_devfreq *pfdevfreq = &pfdev->pfdevfreq; in panfrost_devfreq_init() 121 if (pfdev->comp->num_supplies > 1) { in panfrost_devfreq_init() 134 ret = devm_pm_opp_set_regulators(dev, pfdev->comp->supply_names); in panfrost_devfreq_init() 157 cur_freq = clk_get_rate(pfdev in panfrost_devfreq_init() 202 panfrost_devfreq_fini(struct panfrost_device *pfdev) panfrost_devfreq_fini() argument 212 panfrost_devfreq_resume(struct panfrost_device *pfdev) panfrost_devfreq_resume() argument 224 panfrost_devfreq_suspend(struct panfrost_device *pfdev) panfrost_devfreq_suspend() argument [all...] |
H A D | panfrost_mmu.h | 14 int panfrost_mmu_init(struct panfrost_device *pfdev); 15 void panfrost_mmu_fini(struct panfrost_device *pfdev); 16 void panfrost_mmu_reset(struct panfrost_device *pfdev); 18 u32 panfrost_mmu_as_get(struct panfrost_device *pfdev, struct panfrost_mmu *mmu); 19 void panfrost_mmu_as_put(struct panfrost_device *pfdev, struct panfrost_mmu *mmu); 23 struct panfrost_mmu *panfrost_mmu_ctx_create(struct panfrost_device *pfdev);
|
H A D | panfrost_job.h | 19 struct panfrost_device *pfdev; member 37 int panfrost_job_init(struct panfrost_device *pfdev); 38 void panfrost_job_fini(struct panfrost_device *pfdev); 44 void panfrost_job_enable_interrupts(struct panfrost_device *pfdev); 45 int panfrost_job_is_idle(struct panfrost_device *pfdev);
|
H A D | panfrost_dump.c | 77 struct panfrost_device *pfdev, in panfrost_core_dump_registers() 97 dumpreg->value = gpu_read(pfdev, reg); in panfrost_core_dump_registers() 105 struct panfrost_device *pfdev = job->pfdev; in panfrost_core_dump() local 166 dev_warn(pfdev->dev, "failed to allocate devcoredump file\n"); in panfrost_core_dump() 183 iter.hdr->reghdr.gpu_id = pfdev->features.id; in panfrost_core_dump() 186 panfrost_core_dump_registers(&iter, pfdev, as_nr, slot); in panfrost_core_dump() 207 dev_err(pfdev->dev, "Panfrost Dump: BO has no sgt, cannot dump\n"); in panfrost_core_dump() 214 dev_err(pfdev->dev, "Panfrost Dump: couldn't map Buffer Object\n"); in panfrost_core_dump() 229 dev_err(pfdev in panfrost_core_dump() 76 panfrost_core_dump_registers(struct panfrost_dump_iterator *iter, struct panfrost_device *pfdev, u32 as_nr, int slot) panfrost_core_dump_registers() argument [all...] |