Lines Matching defs:hl_device
104 struct hl_device;
186 struct hl_device *hdev;
404 struct hl_device *hdev;
448 struct hl_device *hdev;
546 struct hl_device *hdev;
564 struct hl_device *hdev;
719 int (*early_init)(struct hl_device *hdev);
720 int (*early_fini)(struct hl_device *hdev);
721 int (*late_init)(struct hl_device *hdev);
722 void (*late_fini)(struct hl_device *hdev);
723 int (*sw_init)(struct hl_device *hdev);
724 int (*sw_fini)(struct hl_device *hdev);
725 int (*hw_init)(struct hl_device *hdev);
726 void (*hw_fini)(struct hl_device *hdev, bool hard_reset);
727 void (*halt_engines)(struct hl_device *hdev, bool hard_reset);
728 int (*suspend)(struct hl_device *hdev);
729 int (*resume)(struct hl_device *hdev);
730 int (*cb_mmap)(struct hl_device *hdev, struct vm_area_struct *vma,
732 void (*ring_doorbell)(struct hl_device *hdev, u32 hw_queue_id, u32 pi);
733 void (*pqe_write)(struct hl_device *hdev, __le64 *pqe,
735 void* (*asic_dma_alloc_coherent)(struct hl_device *hdev, size_t size,
737 void (*asic_dma_free_coherent)(struct hl_device *hdev, size_t size,
739 void* (*get_int_queue_base)(struct hl_device *hdev, u32 queue_id,
741 int (*test_queues)(struct hl_device *hdev);
742 void* (*asic_dma_pool_zalloc)(struct hl_device *hdev, size_t size,
744 void (*asic_dma_pool_free)(struct hl_device *hdev, void *vaddr,
746 void* (*cpu_accessible_dma_pool_alloc)(struct hl_device *hdev,
748 void (*cpu_accessible_dma_pool_free)(struct hl_device *hdev,
750 void (*hl_dma_unmap_sg)(struct hl_device *hdev,
753 int (*cs_parser)(struct hl_device *hdev, struct hl_cs_parser *parser);
754 int (*asic_dma_map_sg)(struct hl_device *hdev,
757 u32 (*get_dma_desc_list_size)(struct hl_device *hdev,
759 void (*add_end_of_cb_packets)(struct hl_device *hdev,
763 void (*update_eq_ci)(struct hl_device *hdev, u32 val);
764 int (*context_switch)(struct hl_device *hdev, u32 asid);
765 void (*restore_phase_topology)(struct hl_device *hdev);
766 int (*debugfs_read32)(struct hl_device *hdev, u64 addr, u32 *val);
767 int (*debugfs_write32)(struct hl_device *hdev, u64 addr, u32 val);
768 int (*debugfs_read64)(struct hl_device *hdev, u64 addr, u64 *val);
769 int (*debugfs_write64)(struct hl_device *hdev, u64 addr, u64 val);
770 void (*add_device_attr)(struct hl_device *hdev,
772 void (*handle_eqe)(struct hl_device *hdev,
774 void (*set_pll_profile)(struct hl_device *hdev,
776 void* (*get_events_stat)(struct hl_device *hdev, bool aggregate,
778 u64 (*read_pte)(struct hl_device *hdev, u64 addr);
779 void (*write_pte)(struct hl_device *hdev, u64 addr, u64 val);
780 int (*mmu_invalidate_cache)(struct hl_device *hdev, bool is_hard,
782 int (*mmu_invalidate_cache_range)(struct hl_device *hdev, bool is_hard,
784 int (*send_heartbeat)(struct hl_device *hdev);
785 void (*set_clock_gating)(struct hl_device *hdev);
786 void (*disable_clock_gating)(struct hl_device *hdev);
787 int (*debug_coresight)(struct hl_device *hdev, void *data);
788 bool (*is_device_idle)(struct hl_device *hdev, u64 *mask,
790 int (*soft_reset_late_init)(struct hl_device *hdev);
791 void (*hw_queues_lock)(struct hl_device *hdev);
792 void (*hw_queues_unlock)(struct hl_device *hdev);
793 u32 (*get_pci_id)(struct hl_device *hdev);
794 int (*get_eeprom_data)(struct hl_device *hdev, void *data,
796 int (*send_cpu_message)(struct hl_device *hdev, u32 *msg,
798 enum hl_device_hw_state (*get_hw_state)(struct hl_device *hdev);
799 int (*pci_bars_map)(struct hl_device *hdev);
800 int (*init_iatu)(struct hl_device *hdev);
801 u32 (*rreg)(struct hl_device *hdev, u32 reg);
802 void (*wreg)(struct hl_device *hdev, u32 reg, u32 val);
803 void (*halt_coresight)(struct hl_device *hdev);
805 int (*get_clk_rate)(struct hl_device *hdev, u32 *cur_clk, u32 *max_clk);
806 u32 (*get_queue_id_for_cq)(struct hl_device *hdev, u32 cq_idx);
807 void (*read_device_fw_version)(struct hl_device *hdev,
809 int (*load_firmware_to_device)(struct hl_device *hdev);
810 int (*load_boot_fit_to_device)(struct hl_device *hdev);
811 u32 (*get_signal_cb_size)(struct hl_device *hdev);
812 u32 (*get_wait_cb_size)(struct hl_device *hdev);
813 void (*gen_signal_cb)(struct hl_device *hdev, void *data, u16 sob_id);
814 void (*gen_wait_cb)(struct hl_device *hdev, void *data, u16 sob_id,
816 void (*reset_sob)(struct hl_device *hdev, void *data);
817 void (*set_dma_mask_from_fw)(struct hl_device *hdev);
818 u64 (*get_device_time)(struct hl_device *hdev);
883 struct hl_device *hdev;
1192 struct hl_device *hdev;
1261 struct hl_device *hdev;
1297 u32 hl_rreg(struct hl_device *hdev, u32 reg);
1298 void hl_wreg(struct hl_device *hdev, u32 reg, u32 val);
1436 struct hl_device *hdev;
1473 int (*init)(struct hl_device *hdev);
1474 void (*fini)(struct hl_device *hdev);
1488 * struct hl_device - habanalabs device structure.
1596 struct hl_device {
1796 bool hl_device_disabled_or_in_reset(struct hl_device *hdev);
1797 enum hl_device_status hl_device_status(struct hl_device *hdev);
1798 int hl_device_set_debug_mode(struct hl_device *hdev, bool enable);
1799 int create_hdev(struct hl_device **dev, struct pci_dev *pdev,
1801 void destroy_hdev(struct hl_device *hdev);
1802 int hl_hw_queues_create(struct hl_device *hdev);
1803 void hl_hw_queues_destroy(struct hl_device *hdev);
1804 int hl_hw_queue_send_cb_no_cmpl(struct hl_device *hdev, u32 hw_queue_id,
1808 void hl_hw_queue_inc_ci_kernel(struct hl_device *hdev, u32 hw_queue_id);
1810 void hl_hw_queue_reset(struct hl_device *hdev, bool hard_reset);
1815 int hl_cq_init(struct hl_device *hdev, struct hl_cq *q, u32 hw_queue_id);
1816 void hl_cq_fini(struct hl_device *hdev, struct hl_cq *q);
1817 int hl_eq_init(struct hl_device *hdev, struct hl_eq *q);
1818 void hl_eq_fini(struct hl_device *hdev, struct hl_eq *q);
1819 void hl_cq_reset(struct hl_device *hdev, struct hl_cq *q);
1820 void hl_eq_reset(struct hl_device *hdev, struct hl_eq *q);
1825 int hl_asid_init(struct hl_device *hdev);
1826 void hl_asid_fini(struct hl_device *hdev);
1827 unsigned long hl_asid_alloc(struct hl_device *hdev);
1828 void hl_asid_free(struct hl_device *hdev, unsigned long asid);
1830 int hl_ctx_create(struct hl_device *hdev, struct hl_fpriv *hpriv);
1831 void hl_ctx_free(struct hl_device *hdev, struct hl_ctx *ctx);
1832 int hl_ctx_init(struct hl_device *hdev, struct hl_ctx *ctx, bool is_kernel_ctx);
1834 void hl_ctx_get(struct hl_device *hdev, struct hl_ctx *ctx);
1838 void hl_ctx_mgr_fini(struct hl_device *hdev, struct hl_ctx_mgr *mgr);
1840 int hl_device_init(struct hl_device *hdev, struct class *hclass);
1841 void hl_device_fini(struct hl_device *hdev);
1842 int hl_device_suspend(struct hl_device *hdev);
1843 int hl_device_resume(struct hl_device *hdev);
1844 int hl_device_reset(struct hl_device *hdev, bool hard_reset,
1848 int hl_device_set_frequency(struct hl_device *hdev, enum hl_pll_frequency freq);
1849 uint32_t hl_device_utilization(struct hl_device *hdev, uint32_t period_ms);
1851 int hl_build_hwmon_channel_info(struct hl_device *hdev,
1854 int hl_sysfs_init(struct hl_device *hdev);
1855 void hl_sysfs_fini(struct hl_device *hdev);
1857 int hl_hwmon_init(struct hl_device *hdev);
1858 void hl_hwmon_fini(struct hl_device *hdev);
1860 int hl_cb_create(struct hl_device *hdev, struct hl_cb_mgr *mgr,
1863 int hl_cb_destroy(struct hl_device *hdev, struct hl_cb_mgr *mgr, u64 cb_handle);
1865 struct hl_cb *hl_cb_get(struct hl_device *hdev, struct hl_cb_mgr *mgr,
1869 void hl_cb_mgr_fini(struct hl_device *hdev, struct hl_cb_mgr *mgr);
1870 struct hl_cb *hl_cb_kernel_create(struct hl_device *hdev, u32 cb_size,
1872 int hl_cb_pool_init(struct hl_device *hdev);
1873 int hl_cb_pool_fini(struct hl_device *hdev);
1877 void hl_cs_rollback_all(struct hl_device *hdev);
1878 struct hl_cs_job *hl_cs_allocate_job(struct hl_device *hdev,
1884 void goya_set_asic_funcs(struct hl_device *hdev);
1885 void gaudi_set_asic_funcs(struct hl_device *hdev);
1890 int hl_vm_init(struct hl_device *hdev);
1891 void hl_vm_fini(struct hl_device *hdev);
1893 int hl_pin_host_memory(struct hl_device *hdev, u64 addr, u64 size,
1895 void hl_unpin_host_memory(struct hl_device *hdev, struct hl_userptr *userptr);
1896 void hl_userptr_delete_list(struct hl_device *hdev,
1898 bool hl_userptr_is_pinned(struct hl_device *hdev, u64 addr, u32 size,
1902 int hl_mmu_init(struct hl_device *hdev);
1903 void hl_mmu_fini(struct hl_device *hdev);
1912 int hl_mmu_if_set_funcs(struct hl_device *hdev);
1913 void hl_mmu_v1_set_funcs(struct hl_device *hdev);
1915 int hl_fw_load_fw_to_device(struct hl_device *hdev, const char *fw_name,
1917 int hl_fw_send_pci_access_msg(struct hl_device *hdev, u32 opcode);
1918 int hl_fw_send_cpu_message(struct hl_device *hdev, u32 hw_queue_id, u32 *msg,
1920 int hl_fw_unmask_irq(struct hl_device *hdev, u16 event_type);
1921 int hl_fw_unmask_irq_arr(struct hl_device *hdev, const u32 *irq_arr,
1923 int hl_fw_test_cpu_queue(struct hl_device *hdev);
1924 void *hl_fw_cpu_accessible_dma_pool_alloc(struct hl_device *hdev, size_t size,
1926 void hl_fw_cpu_accessible_dma_pool_free(struct hl_device *hdev, size_t size,
1928 int hl_fw_send_heartbeat(struct hl_device *hdev);
1929 int hl_fw_cpucp_info_get(struct hl_device *hdev);
1930 int hl_fw_get_eeprom_data(struct hl_device *hdev, void *data, size_t max_size);
1931 int hl_fw_cpucp_pci_counters_get(struct hl_device *hdev,
1933 int hl_fw_cpucp_total_energy_get(struct hl_device *hdev,
1935 int hl_fw_init_cpu(struct hl_device *hdev, u32 cpu_boot_status_reg,
1939 int hl_fw_read_preboot_ver(struct hl_device *hdev, u32 cpu_boot_status_reg,
1942 int hl_pci_bars_map(struct hl_device *hdev, const char * const name[3],
1944 int hl_pci_iatu_write(struct hl_device *hdev, u32 addr, u32 data);
1945 int hl_pci_set_inbound_region(struct hl_device *hdev, u8 region,
1947 int hl_pci_set_outbound_region(struct hl_device *hdev,
1949 int hl_pci_init(struct hl_device *hdev, u32 cpu_boot_status_reg,
1951 void hl_pci_fini(struct hl_device *hdev);
1953 long hl_get_frequency(struct hl_device *hdev, u32 pll_index, bool curr);
1954 void hl_set_frequency(struct hl_device *hdev, u32 pll_index, u64 freq);
1955 int hl_get_temperature(struct hl_device *hdev,
1957 int hl_set_temperature(struct hl_device *hdev,
1959 int hl_get_voltage(struct hl_device *hdev,
1961 int hl_get_current(struct hl_device *hdev,
1963 int hl_get_fan_speed(struct hl_device *hdev,
1965 int hl_get_pwm_info(struct hl_device *hdev,
1967 void hl_set_pwm_info(struct hl_device *hdev, int sensor_index, u32 attr,
1969 u64 hl_get_max_power(struct hl_device *hdev);
1970 void hl_set_max_power(struct hl_device *hdev);
1971 int hl_set_voltage(struct hl_device *hdev,
1973 int hl_set_current(struct hl_device *hdev,
1980 void hl_debugfs_add_device(struct hl_device *hdev);
1981 void hl_debugfs_remove_device(struct hl_device *hdev);
1988 void hl_debugfs_add_job(struct hl_device *hdev, struct hl_cs_job *job);
1989 void hl_debugfs_remove_job(struct hl_device *hdev, struct hl_cs_job *job);
1990 void hl_debugfs_add_userptr(struct hl_device *hdev, struct hl_userptr *userptr);
1991 void hl_debugfs_remove_userptr(struct hl_device *hdev,
1993 void hl_debugfs_add_ctx_mem_hash(struct hl_device *hdev, struct hl_ctx *ctx);
1994 void hl_debugfs_remove_ctx_mem_hash(struct hl_device *hdev, struct hl_ctx *ctx);
2006 static inline void hl_debugfs_add_device(struct hl_device *hdev)
2010 static inline void hl_debugfs_remove_device(struct hl_device *hdev)
2038 static inline void hl_debugfs_add_job(struct hl_device *hdev,
2043 static inline void hl_debugfs_remove_job(struct hl_device *hdev,
2048 static inline void hl_debugfs_add_userptr(struct hl_device *hdev,
2053 static inline void hl_debugfs_remove_userptr(struct hl_device *hdev,
2058 static inline void hl_debugfs_add_ctx_mem_hash(struct hl_device *hdev,
2063 static inline void hl_debugfs_remove_ctx_mem_hash(struct hl_device *hdev,