Lines Matching defs:hl_asic_funcs

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