| /linux/drivers/accel/habanalabs/common/ |
| H A D | device.c | 51 static u64 hl_set_dram_bar(struct hl_device *hdev, u64 addr, struct pci_mem_region *region, in hl_set_dram_bar() argument 54 struct asic_fixed_properties *prop = &hdev->asic_prop; in hl_set_dram_bar() 64 old_base = hdev->asic_funcs->set_dram_bar_base(hdev, bar_base_addr); in hl_set_dram_bar() 73 int hl_access_sram_dram_region(struct hl_device *hdev, u64 addr, u64 *val, in hl_access_sram_dram_region() argument 76 struct pci_mem_region *region = &hdev->pci_mem_region[region_type]; in hl_access_sram_dram_region() 81 old_base = hl_set_dram_bar(hdev, addr, region, &bar_region_base); in hl_access_sram_dram_region() 86 acc_addr = hdev->pcie_bar[region->bar_id] + region->offset_in_bar + in hl_access_sram_dram_region() 111 rc = hl_set_dram_bar(hdev, old_base, region, NULL); in hl_access_sram_dram_region() 119 static void *hl_dma_alloc_common(struct hl_device *hdev, size_t size, dma_addr_t *dma_handle, in hl_dma_alloc_common() argument 127 ptr = hdev->asic_funcs->asic_dma_alloc_coherent(hdev, size, dma_handle, flag); in hl_dma_alloc_common() [all …]
|
| H A D | habanalabs_drv.c | 120 static enum hl_asic_type get_asic_type(struct hl_device *hdev) in get_asic_type() argument 122 struct pci_dev *pdev = hdev->pdev; in get_asic_type() 179 struct hl_device *hdev = to_hl_device(ddev); in hl_device_open() local 188 hpriv->hdev = hdev; in hl_device_open() 195 hl_mem_mgr_init(hpriv->hdev->dev, &hpriv->mem_mgr); in hl_device_open() 199 mutex_lock(&hdev->fpriv_list_lock); in hl_device_open() 201 if (!hl_device_operational(hdev, &status)) { in hl_device_open() 202 dev_dbg_ratelimited(hdev->dev, in hl_device_open() 204 dev_name(hdev->dev), hdev->status[status]); in hl_device_open() 215 if (hdev->is_in_dram_scrub) { in hl_device_open() [all …]
|
| H A D | firmware_if.c | 55 int hl_fw_version_cmp(struct hl_device *hdev, u32 major, u32 minor, u32 subminor) in hl_fw_version_cmp() argument 57 if (hdev->fw_sw_major_ver != major) in hl_fw_version_cmp() 58 return (hdev->fw_sw_major_ver > major) ? 1 : -1; in hl_fw_version_cmp() 60 if (hdev->fw_sw_minor_ver != minor) in hl_fw_version_cmp() 61 return (hdev->fw_sw_minor_ver > minor) ? 1 : -1; in hl_fw_version_cmp() 63 if (hdev->fw_sw_sub_minor_ver != subminor) in hl_fw_version_cmp() 64 return (hdev->fw_sw_sub_minor_ver > subminor) ? 1 : -1; in hl_fw_version_cmp() 137 static int hl_get_sw_major_minor_subminor(struct hl_device *hdev, const char *fw_str) in hl_get_sw_major_minor_subminor() argument 164 start = extract_u32_until_given_char(start, &hdev->fw_sw_major_ver, '.'); in hl_get_sw_major_minor_subminor() 169 start = extract_u32_until_given_char(start, &hdev->fw_sw_minor_ver, '.'); in hl_get_sw_major_minor_subminor() [all …]
|
| H A D | hw_queue.c | 43 struct hl_device *hdev = cs->ctx->hdev; in hl_hw_queue_update_ci() local 47 if (hdev->disabled) in hl_hw_queue_update_ci() 50 q = &hdev->kernel_queues[0]; in hl_hw_queue_update_ci() 53 if (!hdev->asic_prop.max_queues || q->queue_type == QUEUE_TYPE_HW) in hl_hw_queue_update_ci() 61 for (i = 0 ; i < hdev->asic_prop.max_queues ; i++, q++) { in hl_hw_queue_update_ci() 83 void hl_hw_queue_submit_bd(struct hl_device *hdev, struct hl_hw_queue *q, in hl_hw_queue_submit_bd() argument 100 hdev->asic_funcs->access_dev_mem(hdev, PCI_REGION_DRAM, addr, in hl_hw_queue_submit_bd() 106 hdev->asic_funcs->ring_doorbell(hdev, q->hw_queue_id, q->pi); in hl_hw_queue_submit_bd() 127 static int ext_queue_sanity_checks(struct hl_device *hdev, in ext_queue_sanity_checks() argument 132 &hdev->completion_queue[q->cq_id].free_slots_cnt; in ext_queue_sanity_checks() [all …]
|
| H A D | command_buffer.c | 19 struct hl_device *hdev = ctx->hdev; in cb_map_mem() local 20 struct asic_fixed_properties *prop = &hdev->asic_prop; in cb_map_mem() 24 if (!hdev->supports_cb_mapping) { in cb_map_mem() 25 dev_err_ratelimited(hdev->dev, in cb_map_mem() 37 dev_err(hdev->dev, "Failed to allocate device virtual address for CB\n"); in cb_map_mem() 41 mutex_lock(&hdev->mmu_lock); in cb_map_mem() 45 dev_err(hdev->dev, "Failed to map VA %#llx to CB\n", cb->virtual_addr); in cb_map_mem() 49 rc = hl_mmu_invalidate_cache(hdev, false, MMU_OP_USERPTR | MMU_OP_SKIP_LOW_CACHE_INV); in cb_map_mem() 53 mutex_unlock(&hdev->mmu_lock); in cb_map_mem() 62 mutex_unlock(&hdev->mmu_lock); in cb_map_mem() [all …]
|
| H A D | hldio.c | 62 bool hl_device_supports_nvme(struct hl_device *hdev) in hl_device_supports_nvme() argument 64 return hdev->asic_prop.supports_nvme; in hl_device_supports_nvme() 69 struct hl_device *hdev = ctx->hdev; in hl_dio_fd_register() local 84 dev_err(hdev->dev, "file is not in the direct mode\n"); in hl_dio_fd_register() 90 dev_err(hdev->dev, "read iter is not supported, need to fall back to legacy\n"); in hl_dio_fd_register() 101 dev_err(hdev->dev, "sparse files are not currently supported\n"); in hl_dio_fd_register() 107 dev_err(hdev->dev, "invalid block device\n"); in hl_dio_fd_register() 114 dev_err(hdev->dev, "device does not support PCI P2P DMA\n"); in hl_dio_fd_register() 138 static long hl_dio_count_io(struct hl_device *hdev) in hl_dio_count_io() argument 144 sum += per_cpu(*hdev->hldio.inflight_ios, i); in hl_dio_count_io() [all …]
|
| H A D | irq.c | 22 struct hl_device *hdev; member 62 struct hl_device *hdev = eqe_work->hdev; in irq_handle_eqe() local 64 hdev->asic_funcs->handle_eqe(hdev, &eqe_work->eq_entry); in irq_handle_eqe() 78 static void job_finish(struct hl_device *hdev, u32 cs_seq, struct hl_cq *cq, ktime_t timestamp) in job_finish() argument 83 queue = &hdev->kernel_queues[cq->hw_queue_id]; in job_finish() 86 queue_work(hdev->cq_wq[cq->cq_idx], &job->finish_work); in job_finish() 99 static void cs_finish(struct hl_device *hdev, u16 cs_seq, ktime_t timestamp) in cs_finish() argument 101 struct asic_fixed_properties *prop = &hdev->asic_prop; in cs_finish() 106 cs = hdev->shadow_cs_queue[cs_seq & (prop->max_pending_cs - 1)]; in cs_finish() 108 dev_warn(hdev->dev, in cs_finish() [all …]
|
| /linux/net/bluetooth/ |
| H A D | coredump.c | 32 bt_dev_dbg(hdev, \ 34 hci_dmp_cb(skb)->pkt_type, hdev->dump.state) 51 static int hci_devcd_update_state(struct hci_dev *hdev, int state) in hci_devcd_update_state() argument 53 bt_dev_dbg(hdev, "Updating devcoredump state from %d to %d.", in hci_devcd_update_state() 54 hdev->dump.state, state); in hci_devcd_update_state() 56 hdev->dump.state = state; in hci_devcd_update_state() 58 return hci_devcd_update_hdr_state(hdev->dump.head, in hci_devcd_update_state() 59 hdev->dump.alloc_size, state); in hci_devcd_update_state() 62 static int hci_devcd_mkheader(struct hci_dev *hdev, struct sk_buff *skb) in hci_devcd_mkheader() argument 72 if (hdev->dump.dmp_hdr) in hci_devcd_mkheader() [all …]
|
| H A D | msft.h | 15 bool msft_monitor_supported(struct hci_dev *hdev); 16 void msft_register(struct hci_dev *hdev); 17 void msft_release(struct hci_dev *hdev); 18 void msft_do_open(struct hci_dev *hdev); 19 void msft_do_close(struct hci_dev *hdev); 20 void msft_vendor_evt(struct hci_dev *hdev, void *data, struct sk_buff *skb); 21 __u64 msft_get_features(struct hci_dev *hdev); 22 int msft_add_monitor_pattern(struct hci_dev *hdev, struct adv_monitor *monitor); 23 int msft_remove_monitor(struct hci_dev *hdev, struct adv_monitor *monitor); 25 int msft_set_filter_enable(struct hci_dev *hdev, bool enable); [all …]
|
| H A D | msft.c | 136 bool msft_monitor_supported(struct hci_dev *hdev) in msft_monitor_supported() argument 138 return !!(msft_get_features(hdev) & MSFT_FEATURE_MASK_LE_ADV_MONITOR); in msft_monitor_supported() 141 static bool read_supported_features(struct hci_dev *hdev, in read_supported_features() argument 150 skb = __hci_cmd_sync(hdev, hdev->msft_opcode, sizeof(cp), &cp, in read_supported_features() 153 bt_dev_err(hdev, "Failed to read MSFT supported features (%ld)", in read_supported_features() 159 bt_dev_err(hdev, "MSFT supported features length mismatch"); in read_supported_features() 179 hdev->msft_curve_validity = true; in read_supported_features() 194 (struct hci_dev *hdev, u16 handle, bool is_mgmt) in msft_find_handle_data() argument 197 struct msft_data *msft = hdev->msft_data; in msft_find_handle_data() 211 (struct hci_dev *hdev, u8 addr_type, bdaddr_t *addr, in msft_find_address_data() argument [all …]
|
| /linux/net/nfc/hci/ |
| H A D | core.c | 37 void nfc_hci_reset_pipes(struct nfc_hci_dev *hdev) in nfc_hci_reset_pipes() argument 42 hdev->pipes[i].gate = NFC_HCI_INVALID_GATE; in nfc_hci_reset_pipes() 43 hdev->pipes[i].dest_host = NFC_HCI_INVALID_HOST; in nfc_hci_reset_pipes() 45 memset(hdev->gate2pipe, NFC_HCI_INVALID_PIPE, sizeof(hdev->gate2pipe)); in nfc_hci_reset_pipes() 49 void nfc_hci_reset_pipes_per_host(struct nfc_hci_dev *hdev, u8 host) in nfc_hci_reset_pipes_per_host() argument 54 if (hdev->pipes[i].dest_host != host) in nfc_hci_reset_pipes_per_host() 57 hdev->pipes[i].gate = NFC_HCI_INVALID_GATE; in nfc_hci_reset_pipes_per_host() 58 hdev->pipes[i].dest_host = NFC_HCI_INVALID_HOST; in nfc_hci_reset_pipes_per_host() 65 struct nfc_hci_dev *hdev = container_of(work, struct nfc_hci_dev, in nfc_hci_msg_tx_work() local 71 mutex_lock(&hdev->msg_tx_mutex); in nfc_hci_msg_tx_work() [all …]
|
| /linux/drivers/media/platform/qcom/venus/ |
| H A D | hfi_venus.c | 138 static void venus_set_state(struct venus_hfi_device *hdev, in venus_set_state() argument 141 mutex_lock(&hdev->lock); in venus_set_state() 142 hdev->state = state; in venus_set_state() 143 mutex_unlock(&hdev->lock); in venus_set_state() 146 static bool venus_is_valid_state(struct venus_hfi_device *hdev) in venus_is_valid_state() argument 148 return hdev->state != VENUS_STATE_DEINIT; in venus_is_valid_state() 151 static void venus_dump_packet(struct venus_hfi_device *hdev, const void *packet) in venus_dump_packet() argument 162 static int venus_write_queue(struct venus_hfi_device *hdev, in venus_write_queue() argument 178 venus_dump_packet(hdev, packet); in venus_write_queue() 239 static int venus_read_queue(struct venus_hfi_device *hdev, in venus_read_queue() argument [all …]
|
| /linux/drivers/net/ethernet/hisilicon/hns3/hns3pf/ |
| H A D | hclge_dcb.c | 11 static int hclge_ieee_ets_to_tm_info(struct hclge_dev *hdev, in hclge_ieee_ets_to_tm_info() argument 19 hdev->tm_info.tc_info[i].tc_sch_mode = in hclge_ieee_ets_to_tm_info() 21 hdev->tm_info.pg_info[0].tc_dwrr[i] = 0; in hclge_ieee_ets_to_tm_info() 24 hdev->tm_info.tc_info[i].tc_sch_mode = in hclge_ieee_ets_to_tm_info() 26 hdev->tm_info.pg_info[0].tc_dwrr[i] = in hclge_ieee_ets_to_tm_info() 39 hclge_tm_prio_tc_info_update(hdev, ets->prio_tc); in hclge_ieee_ets_to_tm_info() 44 static void hclge_tm_info_to_ieee_ets(struct hclge_dev *hdev, in hclge_tm_info_to_ieee_ets() argument 51 ets->ets_cap = hdev->tc_max; in hclge_tm_info_to_ieee_ets() 54 ets->prio_tc[i] = hdev->tm_info.prio_tc[i]; in hclge_tm_info_to_ieee_ets() 55 if (i < hdev->tm_info.num_tc) in hclge_tm_info_to_ieee_ets() [all …]
|
| H A D | hclge_tm.c | 138 static void hclge_pfc_stats_get(struct hclge_dev *hdev, bool tx, u64 *stats) in hclge_pfc_stats_get() argument 149 stats[i] = HCLGE_STATS_READ(&hdev->mac_stats, offset[i]); in hclge_pfc_stats_get() 152 void hclge_pfc_rx_stats_get(struct hclge_dev *hdev, u64 *stats) in hclge_pfc_rx_stats_get() argument 154 hclge_pfc_stats_get(hdev, false, stats); in hclge_pfc_rx_stats_get() 157 void hclge_pfc_tx_stats_get(struct hclge_dev *hdev, u64 *stats) in hclge_pfc_tx_stats_get() argument 159 hclge_pfc_stats_get(hdev, true, stats); in hclge_pfc_tx_stats_get() 162 int hclge_mac_pause_en_cfg(struct hclge_dev *hdev, bool tx, bool rx) in hclge_mac_pause_en_cfg() argument 171 return hclge_cmd_send(&hdev->hw, &desc, 1); in hclge_mac_pause_en_cfg() 174 int hclge_pfc_pause_en_cfg(struct hclge_dev *hdev, u8 tx_rx_bitmap, in hclge_pfc_pause_en_cfg() argument 185 return hclge_cmd_send(&hdev->hw, &desc, 1); in hclge_pfc_pause_en_cfg() [all …]
|
| /linux/drivers/net/ethernet/hisilicon/hns3/hns3vf/ |
| H A D | hclgevf_mbx.c | 17 static void hclgevf_reset_mbx_resp_status(struct hclgevf_dev *hdev) in hclgevf_reset_mbx_resp_status() argument 22 hdev->mbx_resp.received_resp = false; in hclgevf_reset_mbx_resp_status() 23 hdev->mbx_resp.origin_mbx_msg = 0; in hclgevf_reset_mbx_resp_status() 24 hdev->mbx_resp.resp_status = 0; in hclgevf_reset_mbx_resp_status() 25 hdev->mbx_resp.match_id++; in hclgevf_reset_mbx_resp_status() 27 if (hdev->mbx_resp.match_id == 0) in hclgevf_reset_mbx_resp_status() 28 hdev->mbx_resp.match_id = HCLGEVF_MBX_MATCH_ID_START; in hclgevf_reset_mbx_resp_status() 29 memset(hdev->mbx_resp.additional_info, 0, HCLGE_MBX_MAX_RESP_DATA_SIZE); in hclgevf_reset_mbx_resp_status() 40 static int hclgevf_get_mbx_resp(struct hclgevf_dev *hdev, u16 code0, u16 code1, in hclgevf_get_mbx_resp() argument 50 dev_err(&hdev->pdev->dev, in hclgevf_get_mbx_resp() [all …]
|
| /linux/drivers/accel/habanalabs/common/pci/ |
| H A D | pci.c | 32 int hl_pci_bars_map(struct hl_device *hdev, const char * const name[3], in hl_pci_bars_map() argument 35 struct pci_dev *pdev = hdev->pdev; in hl_pci_bars_map() 40 dev_err(hdev->dev, "Cannot obtain PCI resources\n"); in hl_pci_bars_map() 46 hdev->pcie_bar[bar] = is_wc[i] ? in hl_pci_bars_map() 49 if (!hdev->pcie_bar[bar]) { in hl_pci_bars_map() 50 dev_err(hdev->dev, "pci_ioremap%s_bar failed for %s\n", in hl_pci_bars_map() 62 if (hdev->pcie_bar[bar]) in hl_pci_bars_map() 63 iounmap(hdev->pcie_bar[bar]); in hl_pci_bars_map() 77 static void hl_pci_bars_unmap(struct hl_device *hdev) in hl_pci_bars_unmap() argument 79 struct pci_dev *pdev = hdev->pdev; in hl_pci_bars_unmap() [all …]
|
| /linux/drivers/accel/habanalabs/goya/ |
| H A D | goya_hwmgr.c | 10 void goya_set_pll_profile(struct hl_device *hdev, enum hl_pll_frequency freq) in goya_set_pll_profile() argument 12 struct goya_device *goya = hdev->asic_specific; in goya_set_pll_profile() 14 if (!hdev->pdev) in goya_set_pll_profile() 19 hl_fw_set_frequency(hdev, HL_GOYA_MME_PLL, hdev->high_pll); in goya_set_pll_profile() 20 hl_fw_set_frequency(hdev, HL_GOYA_TPC_PLL, hdev->high_pll); in goya_set_pll_profile() 21 hl_fw_set_frequency(hdev, HL_GOYA_IC_PLL, hdev->high_pll); in goya_set_pll_profile() 24 hl_fw_set_frequency(hdev, HL_GOYA_MME_PLL, GOYA_PLL_FREQ_LOW); in goya_set_pll_profile() 25 hl_fw_set_frequency(hdev, HL_GOYA_TPC_PLL, GOYA_PLL_FREQ_LOW); in goya_set_pll_profile() 26 hl_fw_set_frequency(hdev, HL_GOYA_IC_PLL, GOYA_PLL_FREQ_LOW); in goya_set_pll_profile() 29 hl_fw_set_frequency(hdev, HL_GOYA_MME_PLL, goya->mme_clk); in goya_set_pll_profile() [all …]
|
| H A D | goyaP.h | 157 struct hl_device *hdev; member 180 int goya_set_fixed_properties(struct hl_device *hdev); 181 int goya_mmu_init(struct hl_device *hdev); 182 void goya_init_dma_qmans(struct hl_device *hdev); 183 void goya_init_mme_qmans(struct hl_device *hdev); 184 void goya_init_tpc_qmans(struct hl_device *hdev); 185 int goya_init_cpu_queues(struct hl_device *hdev); 186 void goya_init_security(struct hl_device *hdev); 187 void goya_ack_protection_bits_errors(struct hl_device *hdev); 188 int goya_late_init(struct hl_device *hdev); [all …]
|
| H A D | goya.c | 355 static int goya_mmu_clear_pgt_range(struct hl_device *hdev); 356 static int goya_mmu_set_dram_default_page(struct hl_device *hdev); 357 static int goya_mmu_add_mappings_for_device_cpu(struct hl_device *hdev); 358 static void goya_mmu_prepare(struct hl_device *hdev, u32 asid); 360 int goya_set_fixed_properties(struct hl_device *hdev) in goya_set_fixed_properties() argument 362 struct asic_fixed_properties *prop = &hdev->asic_prop; in goya_set_fixed_properties() 410 if (hdev->pldm) in goya_set_fixed_properties() 507 static int goya_pci_bars_map(struct hl_device *hdev) in goya_pci_bars_map() argument 513 rc = hl_pci_bars_map(hdev, name, is_wc); in goya_pci_bars_map() 517 hdev->rmmio = hdev->pcie_bar[SRAM_CFG_BAR_ID] + in goya_pci_bars_map() [all …]
|
| /linux/drivers/bluetooth/ |
| H A D | bpa10x.c | 37 struct hci_dev *hdev; member 50 struct hci_dev *hdev = (struct hci_dev *) skb->dev; in bpa10x_tx_complete() local 52 BT_DBG("%s urb %p status %d count %d", hdev->name, in bpa10x_tx_complete() 55 if (!test_bit(HCI_RUNNING, &hdev->flags)) in bpa10x_tx_complete() 59 hdev->stat.byte_tx += urb->transfer_buffer_length; in bpa10x_tx_complete() 61 hdev->stat.err_tx++; in bpa10x_tx_complete() 87 struct hci_dev *hdev = urb->context; in bpa10x_rx_complete() local 88 struct bpa10x_data *data = hci_get_drvdata(hdev); in bpa10x_rx_complete() 91 BT_DBG("%s urb %p status %d count %d", hdev->name, in bpa10x_rx_complete() 94 if (!test_bit(HCI_RUNNING, &hdev->flags)) in bpa10x_rx_complete() [all …]
|
| H A D | hci_serdev.c | 26 struct hci_dev *hdev = hu->hdev; in hci_uart_tx_complete() local 31 hdev->stat.cmd_tx++; in hci_uart_tx_complete() 35 hdev->stat.acl_tx++; in hci_uart_tx_complete() 39 hdev->stat.sco_tx++; in hci_uart_tx_complete() 61 struct hci_dev *hdev = hu->hdev; in hci_uart_write_work() local 75 hdev->stat.byte_tx += len; in hci_uart_write_work() 94 static int hci_uart_flush(struct hci_dev *hdev) in hci_uart_flush() argument 96 struct hci_uart *hu = hci_get_drvdata(hdev); in hci_uart_flush() 98 BT_DBG("hdev %p serdev %p", hdev, hu->serdev); in hci_uart_flush() 114 static int hci_uart_open(struct hci_dev *hdev) in hci_uart_open() argument [all …]
|
| H A D | btqcomsmd.c | 21 struct hci_dev *hdev; member 27 static int btqcomsmd_recv(struct hci_dev *hdev, unsigned int type, in btqcomsmd_recv() argument 35 hdev->stat.err_rx++; in btqcomsmd_recv() 42 return hci_recv_frame(hdev, skb); in btqcomsmd_recv() 50 btq->hdev->stat.byte_rx += count; in btqcomsmd_acl_callback() 51 return btqcomsmd_recv(btq->hdev, HCI_ACLDATA_PKT, data, count); in btqcomsmd_acl_callback() 59 btq->hdev->stat.byte_rx += count; in btqcomsmd_cmd_callback() 60 return btqcomsmd_recv(btq->hdev, HCI_EVENT_PKT, data, count); in btqcomsmd_cmd_callback() 63 static int btqcomsmd_send(struct hci_dev *hdev, struct sk_buff *skb) in btqcomsmd_send() argument 65 struct btqcomsmd *btq = hci_get_drvdata(hdev); in btqcomsmd_send() [all …]
|
| /linux/drivers/hid/ |
| H A D | hid-rmi.c | 95 struct hid_device *hdev; member 105 static int rmi_write_report(struct hid_device *hdev, u8 *report, int len); 121 static int rmi_set_page(struct hid_device *hdev, u8 page) in rmi_set_page() argument 123 struct rmi_data *data = hid_get_drvdata(hdev); in rmi_set_page() 131 retval = rmi_write_report(hdev, data->writeReport, in rmi_set_page() 134 dev_err(&hdev->dev, in rmi_set_page() 143 static int rmi_set_mode(struct hid_device *hdev, u8 mode) in rmi_set_mode() argument 153 ret = hid_hw_raw_request(hdev, RMI_SET_RMI_MODE_REPORT_ID, buf, in rmi_set_mode() 157 dev_err(&hdev->dev, "unable to set rmi mode to %d (%d)\n", mode, in rmi_set_mode() 165 static int rmi_write_report(struct hid_device *hdev, u8 *report, int len) in rmi_write_report() argument [all …]
|
| /linux/drivers/accel/habanalabs/common/mmu/ |
| H A D | mmu.c | 23 static struct hl_mmu_funcs *hl_mmu_get_funcs(struct hl_device *hdev, int pgt_residency, in hl_mmu_get_funcs() argument 26 return &hdev->mmu_func[pgt_residency]; in hl_mmu_get_funcs() 29 bool hl_is_dram_va(struct hl_device *hdev, u64 virt_addr) in hl_is_dram_va() argument 31 struct asic_fixed_properties *prop = &hdev->asic_prop; in hl_is_dram_va() 44 int hl_mmu_init(struct hl_device *hdev) in hl_mmu_init() argument 48 if (hdev->mmu_disable) in hl_mmu_init() 51 mutex_init(&hdev->mmu_lock); in hl_mmu_init() 53 if (hdev->mmu_func[MMU_DR_PGT].init != NULL) { in hl_mmu_init() 54 rc = hdev->mmu_func[MMU_DR_PGT].init(hdev); in hl_mmu_init() 59 if (hdev->mmu_func[MMU_HR_PGT].init != NULL) { in hl_mmu_init() [all …]
|
| /linux/drivers/accel/habanalabs/gaudi/ |
| H A D | gaudi.c | 479 static int gaudi_mmu_update_asid_hop0_addr(struct hl_device *hdev, u32 asid, 481 static int gaudi_send_job_on_qman0(struct hl_device *hdev, 483 static int gaudi_memset_device_memory(struct hl_device *hdev, u64 addr, 485 static int gaudi_memset_registers(struct hl_device *hdev, u64 reg_base, 487 static int gaudi_run_tpc_kernel(struct hl_device *hdev, u64 tpc_kernel, 489 static int gaudi_mmu_clear_pgt_range(struct hl_device *hdev); 490 static int gaudi_cpucp_info_get(struct hl_device *hdev); 491 static void gaudi_disable_clock_gating(struct hl_device *hdev); 492 static void gaudi_mmu_prepare(struct hl_device *hdev, u32 asid); 493 static u32 gaudi_gen_signal_cb(struct hl_device *hdev, void *data, u16 sob_id, [all …]
|