Home
last modified time | relevance | path

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

12

/linux/drivers/gpu/drm/imagination/
H A Dpvr_power.c39 pvr_device_lost(struct pvr_device *pvr_dev) in pvr_device_lost() argument
41 if (!pvr_dev->lost) { in pvr_device_lost()
42 pvr_dev->lost = true; in pvr_device_lost()
43 drm_dev_unplug(from_pvr_device(pvr_dev)); in pvr_device_lost()
48 pvr_power_send_command(struct pvr_device *pvr_dev, struct rogue_fwif_kccb_cmd *pow_cmd) in pvr_power_send_command() argument
50 struct pvr_fw_device *fw_dev = &pvr_dev->fw_dev; in pvr_power_send_command()
57 err = pvr_kccb_send_cmd_powered(pvr_dev, pow_cmd, &slot_nr); in pvr_power_send_command()
62 return readl_poll_timeout(pvr_dev->fw_dev.power_sync, value, value != 0, 100, in pvr_power_send_command()
67 pvr_power_request_idle(struct pvr_device *pvr_dev) in pvr_power_request_idle() argument
76 return pvr_power_send_command(pvr_dev, &pow_cmd); in pvr_power_request_idle()
[all …]
H A Dpvr_ccb.c49 pvr_ccb_init(struct pvr_device *pvr_dev, struct pvr_ccb *pvr_ccb, in pvr_ccb_init() argument
59 err = drmm_mutex_init(from_pvr_device(pvr_dev), &pvr_ccb->lock); in pvr_ccb_init()
67 pvr_ccb->ctrl = pvr_fw_object_create_and_map(pvr_dev, sizeof(*pvr_ccb->ctrl), in pvr_ccb_init()
73 pvr_ccb->ccb = pvr_fw_object_create_and_map(pvr_dev, ccb_size, in pvr_ccb_init()
137 process_fwccb_command(struct pvr_device *pvr_dev, struct rogue_fwif_fwccb_cmd *cmd) in process_fwccb_command() argument
141 pvr_power_reset(pvr_dev, false); in process_fwccb_command()
145 pvr_free_list_process_reconstruct_req(pvr_dev, in process_fwccb_command()
150 pvr_free_list_process_grow_req(pvr_dev, &cmd->cmd_data.cmd_free_list_gs); in process_fwccb_command()
154 drm_info(from_pvr_device(pvr_dev), "Received unknown FWCCB command %x\n", in process_fwccb_command()
164 void pvr_fwccb_process(struct pvr_device *pvr_dev) in pvr_fwccb_process() argument
[all …]
H A Dpvr_fw.c50 pvr_fw_find_layout_entry(struct pvr_device *pvr_dev, enum pvr_fw_section_id id) in pvr_fw_find_layout_entry() argument
52 const struct pvr_fw_layout_entry *layout_entries = pvr_dev->fw_dev.layout_entries; in pvr_fw_find_layout_entry()
53 u32 num_layout_entries = pvr_dev->fw_dev.header->layout_entry_num; in pvr_fw_find_layout_entry()
64 pvr_fw_find_private_data(struct pvr_device *pvr_dev) in pvr_fw_find_private_data() argument
66 const struct pvr_fw_layout_entry *layout_entries = pvr_dev->fw_dev.layout_entries; in pvr_fw_find_private_data()
67 u32 num_layout_entries = pvr_dev->fw_dev.header->layout_entry_num; in pvr_fw_find_private_data()
90 pvr_fw_validate(struct pvr_device *pvr_dev) in pvr_fw_validate() argument
92 struct drm_device *drm_dev = from_pvr_device(pvr_dev); in pvr_fw_validate()
93 const struct firmware *firmware = pvr_dev->fw_dev.firmware; in pvr_fw_validate()
128 if (pvr_gpu_id_to_packed_bvnc(&pvr_dev->gpu_id) != header->bvnc) { in pvr_fw_validate()
[all …]
H A Dpvr_drv.c77 struct pvr_device *pvr_dev = to_pvr_device(drm_dev); in pvr_ioctl_create_bo() local
115 pvr_obj = pvr_gem_object_create(pvr_dev, sanitized_size, args->flags); in pvr_ioctl_create_bo()
232 rogue_get_common_store_partition_space_size(struct pvr_device *pvr_dev) in rogue_get_common_store_partition_space_size() argument
238 PVR_FEATURE_VALUE(pvr_dev, tile_size_x, &tile_size_x); in rogue_get_common_store_partition_space_size()
239 PVR_FEATURE_VALUE(pvr_dev, tile_size_y, &tile_size_y); in rogue_get_common_store_partition_space_size()
240 PVR_FEATURE_VALUE(pvr_dev, max_partitions, &max_partitions); in rogue_get_common_store_partition_space_size()
245 PVR_FEATURE_VALUE(pvr_dev, usc_min_output_registers_per_pix, in rogue_get_common_store_partition_space_size()
256 rogue_get_common_store_alloc_region_size(struct pvr_device *pvr_dev) in rogue_get_common_store_alloc_region_size() argument
261 PVR_FEATURE_VALUE(pvr_dev, common_store_size_in_dwords, &common_store_size_in_dwords); in rogue_get_common_store_alloc_region_size()
264 rogue_get_common_store_partition_space_size(pvr_dev); in rogue_get_common_store_alloc_region_size()
[all …]
H A Dpvr_queue.c24 static int get_xfer_ctx_state_size(struct pvr_device *pvr_dev) in get_xfer_ctx_state_size() argument
28 if (PVR_HAS_FEATURE(pvr_dev, xe_memory_hierarchy)) { in get_xfer_ctx_state_size()
33 err = PVR_FEATURE_VALUE(pvr_dev, num_isp_ipp_pipes, &num_isp_store_registers); in get_xfer_ctx_state_size()
43 static int get_frag_ctx_state_size(struct pvr_device *pvr_dev) in get_frag_ctx_state_size() argument
48 if (PVR_HAS_FEATURE(pvr_dev, xe_memory_hierarchy)) { in get_frag_ctx_state_size()
49 err = PVR_FEATURE_VALUE(pvr_dev, num_raster_pipes, &num_isp_store_registers); in get_frag_ctx_state_size()
53 if (PVR_HAS_FEATURE(pvr_dev, gpu_multicore_support)) { in get_frag_ctx_state_size()
56 err = PVR_FEATURE_VALUE(pvr_dev, xpu_max_slaves, &xpu_max_slaves); in get_frag_ctx_state_size()
63 err = PVR_FEATURE_VALUE(pvr_dev, num_isp_ipp_pipes, &num_isp_store_registers); in get_frag_ctx_state_size()
73 static int get_ctx_state_size(struct pvr_device *pvr_dev, enum drm_pvr_job_type type) in get_ctx_state_size() argument
[all …]
H 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,
66 int pvr_kccb_wait_for_completion(struct pvr_device *pvr_dev, u32 slot_nr, u32 timeout,
[all …]
H A Dpvr_context.c70 process_static_context_state(struct pvr_device *pvr_dev, const struct pvr_stream_cmd_defs *cmd_defs, in process_static_context_state() argument
80 err = pvr_stream_process(pvr_dev, cmd_defs, stream, stream_size, dest); in process_static_context_state()
100 return process_static_context_state(ctx->pvr_dev, in init_render_fw_objs()
120 return process_static_context_state(ctx->pvr_dev, in init_compute_fw_objs()
282 struct pvr_device *pvr_dev = pvr_file->pvr_dev; in pvr_context_create() local
302 ctx->pvr_dev = pvr_dev; in pvr_context_create()
329 err = pvr_fw_object_create(pvr_dev, ctx_size, PVR_BO_FW_FLAGS_DEVICE_UNCACHED, in pvr_context_create()
334 err = xa_alloc(&pvr_dev->ctx_ids, &ctx->ctx_id, ctx, xa_limit_32b, GFP_KERNEL); in pvr_context_create()
349 spin_lock(&pvr_dev->ctx_list_lock); in pvr_context_create()
351 spin_unlock(&pvr_dev->ctx_list_lock); in pvr_context_create()
[all …]
H 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
205 free_list->fw_data = pvr_fw_object_create_and_map(pvr_dev, sizeof(*free_list->fw_data), in free_list_create_fw_structure()
299 struct pvr_device *pvr_dev = free_list->pvr_dev; in pvr_free_list_grow() local
319 free_list_node->mem_obj = pvr_gem_object_create(pvr_dev, in pvr_free_list_grow()
359 void pvr_free_list_process_grow_req(struct pvr_device *pvr_dev, in pvr_free_list_process_grow_req() argument
362 struct pvr_free_list *free_list = pvr_free_list_lookup_id(pvr_dev, req->freelist_id); in pvr_free_list_process_grow_req()
[all …]
H A Dpvr_fw_trace.c23 validate_group_mask(struct pvr_device *pvr_dev, const u32 group_mask) in validate_group_mask() argument
26 drm_warn(from_pvr_device(pvr_dev), in validate_group_mask()
109 int pvr_fw_trace_init(struct pvr_device *pvr_dev) in pvr_fw_trace_init() argument
111 struct pvr_fw_trace *fw_trace = &pvr_dev->fw_dev.fw_trace; in pvr_fw_trace_init()
112 struct drm_device *drm_dev = from_pvr_device(pvr_dev); in pvr_fw_trace_init()
119 pvr_fw_object_create_and_map(pvr_dev, in pvr_fw_trace_init()
142 pvr_fw_object_create_and_map(pvr_dev, in pvr_fw_trace_init()
178 void pvr_fw_trace_fini(struct pvr_device *pvr_dev) in pvr_fw_trace_fini() argument
180 struct pvr_fw_trace *fw_trace = &pvr_dev->fw_dev.fw_trace; in pvr_fw_trace_fini()
203 update_logtype(struct pvr_device *pvr_dev, u32 group_mask) in update_logtype() argument
[all …]
H A Dpvr_hwrt.c45 struct pvr_device *pvr_dev = pvr_file->pvr_dev; in hwrt_init_kernel_structure() local
48 hwrt->pvr_dev = pvr_dev; in hwrt_init_kernel_structure()
61 pvr_get_free_list_min_pages(pvr_dev)) { in hwrt_init_kernel_structure()
93 get_cr_isp_mtile_size_val(struct pvr_device *pvr_dev, u32 samples, in get_cr_isp_mtile_size_val() argument
101 err = PVR_FEATURE_VALUE(pvr_dev, isp_samples_per_pixel, &samples_per_pixel); in get_cr_isp_mtile_size_val()
177 get_cr_te_aa_val(struct pvr_device *pvr_dev, u32 samples, u32 *value_out) in get_cr_te_aa_val() argument
183 err = PVR_FEATURE_VALUE(pvr_dev, isp_samples_per_pixel, &samples_per_pixel); in get_cr_te_aa_val()
234 struct pvr_device *pvr_dev = pvr_file->pvr_dev; in hwrt_init_common_fw_structure() local
238 err = PVR_FEATURE_VALUE(pvr_dev, tile_size_x, &info.tile_size_x); in hwrt_init_common_fw_structure()
242 err = PVR_FEATURE_VALUE(pvr_dev, tile_size_y, &info.tile_size_y); in hwrt_init_common_fw_structure()
[all …]
H A Dpvr_device_info.c52 static void pvr_device_info_set_common(struct pvr_device *pvr_dev, const u64 *bitmask, in pvr_device_info_set_common() argument
61 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()
90 void pvr_device_info_set_quirks(struct pvr_device *pvr_dev, const u64 *quirks, u32 quirks_size) in pvr_device_info_set_quirks() argument
94 pvr_device_info_set_common(pvr_dev, quirks, quirks_size, quirks_mapping, in pvr_device_info_set_quirks()
104 void pvr_device_info_set_enhancements(struct pvr_device *pvr_dev, const u64 *enhancements, in pvr_device_info_set_enhancements() argument
109 pvr_device_info_set_common(pvr_dev, enhancements, enhancements_size, in pvr_device_info_set_enhancements()
[all …]
H A Dpvr_mmu.c86 static void pvr_mmu_set_flush_flags(struct pvr_device *pvr_dev, u32 flags) in pvr_mmu_set_flush_flags() argument
88 atomic_fetch_or(flags, &pvr_dev->mmu_flush_cache_flags); in pvr_mmu_set_flush_flags()
99 void pvr_mmu_flush_request_all(struct pvr_device *pvr_dev) in pvr_mmu_flush_request_all() argument
101 pvr_mmu_set_flush_flags(pvr_dev, PVR_MMU_SYNC_LEVEL_2_FLAGS); in pvr_mmu_flush_request_all()
124 int pvr_mmu_flush_exec(struct pvr_device *pvr_dev, bool wait) in pvr_mmu_flush_exec() argument
133 if (!drm_dev_enter(from_pvr_device(pvr_dev), &idx)) in pvr_mmu_flush_exec()
137 if (!pvr_dev->fw_dev.booted) in pvr_mmu_flush_exec()
141 atomic_xchg(&pvr_dev->mmu_flush_cache_flags, 0); in pvr_mmu_flush_exec()
148 pvr_fw_object_get_fw_addr(pvr_dev->fw_dev.mem.mmucache_sync_obj, in pvr_mmu_flush_exec()
152 err = pvr_kccb_send_cmd(pvr_dev, &cmd_mmu_cache, &slot); in pvr_mmu_flush_exec()
[all …]
H 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,
H 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);
H A Dpvr_job.c27 xa_erase(&job->pvr_dev->job_ids, job->id); in pvr_job_release()
68 pvr_job_process_stream(struct pvr_device *pvr_dev, const struct pvr_stream_cmd_defs *cmd_defs, in pvr_job_process_stream() argument
79 err = pvr_stream_process(pvr_dev, cmd_defs, stream, stream_size, job->cmd); in pvr_job_process_stream()
86 static int pvr_fw_cmd_init(struct pvr_device *pvr_dev, struct pvr_job *job, in pvr_fw_cmd_init() argument
97 err = pvr_job_process_stream(pvr_dev, stream_def, stream, stream_len, job); in pvr_fw_cmd_init()
158 err = pvr_fw_cmd_init(job->pvr_dev, job, &pvr_cmd_geom_stream, in pvr_geom_job_fw_cmd_init()
189 err = pvr_fw_cmd_init(job->pvr_dev, job, &pvr_cmd_frag_stream, in pvr_frag_job_fw_cmd_init()
228 err = pvr_fw_cmd_init(job->pvr_dev, job, &pvr_cmd_compute_stream, in pvr_compute_job_fw_cmd_init()
264 err = pvr_fw_cmd_init(job->pvr_dev, job, &pvr_cmd_transfer_stream, in pvr_transfer_job_fw_cmd_init()
403 create_job(struct pvr_device *pvr_dev, in create_job() argument
[all …]
H A Dpvr_cccb.c46 pvr_cccb_init(struct pvr_device *pvr_dev, struct pvr_cccb *pvr_cccb, in pvr_cccb_init() argument
60 pvr_cccb->ctrl = pvr_fw_object_create_and_map(pvr_dev, sizeof(*pvr_cccb->ctrl), in pvr_cccb_init()
67 pvr_cccb->cccb = pvr_fw_object_create_and_map(pvr_dev, size, in pvr_cccb_init()
225 pvr_cccb_send_kccb_kick(struct pvr_device *pvr_dev, in pvr_cccb_send_kccb_kick() argument
238 pvr_kccb_send_cmd_reserved_powered(pvr_dev, &cmd_kick, NULL); in pvr_cccb_send_kccb_kick()
242 pvr_cccb_send_kccb_combined_kick(struct pvr_device *pvr_dev, in pvr_cccb_send_kccb_combined_kick() argument
266 pvr_kccb_send_cmd_reserved_powered(pvr_dev, &cmd_kick, NULL); in pvr_cccb_send_kccb_combined_kick()
H A Dpvr_job.h67 struct pvr_device *pvr_dev; member
122 pvr_power_put(job->pvr_dev); in pvr_job_release_pm_ref()
143 err = pvr_power_get(job->pvr_dev); in pvr_job_get_pm_ref()
158 int pvr_submit_jobs(struct pvr_device *pvr_dev, struct pvr_file *pvr_file,
H A Dpvr_vm.c42 struct pvr_device *pvr_dev; member
237 const bool is_user = vm_ctx != vm_ctx->pvr_dev->kernel_vm_ctx; in pvr_vm_bind_op_map_init()
247 !pvr_find_heap_containing(vm_ctx->pvr_dev, device_addr, size)) { in pvr_vm_bind_op_map_init()
545 pvr_vm_create_context(struct pvr_device *pvr_dev, bool is_userspace_context) in pvr_vm_create_context() argument
547 struct drm_device *drm_dev = from_pvr_device(pvr_dev); in pvr_vm_create_context()
554 err = PVR_FEATURE_VALUE(pvr_dev, virtual_address_space_bits, in pvr_vm_create_context()
572 vm_ctx->pvr_dev = pvr_dev; in pvr_vm_create_context()
574 vm_ctx->mmu_ctx = pvr_mmu_context_create(pvr_dev); in pvr_vm_create_context()
580 err = pvr_fw_object_create(pvr_dev, sizeof(struct rogue_fwif_fwmemcontext), in pvr_vm_create_context()
588 drm_gem_private_object_init(&pvr_dev->base, &vm_ctx->dummy_gem, 0); in pvr_vm_create_context()
[all …]
H A Dpvr_vm.h35 struct pvr_vm_context *pvr_vm_create_context(struct pvr_device *pvr_dev,
50 int pvr_static_data_areas_get(const struct pvr_device *pvr_dev,
52 int pvr_heap_info_get(const struct pvr_device *pvr_dev,
54 const struct drm_pvr_heap *pvr_find_heap_containing(struct pvr_device *pvr_dev,
H A Dpvr_mmu.h91 void pvr_mmu_flush_request_all(struct pvr_device *pvr_dev);
92 int pvr_mmu_flush_exec(struct pvr_device *pvr_dev, bool wait);
94 struct pvr_mmu_context *pvr_mmu_context_create(struct pvr_device *pvr_dev);
H A Dpvr_cccb.h55 int pvr_cccb_init(struct pvr_device *pvr_dev, struct pvr_cccb *cccb,
62 void pvr_cccb_send_kccb_kick(struct pvr_device *pvr_dev,
65 void pvr_cccb_send_kccb_combined_kick(struct pvr_device *pvr_dev,
H A Dpvr_fw_startstop.h10 int pvr_fw_start(struct pvr_device *pvr_dev);
11 int pvr_fw_stop(struct pvr_device *pvr_dev);
H A Dpvr_rogue_mips.h28 #define ROGUE_MIPSFW_LOG2_PAGETABLE_SIZE_4K(pvr_dev) ((pvr_dev)->fw_dev.fw_heap_info.log2_size - \ argument
31 #define ROGUE_MIPSFW_LOG2_PAGETABLE_SIZE_64K(pvr_dev) ((pvr_dev)->fw_dev.fw_heap_info.log2_size - \ argument
H A Dpvr_device_info.h152 void pvr_device_info_set_quirks(struct pvr_device *pvr_dev, const u64 *bitmask,
154 void pvr_device_info_set_enhancements(struct pvr_device *pvr_dev, const u64 *bitmask,
156 int pvr_device_info_set_features(struct pvr_device *pvr_dev, const u64 *features, u32 features_size,
H A Dpvr_stream.h70 pvr_stream_process(struct pvr_device *pvr_dev, const struct pvr_stream_cmd_defs *cmd_defs,
73 pvr_stream_create_musthave_masks(struct pvr_device *pvr_dev);

12