Home
last modified time | relevance | path

Searched refs:pvr_dev (Results 1 – 25 of 45) sorted by relevance

12

/linux/drivers/gpu/drm/imagination/
A Dpvr_device.c60 pvr_dev->regs = NULL; in pvr_device_reg_init()
67 pvr_dev->regs = regs; in pvr_device_reg_init()
117 pvr_dev->sys_clk = sys_clk; in pvr_device_clk_init()
118 pvr_dev->mem_clk = mem_clk; in pvr_device_clk_init()
209 if (pvr_dev->irq < 0) in pvr_device_irq_init()
210 return pvr_dev->irq; in pvr_device_irq_init()
213 pvr_fw_irq_clear(pvr_dev); in pvr_device_irq_init()
228 free_irq(pvr_dev->irq, pvr_dev); in pvr_device_irq_fini()
412 pvr_load_gpu_id(pvr_dev); in pvr_device_gpu_init()
438 pvr_dev->kernel_vm_ctx = pvr_vm_create_context(pvr_dev, false); in pvr_device_gpu_init()
[all …]
A Dpvr_power.c35 if (!pvr_dev->lost) { in pvr_device_lost()
36 pvr_dev->lost = true; in pvr_device_lost()
118 pvr_fw_stop(pvr_dev); in pvr_power_fw_enable()
122 queue_delayed_work(pvr_dev->sched_wq, &pvr_dev->watchdog.work, in pvr_power_fw_enable()
189 if (pvr_dev->lost) in pvr_watchdog_worker()
211 if (!pvr_dev->lost) { in pvr_watchdog_worker()
212 queue_delayed_work(pvr_dev->sched_wq, &pvr_dev->watchdog.work, in pvr_watchdog_worker()
348 if (pvr_dev->lost) { in pvr_power_reset()
400 enable_irq(pvr_dev->irq); in pvr_power_reset()
404 pvr_power_put(pvr_dev); in pvr_power_reset()
[all …]
A Dpvr_fw_startstop.c37 rogue_bif_init(struct pvr_device *pvr_dev) in rogue_bif_init() argument
55 rogue_slc_init(struct pvr_device *pvr_dev) in rogue_slc_init() argument
80 if (PVR_HAS_QUIRK(pvr_dev, 71242) && !PVR_HAS_FEATURE(pvr_dev, gpu_multicore_support)) in rogue_slc_init()
97 pvr_fw_start(struct pvr_device *pvr_dev) in pvr_fw_start() argument
103 if (PVR_HAS_FEATURE(pvr_dev, pbe2_in_xe)) in pvr_fw_start()
146 err = rogue_slc_init(pvr_dev); in pvr_fw_start()
151 pvr_dev->fw_dev.defs->wrapper_init(pvr_dev); in pvr_fw_start()
154 rogue_axi_ace_list_init(pvr_dev); in pvr_fw_start()
158 rogue_bif_init(pvr_dev); in pvr_fw_start()
188 pvr_fw_stop(struct pvr_device *pvr_dev) in pvr_fw_stop() argument
[all …]
A Dpvr_ccb.c250 WARN_ON(pvr_dev->lost); in pvr_kccb_send_cmd_reserved_powered()
276 pvr_fw_mts_schedule(pvr_dev, in pvr_kccb_send_cmd_reserved_powered()
299 if (pvr_dev->kccb.reserved_count < pvr_kccb_capacity(pvr_dev) - used_count) { in pvr_kccb_try_reserve_slot()
379 err = pvr_power_get(pvr_dev); in pvr_kccb_send_cmd()
385 pvr_power_put(pvr_dev); in pvr_kccb_send_cmd()
405 int ret = wait_event_timeout(pvr_dev->kccb.rtn_q, READ_ONCE(pvr_dev->kccb.rtn[slot_nr]) & in pvr_kccb_wait_for_completion()
483 if (WARN_ON(used_count + pvr_dev->kccb.reserved_count > pvr_kccb_capacity(pvr_dev))) in pvr_kccb_wake_up_waiters()
486 available_count = pvr_kccb_capacity(pvr_dev) - used_count - pvr_dev->kccb.reserved_count; in pvr_kccb_wake_up_waiters()
529 return pvr_ccb_init(pvr_dev, &pvr_dev->kccb.ccb, in pvr_kccb_init()
597 if (pvr_dev->kccb.reserved_count >= pvr_kccb_capacity(pvr_dev) - used_count) { in pvr_kccb_reserve_slot()
[all …]
A Dpvr_fw.c136 pvr_dev->gpu_id.b, pvr_dev->gpu_id.v, pvr_dev->gpu_id.n, pvr_dev->gpu_id.c); in pvr_fw_validate()
574 pvr_fw_trace_fini(pvr_dev); in pvr_fw_create_structures()
606 pvr_fw_trace_fini(pvr_dev); in pvr_fw_destroy_structures()
643 layout_get_sizes(pvr_dev); in pvr_fw_process()
730 err = pvr_dev->fw_dev.defs->fw_process(pvr_dev, fw, in pvr_fw_process()
968 pvr_dev->kccb.rtn = pvr_fw_object_create_and_map(pvr_dev, kccb_rtn_size, in pvr_fw_init()
995 pvr_fw_stop(pvr_dev); in pvr_fw_init()
1007 pvr_kccb_fini(pvr_dev); in pvr_fw_init()
1010 pvr_fw_cleanup(pvr_dev); in pvr_fw_init()
1040 pvr_kccb_fini(pvr_dev); in pvr_fw_fini()
[all …]
A Dpvr_fw.h81 int (*init)(struct pvr_device *pvr_dev);
91 void (*fini)(struct pvr_device *pvr_dev);
404 pvr_cr_read32((pvr_dev), (pvr_dev)->fw_dev.defs->irq.name ## _reg)
407 pvr_cr_write32((pvr_dev), (pvr_dev)->fw_dev.defs->irq.name ## _reg, value)
409 #define pvr_fw_irq_pending(pvr_dev) \ argument
410 (pvr_fw_irq_read_reg(pvr_dev, status) & (pvr_dev)->fw_dev.defs->irq.event_mask)
412 #define pvr_fw_irq_clear(pvr_dev) \ argument
413 pvr_fw_irq_write_reg(pvr_dev, clear, (pvr_dev)->fw_dev.defs->irq.clear_mask)
415 #define pvr_fw_irq_enable(pvr_dev) \ argument
416 pvr_fw_irq_write_reg(pvr_dev, enable, (pvr_dev)->fw_dev.defs->irq.event_mask)
[all …]
A Dpvr_fw_mips.c39 struct drm_device *drm_dev = from_pvr_device(pvr_dev); in process_elf_command_stream()
74 pvr_mips_init(struct pvr_device *pvr_dev) in pvr_mips_init() argument
78 return pvr_vm_mips_init(pvr_dev); in pvr_mips_init()
82 pvr_mips_fini(struct pvr_device *pvr_dev) in pvr_mips_fini() argument
84 pvr_vm_mips_fini(pvr_dev); in pvr_mips_fini()
92 struct pvr_fw_device *fw_dev = &pvr_dev->fw_dev; in pvr_mips_fw_process()
133 boot_data->reg_base = pvr_dev->regs_resource->start; in pvr_mips_fw_process()
153 pvr_mips_wrapper_init(struct pvr_device *pvr_dev) in pvr_mips_wrapper_init() argument
168 pvr_cr_write32(pvr_dev, ROGUE_CR_MIPS_WRAPPER_CONFIG, in pvr_mips_wrapper_init()
181 if (PVR_HAS_QUIRK(pvr_dev, 63553)) { in pvr_mips_wrapper_init()
[all …]
A Dpvr_device.h321 struct pvr_device *pvr_dev; member
371 #define PVR_HAS_FEATURE(pvr_dev, feature) ((pvr_dev)->features.has_##feature) argument
412 #define PVR_HAS_QUIRK(pvr_dev, quirk) ((pvr_dev)->quirks.has_brn##quirk) argument
427 #define PVR_HAS_ENHANCEMENT(pvr_dev, enhancement) ((pvr_dev)->enhancements.has_ern##enhancement) argument
429 #define from_pvr_device(pvr_dev) (&(pvr_dev)->base) argument
498 int pvr_device_init(struct pvr_device *pvr_dev);
499 void pvr_device_fini(struct pvr_device *pvr_dev);
528 return ioread32(pvr_dev->regs + reg); in pvr_cr_read32()
541 return ioread64(pvr_dev->regs + reg); in pvr_cr_read64()
553 iowrite32(val, pvr_dev->regs + reg); in pvr_cr_write32()
[all …]
A Dpvr_drv.c302 if (PVR_HAS_QUIRK(pvr_dev, 48492) && !PVR_HAS_FEATURE(pvr_dev, compute_overlap)) in rogue_get_max_coeffs()
321 if (PVR_HAS_QUIRK(pvr_dev, 48492) && PVR_HAS_FEATURE(pvr_dev, roguexe) && in rogue_get_cdm_max_local_mem_size_regs()
1328 pvr_file->pvr_dev = pvr_dev; in pvr_drm_driver_open()
1402 struct pvr_device *pvr_dev; in pvr_probe() local
1408 if (IS_ERR(pvr_dev)) in pvr_probe()
1409 return PTR_ERR(pvr_dev); in pvr_probe()
1411 drm_dev = &pvr_dev->base; in pvr_probe()
1428 pvr_watchdog_init(pvr_dev); in pvr_probe()
1444 pvr_device_fini(pvr_dev); in pvr_probe()
1447 pvr_watchdog_fini(pvr_dev); in pvr_probe()
[all …]
A Dpvr_ccb.h46 int pvr_kccb_init(struct pvr_device *pvr_dev);
47 void pvr_kccb_fini(struct pvr_device *pvr_dev);
48 int pvr_fwccb_init(struct pvr_device *pvr_dev);
51 void pvr_fwccb_process(struct pvr_device *pvr_dev);
56 pvr_kccb_reserve_slot(struct pvr_device *pvr_dev, struct dma_fence *f);
57 void pvr_kccb_release_slot(struct pvr_device *pvr_dev);
58 int pvr_kccb_send_cmd(struct pvr_device *pvr_dev,
60 int pvr_kccb_send_cmd_powered(struct pvr_device *pvr_dev,
63 void pvr_kccb_send_cmd_reserved_powered(struct pvr_device *pvr_dev,
68 bool pvr_kccb_is_idle(struct pvr_device *pvr_dev);
[all …]
A Dpvr_stream.c20 pvr_device_has_feature(pvr_dev, stream_def->feature)) { in stream_def_is_supported()
78 if (!stream_def_is_supported(pvr_dev, &stream_def[i])) in pvr_stream_process_1()
127 pvr_stream_process_ext_stream(struct pvr_device *pvr_dev, in pvr_stream_process_ext_stream() argument
168 if (!pvr_device_has_uapi_quirk(pvr_dev, ext_def->quirk)) in pvr_stream_process_ext_stream()
255 if (pvr_dev->stream_musthave_quirks[cmd_defs->type][i]) in pvr_stream_process()
269 pvr_stream_create_musthave_masks(struct pvr_device *pvr_dev) in pvr_stream_create_musthave_masks() argument
271 memset(pvr_dev->stream_musthave_quirks, 0, sizeof(pvr_dev->stream_musthave_quirks)); in pvr_stream_create_musthave_masks()
273 if (pvr_device_has_uapi_quirk(pvr_dev, 47217)) in pvr_stream_create_musthave_masks()
274 pvr_dev->stream_musthave_quirks[PVR_STREAM_TYPE_FRAG][0] |= in pvr_stream_create_musthave_masks()
277 if (pvr_device_has_uapi_quirk(pvr_dev, 49927)) { in pvr_stream_create_musthave_masks()
[all …]
A Dpvr_context.c294 struct pvr_device *pvr_dev = pvr_file->pvr_dev; in pvr_context_create() local
314 ctx->pvr_dev = pvr_dev; in pvr_context_create()
361 spin_lock(&pvr_dev->ctx_list_lock); in pvr_context_create()
363 spin_unlock(&pvr_dev->ctx_list_lock); in pvr_context_create()
389 struct pvr_device *pvr_dev = ctx->pvr_dev; in pvr_context_release() local
392 spin_lock(&pvr_dev->ctx_list_lock); in pvr_context_release()
394 spin_unlock(&pvr_dev->ctx_list_lock); in pvr_context_release()
453 struct pvr_device *pvr_dev = pvr_file->pvr_dev; in pvr_destroy_contexts_for_file() local
460 spin_lock(&pvr_dev->ctx_list_lock); in pvr_destroy_contexts_for_file()
472 spin_lock(&pvr_dev->ctx_list_lock); in pvr_destroy_contexts_for_file()
[all …]
A Dpvr_queue.c443 struct pvr_device *pvr_dev = queue->ctx->pvr_dev; in pvr_queue_get_job_kccb_fence() local
562 struct pvr_device *pvr_dev = queue->ctx->pvr_dev; in pvr_queue_update_active_state_locked() local
594 struct pvr_device *pvr_dev = queue->ctx->pvr_dev; in pvr_queue_update_active_state() local
596 mutex_lock(&pvr_dev->queues.lock); in pvr_queue_update_active_state()
689 struct pvr_device *pvr_dev = job->pvr_dev; in pvr_queue_run_job() local
803 struct pvr_device *pvr_dev = queue->ctx->pvr_dev; in pvr_queue_timedout_job() local
819 mutex_lock(&pvr_dev->queues.lock); in pvr_queue_timedout_job()
1212 struct pvr_device *pvr_dev = ctx->pvr_dev; in pvr_queue_create() local
1290 pvr_dev->base.dev); in pvr_queue_create()
1412 err = drmm_mutex_init(from_pvr_device(pvr_dev), &pvr_dev->queues.lock); in pvr_queue_device_init()
[all …]
A Dpvr_fw_meta.c39 err = pvr_cr_poll_reg32(pvr_dev, ROGUE_CR_META_SP_MSLVCTRL1, in pvr_meta_cr_read32()
49 pvr_cr_write32(pvr_dev, ROGUE_CR_META_SP_MSLVCTRL0, in pvr_meta_cr_read32()
69 pvr_meta_wrapper_init(struct pvr_device *pvr_dev) in pvr_meta_wrapper_init() argument
114 struct pvr_device *pvr_dev = to_pvr_device(drm_dev); in meta_ldr_cmd_loadmem() local
156 struct pvr_device *pvr_dev = to_pvr_device(drm_dev); in meta_ldr_cmd_zeromem() local
258 struct drm_device *drm_dev = from_pvr_device(pvr_dev); in process_ldr_command_stream()
263 const u32 fw_size = pvr_dev->fw_dev.firmware->size; in process_ldr_command_stream()
362 struct pvr_fw_device *fw_dev = &pvr_dev->fw_dev; in get_fw_obj_gpu_addr()
460 struct pvr_fw_device *fw_dev = &pvr_dev->fw_dev; in pvr_meta_fw_process()
470 configure_seg_mmu(pvr_dev, &boot_conf); in pvr_meta_fw_process()
[all …]
A Dpvr_vm_mips.c30 pvr_vm_mips_init(struct pvr_device *pvr_dev) in pvr_vm_mips_init() argument
33 struct device *dev = from_pvr_device(pvr_dev)->dev; in pvr_vm_mips_init()
85 dma_unmap_page(from_pvr_device(pvr_dev)->dev, in pvr_vm_mips_init()
99 pvr_vm_mips_fini(struct pvr_device *pvr_dev) in pvr_vm_mips_fini() argument
101 struct pvr_fw_device *fw_dev = &pvr_dev->fw_dev; in pvr_vm_mips_fini()
107 dma_unmap_page(from_pvr_device(pvr_dev)->dev, in pvr_vm_mips_fini()
200 pvr_mmu_flush_request_all(pvr_dev); in pvr_vm_mips_map()
208 pvr_mmu_flush_request_all(pvr_dev); in pvr_vm_mips_map()
209 WARN_ON(pvr_mmu_flush_exec(pvr_dev, true)); in pvr_vm_mips_map()
236 pvr_mmu_flush_request_all(pvr_dev); in pvr_vm_mips_unmap()
[all …]
A Dpvr_power.h12 int pvr_watchdog_init(struct pvr_device *pvr_dev);
13 void pvr_watchdog_fini(struct pvr_device *pvr_dev);
15 void pvr_device_lost(struct pvr_device *pvr_dev);
17 bool pvr_power_is_idle(struct pvr_device *pvr_dev);
23 int pvr_power_reset(struct pvr_device *pvr_dev, bool hard_reset);
26 pvr_power_get(struct pvr_device *pvr_dev) in pvr_power_get() argument
28 struct drm_device *drm_dev = from_pvr_device(pvr_dev); in pvr_power_get()
34 pvr_power_put(struct pvr_device *pvr_dev) in pvr_power_put() argument
36 struct drm_device *drm_dev = from_pvr_device(pvr_dev); in pvr_power_put()
A Dpvr_free_list.c32 pvr_get_free_list_min_pages(struct pvr_device *pvr_dev) in pvr_get_free_list_min_pages() argument
36 if (PVR_HAS_FEATURE(pvr_dev, roguexe)) { in pvr_get_free_list_min_pages()
37 if (PVR_HAS_QUIRK(pvr_dev, 66011)) in pvr_get_free_list_min_pages()
89 free_list->pvr_dev = pvr_file->pvr_dev; in free_list_create_kernel_structure()
198 struct pvr_device *pvr_dev = pvr_file->pvr_dev; in free_list_create_fw_structure() local
300 struct pvr_device *pvr_dev = free_list->pvr_dev; in pvr_free_list_grow() local
434 err = xa_alloc(&pvr_file->pvr_dev->free_list_ids, in pvr_free_list_create()
453 WARN_ON(pvr_fw_structure_cleanup(free_list->pvr_dev, in pvr_free_list_create()
480 err = pvr_fw_structure_cleanup(free_list->pvr_dev, in pvr_free_list_release()
487 pvr_fwccb_process(free_list->pvr_dev); in pvr_free_list_release()
[all …]
A Dpvr_device_info.c61 drm_warn(from_pvr_device(pvr_dev), "Unsupported quirks in firmware image"); in pvr_device_info_set_common()
63 drm_warn(from_pvr_device(pvr_dev), in pvr_device_info_set_common()
70 drm_warn(from_pvr_device(pvr_dev), in pvr_device_info_set_common()
73 drm_warn(from_pvr_device(pvr_dev), in pvr_device_info_set_common()
80 *(bool *)((u8 *)pvr_dev + mapping[i]) = true; in pvr_device_info_set_common()
94 pvr_device_info_set_common(pvr_dev, quirks, quirks_size, quirks_mapping, in pvr_device_info_set_quirks()
109 pvr_device_info_set_common(pvr_dev, enhancements, enhancements_size, in pvr_device_info_set_enhancements()
229 drm_warn(from_pvr_device(pvr_dev), "Unsupported features in firmware image"); in pvr_device_info_set_features()
235 drm_warn(from_pvr_device(pvr_dev), in pvr_device_info_set_features()
241 *(bool *)((u8 *)pvr_dev + features_mapping[i].flag_offset) = true; in pvr_device_info_set_features()
[all …]
A Dpvr_hwrt.c45 struct pvr_device *pvr_dev = pvr_file->pvr_dev; in hwrt_init_kernel_structure() local
49 hwrt->pvr_dev = pvr_dev; in hwrt_init_kernel_structure()
62 pvr_get_free_list_min_pages(pvr_dev)) { in hwrt_init_kernel_structure()
96 get_cr_isp_mtile_size_val(struct pvr_device *pvr_dev, u32 samples, in get_cr_isp_mtile_size_val() argument
237 struct pvr_device *pvr_dev = pvr_file->pvr_dev; in hwrt_init_common_fw_structure() local
241 err = PVR_FEATURE_VALUE(pvr_dev, tile_size_x, &info.tile_size_x); in hwrt_init_common_fw_structure()
245 err = PVR_FEATURE_VALUE(pvr_dev, tile_size_y, &info.tile_size_y); in hwrt_init_common_fw_structure()
252 if (PVR_HAS_FEATURE(pvr_dev, simple_parameter_format_version)) { in hwrt_init_common_fw_structure()
255 err = PVR_FEATURE_VALUE(pvr_dev, simple_parameter_format_version, in hwrt_init_common_fw_structure()
331 err = get_cr_isp_mtile_size_val(pvr_dev, args->samples, &info, in hwrt_init_common_fw_structure()
[all …]
A Dpvr_free_list.h52 struct pvr_device *pvr_dev; member
114 pvr_get_free_list_min_pages(struct pvr_device *pvr_dev);
161 pvr_free_list_lookup_id(struct pvr_device *pvr_dev, u32 id) in pvr_free_list_lookup_id() argument
165 xa_lock(&pvr_dev->free_list_ids); in pvr_free_list_lookup_id()
172 free_list = xa_load(&pvr_dev->free_list_ids, id); in pvr_free_list_lookup_id()
175 xa_unlock(&pvr_dev->free_list_ids); in pvr_free_list_lookup_id()
188 void pvr_free_list_process_grow_req(struct pvr_device *pvr_dev,
192 pvr_free_list_process_reconstruct_req(struct pvr_device *pvr_dev,
A Dpvr_mmu.c136 if (!pvr_dev->fw_dev.booted) in pvr_mmu_flush_exec()
175 pvr_device_lost(pvr_dev); in pvr_mmu_flush_exec()
182 pvr_device_lost(pvr_dev); in pvr_mmu_flush_exec()
233 struct pvr_device *pvr_dev; member
257 struct pvr_device *pvr_dev) in pvr_mmu_backing_page_init() argument
286 page->pvr_dev = pvr_dev; in pvr_mmu_backing_page_init()
322 if (!page->pvr_dev) in pvr_mmu_backing_page_fini()
353 struct pvr_device *pvr_dev = page->pvr_dev; in pvr_mmu_backing_page_sync() local
360 if (!pvr_dev) in pvr_mmu_backing_page_sync()
1348 struct pvr_device *pvr_dev; member
[all …]
A Dpvr_fw_trace.c47 int pvr_fw_trace_init(struct pvr_device *pvr_dev) in pvr_fw_trace_init() argument
49 struct pvr_fw_trace *fw_trace = &pvr_dev->fw_dev.fw_trace; in pvr_fw_trace_init()
50 struct drm_device *drm_dev = from_pvr_device(pvr_dev); in pvr_fw_trace_init()
58 pvr_fw_object_create_and_map(pvr_dev, in pvr_fw_trace_init()
76 pvr_fw_object_create_and_map(pvr_dev, in pvr_fw_trace_init()
112 void pvr_fw_trace_fini(struct pvr_device *pvr_dev) in pvr_fw_trace_fini() argument
152 down_read(&pvr_dev->reset_sem); in update_logtype()
153 if (!drm_dev_enter(from_pvr_device(pvr_dev), &idx)) { in update_logtype()
161 err = pvr_kccb_send_cmd(pvr_dev, &cmd, NULL); in update_logtype()
166 up_read(&pvr_dev->reset_sem); in update_logtype()
[all …]
A Dpvr_context.h37 struct pvr_device *pvr_dev; member
183 pvr_context_lookup_id(struct pvr_device *pvr_dev, u32 id) in pvr_context_lookup_id() argument
188 xa_lock(&pvr_dev->ctx_ids); in pvr_context_lookup_id()
195 ctx = xa_load(&pvr_dev->ctx_ids, id); in pvr_context_lookup_id()
199 xa_unlock(&pvr_dev->ctx_ids); in pvr_context_lookup_id()
222 void pvr_context_device_init(struct pvr_device *pvr_dev);
224 void pvr_context_device_fini(struct pvr_device *pvr_dev);
A Dpvr_params.c73 struct pvr_device *pvr_dev = data; \
76 (update_)(pvr_dev, pvr_dev->params.name_, val); \
77 pvr_dev->params.name_ = val; \
85 struct pvr_device *pvr_dev = data; \
86 *val = pvr_dev->params.name_; \
131 pvr_params_debugfs_init(struct pvr_device *pvr_dev, struct dentry *dir) in pvr_params_debugfs_init() argument
138 debugfs_create_file(#name_, X_MODE(mode_), dir, pvr_dev, \ in pvr_params_debugfs_init()
A Dpvr_vm_mips.h14 pvr_vm_mips_init(struct pvr_device *pvr_dev);
16 pvr_vm_mips_fini(struct pvr_device *pvr_dev);
18 pvr_vm_mips_map(struct pvr_device *pvr_dev, struct pvr_fw_object *fw_obj);
20 pvr_vm_mips_unmap(struct pvr_device *pvr_dev, struct pvr_fw_object *fw_obj);

Completed in 53 milliseconds

12