Home
last modified time | relevance | path

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

12

/linux/drivers/gpu/drm/imagination/ !
H A Dpvr_device.c55 pvr_device_reg_init(struct pvr_device *pvr_dev) in pvr_device_reg_init() argument
57 struct drm_device *drm_dev = from_pvr_device(pvr_dev); in pvr_device_reg_init()
62 pvr_dev->regs_resource = NULL; in pvr_device_reg_init()
63 pvr_dev->regs = NULL; in pvr_device_reg_init()
70 pvr_dev->regs = regs; in pvr_device_reg_init()
71 pvr_dev->regs_resource = regs_resource; in pvr_device_reg_init()
97 static int pvr_device_clk_init(struct pvr_device *pvr_dev) in pvr_device_clk_init() argument
99 struct drm_device *drm_dev = from_pvr_device(pvr_dev); in pvr_device_clk_init()
119 pvr_dev->core_clk = core_clk; in pvr_device_clk_init()
120 pvr_dev->sys_clk = sys_clk; in pvr_device_clk_init()
[all …]
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_fw_startstop.c20 rogue_axi_ace_list_init(struct pvr_device *pvr_dev) in rogue_axi_ace_list_init() argument
33 pvr_cr_write64(pvr_dev, ROGUE_CR_AXI_ACE_LITE_CONFIGURATION, reg_val); in rogue_axi_ace_list_init()
37 rogue_bif_init(struct pvr_device *pvr_dev) in rogue_bif_init() argument
43 pc_dma_addr = pvr_vm_get_page_table_root_addr(pvr_dev->kernel_vm_ctx); in rogue_bif_init()
50 pvr_cr_write64(pvr_dev, BIF_CAT_BASEX(MMU_CONTEXT_MAPPING_FWPRIV), in rogue_bif_init()
53 if (pvr_dev->fw_dev.processor_type == PVR_FW_PROCESSOR_TYPE_RISCV) { in rogue_bif_init()
58 pvr_cr_write64(pvr_dev, FWCORE_MEM_CAT_BASEX(MMU_CONTEXT_MAPPING_FWPRIV), pc_addr); in rogue_bif_init()
63 rogue_slc_init(struct pvr_device *pvr_dev) in rogue_slc_init() argument
76 reg_val = (pvr_cr_read32(pvr_dev, ROGUE_CR_SLC_CTRL_MISC) & in rogue_slc_init()
80 err = PVR_FEATURE_VALUE(pvr_dev, slc_cache_line_size_bits, &slc_cache_line_size_bits); in rogue_slc_init()
[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_fw_mips.c19 pvr_mips_init(struct pvr_device *pvr_dev) in pvr_mips_init() argument
21 pvr_fw_heap_info_init(pvr_dev, ROGUE_FW_HEAP_MIPS_SHIFT, ROGUE_FW_HEAP_MIPS_RESERVED_SIZE); in pvr_mips_init()
23 return pvr_vm_mips_init(pvr_dev); in pvr_mips_init()
27 pvr_mips_fini(struct pvr_device *pvr_dev) in pvr_mips_fini() argument
29 pvr_vm_mips_fini(pvr_dev); in pvr_mips_fini()
33 pvr_mips_fw_process(struct pvr_device *pvr_dev, const u8 *fw, in pvr_mips_fw_process() argument
37 struct pvr_fw_device *fw_dev = &pvr_dev->fw_dev; in pvr_mips_fw_process()
47 err = pvr_fw_process_elf_command_stream(pvr_dev, fw, fw_code_ptr, fw_data_ptr, in pvr_mips_fw_process()
52 boot_code_entry = pvr_fw_find_layout_entry(pvr_dev, MIPS_BOOT_CODE); in pvr_mips_fw_process()
53 boot_data_entry = pvr_fw_find_layout_entry(pvr_dev, MIPS_BOOT_DATA); in pvr_mips_fw_process()
[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_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()
41 int pvr_power_domains_init(struct pvr_device *pvr_dev);
[all …]
H A Dpvr_fw_riscv.c23 pvr_riscv_wrapper_init(struct pvr_device *pvr_dev) in pvr_riscv_wrapper_init() argument
31 u64 code_addr = pvr_fw_obj_get_gpu_addr(pvr_dev->fw_dev.mem.code_obj); in pvr_riscv_wrapper_init()
32 u64 data_addr = pvr_fw_obj_get_gpu_addr(pvr_dev->fw_dev.mem.data_obj); in pvr_riscv_wrapper_init()
41 pvr_cr_write64(pvr_dev, ROGUE_RISCVFW_REGION_REMAP_CR(BOOTLDR_CODE), in pvr_riscv_wrapper_init()
44 pvr_cr_write64(pvr_dev, ROGUE_RISCVFW_REGION_REMAP_CR(BOOTLDR_DATA), in pvr_riscv_wrapper_init()
49 pvr_cr_write64(pvr_dev, ROGUE_CR_MTS_GARTEN_WRAPPER_CONFIG, in pvr_riscv_wrapper_init()
67 pvr_riscv_fw_process(struct pvr_device *pvr_dev, const u8 *fw, in pvr_riscv_fw_process() argument
71 struct pvr_fw_device *fw_dev = &pvr_dev->fw_dev; in pvr_riscv_fw_process()
76 err = pvr_fw_process_elf_command_stream(pvr_dev, fw, fw_code_ptr, fw_data_ptr, in pvr_riscv_fw_process()
102 pvr_riscv_init(struct pvr_device *pvr_dev) in pvr_riscv_init() argument
[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_fw.h81 int (*init)(struct pvr_device *pvr_dev);
91 void (*fini)(struct pvr_device *pvr_dev);
111 int (*fw_process)(struct pvr_device *pvr_dev, const u8 *fw,
128 int (*vm_map)(struct pvr_device *pvr_dev, struct pvr_fw_object *fw_obj);
139 void (*vm_unmap)(struct pvr_device *pvr_dev, struct pvr_fw_object *fw_obj);
167 int (*wrapper_init)(struct pvr_device *pvr_dev);
176 bool (*irq_pending)(struct pvr_device *pvr_dev);
185 void (*irq_clear)(struct pvr_device *pvr_dev);
397 int pvr_fw_validate_init_device_info(struct pvr_device *pvr_dev);
398 int pvr_fw_init(struct pvr_device *pvr_dev);
[all …]
H A Dpvr_fw_meta.c36 pvr_meta_cr_read32(struct pvr_device *pvr_dev, u32 reg_addr, u32 *reg_value_out) in pvr_meta_cr_read32() argument
41 err = pvr_cr_poll_reg32(pvr_dev, ROGUE_CR_META_SP_MSLVCTRL1, in pvr_meta_cr_read32()
51 pvr_cr_write32(pvr_dev, ROGUE_CR_META_SP_MSLVCTRL0, in pvr_meta_cr_read32()
53 (void)pvr_cr_read32(pvr_dev, ROGUE_CR_META_SP_MSLVCTRL0); /* Fence write. */ in pvr_meta_cr_read32()
56 err = pvr_cr_poll_reg32(pvr_dev, ROGUE_CR_META_SP_MSLVCTRL1, in pvr_meta_cr_read32()
65 *reg_value_out = pvr_cr_read32(pvr_dev, ROGUE_CR_META_SP_MSLVDATAX); in pvr_meta_cr_read32()
71 pvr_meta_wrapper_init(struct pvr_device *pvr_dev) in pvr_meta_wrapper_init() argument
76 pvr_cr_write64(pvr_dev, ROGUE_CR_META_BOOT, ROGUE_CR_META_BOOT_MODE_EN); in pvr_meta_wrapper_init()
96 pvr_cr_write64(pvr_dev, ROGUE_CR_MTS_GARTEN_WRAPPER_CONFIG, garten_config); in pvr_meta_wrapper_init()
116 struct pvr_device *pvr_dev = to_pvr_device(drm_dev); in meta_ldr_cmd_loadmem() local
[all …]
H A Dpvr_stream.c14 stream_def_is_supported(struct pvr_device *pvr_dev, const struct pvr_stream_def *stream_def) in stream_def_is_supported() argument
20 pvr_device_has_feature(pvr_dev, stream_def->feature)) { in stream_def_is_supported()
25 !pvr_device_has_feature(pvr_dev, stream_def->feature & ~PVR_FEATURE_NOT)) { in stream_def_is_supported()
65 pvr_stream_process_1(struct pvr_device *pvr_dev, const struct pvr_stream_def *stream_def, in pvr_stream_process_1() argument
77 if (!stream_def_is_supported(pvr_dev, &stream_def[i])) in pvr_stream_process_1()
126 pvr_stream_process_ext_stream(struct pvr_device *pvr_dev, in pvr_stream_process_ext_stream() argument
135 memcpy(musthave_masks, pvr_dev->stream_musthave_quirks[cmd_defs->type], in pvr_stream_process_ext_stream()
166 if (!pvr_device_has_uapi_quirk(pvr_dev, ext_def->quirk)) in pvr_stream_process_ext_stream()
169 err = pvr_stream_process_1(pvr_dev, ext_def->stream, ext_def->stream_len, in pvr_stream_process_ext_stream()
206 pvr_stream_process(struct pvr_device *pvr_dev, const struct pvr_stream_cmd_defs *cmd_defs, in pvr_stream_process() argument
[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_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_vm_mips.c30 pvr_vm_mips_init(struct pvr_device *pvr_dev) in pvr_vm_mips_init() argument
32 u32 pt_size = 1 << ROGUE_MIPSFW_LOG2_PAGETABLE_SIZE_4K(pvr_dev); in pvr_vm_mips_init()
33 struct device *dev = from_pvr_device(pvr_dev)->dev; in pvr_vm_mips_init()
43 if (PVR_FEATURE_VALUE(pvr_dev, phys_bus_width, &phys_bus_width)) in pvr_vm_mips_init()
46 mips_data = drmm_kzalloc(from_pvr_device(pvr_dev), sizeof(*mips_data), GFP_KERNEL); in pvr_vm_mips_init()
79 pvr_dev->fw_dev.processor_data.mips_data = mips_data; 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()
106 dma_unmap_page(from_pvr_device(pvr_dev)->dev, in pvr_vm_mips_fini()
[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_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);
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_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);

12