| /linux/drivers/gpu/drm/panfrost/ |
| H A D | panfrost_job.c | 93 static struct dma_fence *panfrost_fence_create(struct panfrost_device *pfdev, int js_num) in panfrost_fence_create() argument 96 struct panfrost_job_slot *js = pfdev->js; in panfrost_fence_create() 102 fence->dev = &pfdev->base; in panfrost_fence_create() 124 (job->pfdev->features.nr_core_groups == 2)) in panfrost_job_get_slot() 126 if (panfrost_has_hw_issue(job->pfdev, HW_ISSUE_8987)) in panfrost_job_get_slot() 133 static void panfrost_job_write_affinity(struct panfrost_device *pfdev, in panfrost_job_write_affinity() argument 144 affinity = pfdev->features.shader_present; in panfrost_job_write_affinity() 146 job_write(pfdev, JS_AFFINITY_NEXT_LO(js), lower_32_bits(affinity)); in panfrost_job_write_affinity() 147 job_write(pfdev, JS_AFFINITY_NEXT_HI(js), upper_32_bits(affinity)); in panfrost_job_write_affinity() 155 if (!panfrost_has_hw_feature(job->pfdev, HW_FEATURE_JOBCHAIN_DISAMBIGUATION)) in panfrost_get_job_chain_flag() [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_CLEAR, in panfrost_perfcnt_dump_locked() [all …]
|
| H A D | panfrost_mmu.c | 72 static int wait_ready(struct panfrost_device *pfdev, u32 as_nr) in wait_ready() argument 79 ret = readl_relaxed_poll_timeout_atomic(pfdev->iomem + AS_STATUS(as_nr), in wait_ready() 84 panfrost_device_schedule_reset(pfdev); in wait_ready() 85 dev_err(pfdev->base.dev, "AS_ACTIVE bit stuck\n"); in wait_ready() 91 static int write_cmd(struct panfrost_device *pfdev, u32 as_nr, u32 cmd) in write_cmd() argument 96 status = wait_ready(pfdev, as_nr); in write_cmd() 98 mmu_write(pfdev, AS_COMMAND(as_nr), cmd); in write_cmd() 103 static void lock_region(struct panfrost_device *pfdev, u32 as_nr, in lock_region() argument 133 mmu_write(pfdev, AS_LOCKADDR_LO(as_nr), lower_32_bits(region)); in lock_region() 134 mmu_write(pfdev, AS_LOCKADDR_HI(as_nr), upper_32_bits(region)); in lock_region() [all …]
|
| H A D | panfrost_gem_shrinker.c | 21 struct panfrost_device *pfdev = shrinker->private_data; in panfrost_gem_shrinker_count() local 25 if (!mutex_trylock(&pfdev->shrinker_lock)) in panfrost_gem_shrinker_count() 28 list_for_each_entry(shmem, &pfdev->shrinker_list, madv_list) { in panfrost_gem_shrinker_count() 33 mutex_unlock(&pfdev->shrinker_lock); in panfrost_gem_shrinker_count() 67 struct panfrost_device *pfdev = shrinker->private_data; in panfrost_gem_shrinker_scan() local 71 if (!mutex_trylock(&pfdev->shrinker_lock)) in panfrost_gem_shrinker_scan() 74 list_for_each_entry_safe(shmem, tmp, &pfdev->shrinker_list, madv_list) { in panfrost_gem_shrinker_scan() 84 mutex_unlock(&pfdev->shrinker_lock); in panfrost_gem_shrinker_scan() 100 struct panfrost_device *pfdev = to_panfrost_device(dev); in panfrost_gem_shrinker_init() local 102 pfdev->shrinker = shrinker_alloc(0, "drm-panfrost"); in panfrost_gem_shrinker_init() [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); 18 void panfrost_gpu_suspend_irq(struct panfrost_device *pfdev); 20 void panfrost_cycle_counter_get(struct panfrost_device *pfdev); 21 void panfrost_cycle_counter_put(struct panfrost_device *pfdev); 22 unsigned long long panfrost_cycle_counter_read(struct panfrost_device *pfdev); [all …]
|
| H A D | panfrost_drv.c | 35 static int panfrost_ioctl_query_timestamp(struct panfrost_device *pfdev, in panfrost_ioctl_query_timestamp() argument 40 ret = pm_runtime_resume_and_get(pfdev->base.dev); in panfrost_ioctl_query_timestamp() 44 panfrost_cycle_counter_get(pfdev); in panfrost_ioctl_query_timestamp() 45 *arg = panfrost_timestamp_read(pfdev); in panfrost_ioctl_query_timestamp() 46 panfrost_cycle_counter_put(pfdev); in panfrost_ioctl_query_timestamp() 48 pm_runtime_put(pfdev->base.dev); in panfrost_ioctl_query_timestamp() 55 struct panfrost_device *pfdev = to_panfrost_device(ddev); in panfrost_ioctl_get_param() local 63 param->value = pfdev->features.member; \ in panfrost_ioctl_get_param() 68 param->value = pfdev->features.member[param->param - \ in panfrost_ioctl_get_param() 101 ret = panfrost_ioctl_query_timestamp(pfdev, ¶m->value); in panfrost_ioctl_get_param() [all …]
|
| H A D | panfrost_devfreq.c | 34 struct panfrost_device *pfdev = dev_get_drvdata(dev); in panfrost_devfreq_target() local 45 pfdev->pfdevfreq.current_frequency = *freq; in panfrost_devfreq_target() 60 struct panfrost_device *pfdev = dev_get_drvdata(dev); in panfrost_devfreq_get_dev_status() local 61 struct panfrost_devfreq *pfdevfreq = &pfdev->pfdevfreq; in panfrost_devfreq_get_dev_status() 64 status->current_frequency = clk_get_rate(pfdev->clock); in panfrost_devfreq_get_dev_status() 79 dev_dbg(pfdev->base.dev, "busy %lu total %lu %lu %% freq %lu MHz\n", in panfrost_devfreq_get_dev_status() 119 int panfrost_devfreq_init(struct panfrost_device *pfdev) in panfrost_devfreq_init() argument 124 struct device *dev = pfdev->base.dev; in panfrost_devfreq_init() 127 struct panfrost_devfreq *pfdevfreq = &pfdev->pfdevfreq; in panfrost_devfreq_init() 130 if (pfdev->comp->num_supplies > 1) { in panfrost_devfreq_init() [all …]
|
| H A D | panfrost_mmu.h | 15 int panfrost_mmu_init(struct panfrost_device *pfdev); 16 void panfrost_mmu_fini(struct panfrost_device *pfdev); 17 void panfrost_mmu_reset(struct panfrost_device *pfdev); 18 void panfrost_mmu_suspend_irq(struct panfrost_device *pfdev); 20 int panfrost_mmu_as_get(struct panfrost_device *pfdev, struct panfrost_mmu *mmu); 21 void panfrost_mmu_as_put(struct panfrost_device *pfdev, struct panfrost_mmu *mmu); 25 struct panfrost_mmu *panfrost_mmu_ctx_create(struct panfrost_device *pfdev);
|
| H A D | panfrost_job.h | 19 struct panfrost_device *pfdev; member 65 int panfrost_jm_init(struct panfrost_device *pfdev); 66 void panfrost_jm_fini(struct panfrost_device *pfdev); 69 void panfrost_jm_reset_interrupts(struct panfrost_device *pfdev); 70 void panfrost_jm_enable_interrupts(struct panfrost_device *pfdev); 71 void panfrost_jm_suspend_irq(struct panfrost_device *pfdev); 72 int panfrost_jm_is_idle(struct panfrost_device *pfdev);
|
| H A D | panfrost_gem.c | 18 void panfrost_gem_init(struct panfrost_device *pfdev) in panfrost_gem_init() argument 26 err = drm_gem_huge_mnt_create(&pfdev->base, "within_size"); in panfrost_gem_init() 27 if (drm_gem_get_huge_mnt(&pfdev->base)) in panfrost_gem_init() 28 drm_info(&pfdev->base, "Using Transparent Hugepage\n"); in panfrost_gem_init() 30 drm_warn(&pfdev->base, "Can't use Transparent Hugepage (%d)\n", in panfrost_gem_init() 35 static void panfrost_gem_debugfs_bo_add(struct panfrost_device *pfdev, in panfrost_gem_debugfs_bo_add() argument 41 mutex_lock(&pfdev->debugfs.gems_lock); in panfrost_gem_debugfs_bo_add() 42 list_add_tail(&bo->debugfs.node, &pfdev->debugfs.gems_list); in panfrost_gem_debugfs_bo_add() 43 mutex_unlock(&pfdev->debugfs.gems_lock); in panfrost_gem_debugfs_bo_add() 48 struct panfrost_device *pfdev = to_panfrost_device(bo->base.base.dev); in panfrost_gem_debugfs_bo_rm() local [all …]
|
| H A D | panfrost_dump.c | 77 struct panfrost_device *pfdev, in panfrost_core_dump_registers() argument 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->base.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->base.dev, "Panfrost Dump: BO has no sgt, cannot dump\n"); in panfrost_core_dump() 214 dev_err(pfdev->base.dev, "Panfrost Dump: couldn't map Buffer Object\n"); in panfrost_core_dump() 240 dev_coredumpv(pfdev->base.dev, iter.start, iter.data - iter.start, GFP_KERNEL); in panfrost_core_dump()
|
| H A D | panfrost_perfcnt.h | 8 void panfrost_perfcnt_sample_done(struct panfrost_device *pfdev); 9 void panfrost_perfcnt_clean_cache_done(struct panfrost_device *pfdev); 10 int panfrost_perfcnt_init(struct panfrost_device *pfdev); 11 void panfrost_perfcnt_fini(struct panfrost_device *pfdev);
|
| H A D | panfrost_devfreq.h | 36 int panfrost_devfreq_init(struct panfrost_device *pfdev); 37 void panfrost_devfreq_fini(struct panfrost_device *pfdev); 39 void panfrost_devfreq_resume(struct panfrost_device *pfdev); 40 void panfrost_devfreq_suspend(struct panfrost_device *pfdev);
|
| H A D | panfrost_features.h | 124 static inline bool panfrost_has_hw_feature(struct panfrost_device *pfdev, in panfrost_has_hw_feature() argument 127 return test_bit(feat, pfdev->features.hw_features); in panfrost_has_hw_feature()
|
| H A D | panfrost_issues.h | 268 static inline bool panfrost_has_hw_issue(const struct panfrost_device *pfdev, in panfrost_has_hw_issue() argument 271 return test_bit(issue, pfdev->features.hw_issues); in panfrost_has_hw_issue()
|
| /linux/drivers/media/pci/ddbridge/ |
| H A D | ddbridge.h | 312 struct platform_device *pfdev; member
|
| /linux/drivers/net/wireless/mediatek/mt76/mt7915/ |
| H A D | soc.c | 1193 struct platform_device *pfdev = to_platform_device(pdev); in mt798x_wmac_init() local 1208 dev->dcm = devm_platform_ioremap_resource(pfdev, 1); in mt798x_wmac_init() 1212 dev->sku = devm_platform_ioremap_resource(pfdev, 2); in mt798x_wmac_init()
|