Lines Matching defs:hl_asic_funcs
1172 struct hl_asic_funcs { struct
1173 int (*early_init)(struct hl_device *hdev);
1174 int (*early_fini)(struct hl_device *hdev);
1175 int (*late_init)(struct hl_device *hdev);
1176 void (*late_fini)(struct hl_device *hdev);
1177 int (*sw_init)(struct hl_device *hdev);
1178 int (*sw_fini)(struct hl_device *hdev);
1179 int (*hw_init)(struct hl_device *hdev);
1180 void (*hw_fini)(struct hl_device *hdev, bool hard_reset, bool fw_reset);
1181 void (*halt_engines)(struct hl_device *hdev, bool hard_reset, bool fw_reset);
1182 int (*suspend)(struct hl_device *hdev);
1183 int (*resume)(struct hl_device *hdev);
1184 int (*mmap)(struct hl_device *hdev, struct vm_area_struct *vma,
1186 void (*ring_doorbell)(struct hl_device *hdev, u32 hw_queue_id, u32 pi);
1187 void (*pqe_write)(struct hl_device *hdev, __le64 *pqe,
1189 void* (*asic_dma_alloc_coherent)(struct hl_device *hdev, size_t size,
1191 void (*asic_dma_free_coherent)(struct hl_device *hdev, size_t size,
1193 int (*scrub_device_mem)(struct hl_device *hdev, u64 addr, u64 size);
1194 void* (*get_int_queue_base)(struct hl_device *hdev, u32 queue_id,
1196 int (*test_queues)(struct hl_device *hdev);
1197 void* (*asic_dma_pool_zalloc)(struct hl_device *hdev, size_t size,
1199 void (*asic_dma_pool_free)(struct hl_device *hdev, void *vaddr,
1201 void* (*cpu_accessible_dma_pool_alloc)(struct hl_device *hdev,
1203 void (*cpu_accessible_dma_pool_free)(struct hl_device *hdev,
1205 void (*hl_dma_unmap_sg)(struct hl_device *hdev,
1208 int (*cs_parser)(struct hl_device *hdev, struct hl_cs_parser *parser);
1209 int (*asic_dma_map_sg)(struct hl_device *hdev,
1212 u32 (*get_dma_desc_list_size)(struct hl_device *hdev,
1214 void (*add_end_of_cb_packets)(struct hl_device *hdev,
1218 void (*update_eq_ci)(struct hl_device *hdev, u32 val);
1219 int (*context_switch)(struct hl_device *hdev, u32 asid);
1220 void (*restore_phase_topology)(struct hl_device *hdev);
1221 int (*debugfs_read32)(struct hl_device *hdev, u64 addr,
1223 int (*debugfs_write32)(struct hl_device *hdev, u64 addr,
1225 int (*debugfs_read64)(struct hl_device *hdev, u64 addr,
1227 int (*debugfs_write64)(struct hl_device *hdev, u64 addr,
1229 int (*debugfs_read_dma)(struct hl_device *hdev, u64 addr, u32 size,
1231 void (*add_device_attr)(struct hl_device *hdev,
1233 void (*handle_eqe)(struct hl_device *hdev,
1235 void (*set_pll_profile)(struct hl_device *hdev,
1237 void* (*get_events_stat)(struct hl_device *hdev, bool aggregate,
1239 u64 (*read_pte)(struct hl_device *hdev, u64 addr);
1240 void (*write_pte)(struct hl_device *hdev, u64 addr, u64 val);
1241 int (*mmu_invalidate_cache)(struct hl_device *hdev, bool is_hard,
1243 int (*mmu_invalidate_cache_range)(struct hl_device *hdev, bool is_hard,
1245 int (*send_heartbeat)(struct hl_device *hdev);
1246 void (*set_clock_gating)(struct hl_device *hdev);
1247 void (*disable_clock_gating)(struct hl_device *hdev);
1248 int (*debug_coresight)(struct hl_device *hdev, void *data);
1249 bool (*is_device_idle)(struct hl_device *hdev, u64 *mask_arr,
1251 int (*soft_reset_late_init)(struct hl_device *hdev);
1252 void (*hw_queues_lock)(struct hl_device *hdev);
1253 void (*hw_queues_unlock)(struct hl_device *hdev);
1254 u32 (*get_pci_id)(struct hl_device *hdev);
1255 int (*get_eeprom_data)(struct hl_device *hdev, void *data,
1257 int (*send_cpu_message)(struct hl_device *hdev, u32 *msg,
1259 int (*pci_bars_map)(struct hl_device *hdev);
1260 int (*init_iatu)(struct hl_device *hdev);
1261 u32 (*rreg)(struct hl_device *hdev, u32 reg);
1262 void (*wreg)(struct hl_device *hdev, u32 reg, u32 val);
1263 void (*halt_coresight)(struct hl_device *hdev);
1264 int (*ctx_init)(struct hl_ctx *ctx);
1265 void (*ctx_fini)(struct hl_ctx *ctx);
1266 int (*get_clk_rate)(struct hl_device *hdev, u32 *cur_clk, u32 *max_clk);
1267 u32 (*get_queue_id_for_cq)(struct hl_device *hdev, u32 cq_idx);
1268 int (*load_firmware_to_device)(struct hl_device *hdev);
1269 int (*load_boot_fit_to_device)(struct hl_device *hdev);
1270 u32 (*get_signal_cb_size)(struct hl_device *hdev);
1271 u32 (*get_wait_cb_size)(struct hl_device *hdev);
1272 u32 (*gen_signal_cb)(struct hl_device *hdev, void *data, u16 sob_id,
1274 u32 (*gen_wait_cb)(struct hl_device *hdev,
1276 void (*reset_sob)(struct hl_device *hdev, void *data);
1277 void (*reset_sob_group)(struct hl_device *hdev, u16 sob_group);
1278 void (*set_dma_mask_from_fw)(struct hl_device *hdev);
1279 u64 (*get_device_time)(struct hl_device *hdev);
1280 int (*collective_wait_init_cs)(struct hl_cs *cs);
1281 int (*collective_wait_create_jobs)(struct hl_device *hdev,
1285 u64 (*scramble_addr)(struct hl_device *hdev, u64 addr);
1286 u64 (*descramble_addr)(struct hl_device *hdev, u64 addr);
1287 void (*ack_protection_bits_errors)(struct hl_device *hdev);
1288 int (*get_hw_block_id)(struct hl_device *hdev, u64 block_addr,
1290 int (*hw_block_mmap)(struct hl_device *hdev, struct vm_area_struct *vma,
1292 void (*enable_events_from_fw)(struct hl_device *hdev);
1293 void (*get_msi_info)(__le32 *table);
1294 int (*map_pll_idx_to_fw_idx)(u32 pll_idx);
1295 void (*init_firmware_loader)(struct hl_device *hdev);
1296 void (*init_cpu_scrambler_dram)(struct hl_device *hdev);
1297 void (*state_dump_init)(struct hl_device *hdev);
1298 u32 (*get_sob_addr)(struct hl_device *hdev, u32 sob_id);
1299 void (*set_pci_memory_regions)(struct hl_device *hdev);
1300 u32* (*get_stream_master_qid_arr)(void);