Lines Matching +full:sr +full:- +full:iov
1 /* SPDX-License-Identifier: BSD-3-Clause */
2 /* Copyright(c) 2007-2022 Intel Corporation */
32 struct adf_accel_pci *info_pci_dev = &accel_dev->accel_pci_dev; in adf_enable_msix()
33 struct adf_hw_device_data *hw_data = accel_dev->hw_device; in adf_enable_msix()
40 if (hw_data->set_msix_rttable) in adf_enable_msix()
41 hw_data->set_msix_rttable(accel_dev); in adf_enable_msix()
43 /* If SR-IOV is disabled, add entries for each bank */ in adf_enable_msix()
44 if (!accel_dev->u1.pf.vf_info) { in adf_enable_msix()
45 msix_num_entries += hw_data->num_banks; in adf_enable_msix()
49 num_vectors = hw_data->num_banks + 1; in adf_enable_msix()
53 vectors[hw_data->num_banks] = 1; in adf_enable_msix()
57 error = pci_alloc_msix(info_pci_dev->pci_dev, &count); in adf_enable_msix()
59 pci_release_msi(info_pci_dev->pci_dev); in adf_enable_msix()
64 "Failed to enable MSI-X IRQ(s)\n"); in adf_enable_msix()
71 pci_remap_msix(info_pci_dev->pci_dev, num_vectors, vectors); in adf_enable_msix()
75 "Failed to remap MSI-X IRQ(s)\n"); in adf_enable_msix()
76 pci_release_msi(info_pci_dev->pci_dev); in adf_enable_msix()
87 pci_release_msi(info_pci_dev->pci_dev); in adf_disable_msix()
94 struct adf_etr_data *priv_data = bank->accel_dev->transport; in adf_msix_isr_bundle()
95 struct adf_hw_csr_ops *csr_ops = GET_CSR_OPS(bank->accel_dev); in adf_msix_isr_bundle()
97 csr_ops->write_csr_int_flag_and_col(bank->csr_addr, in adf_msix_isr_bundle()
98 bank->bank_number, in adf_msix_isr_bundle()
100 adf_response_handler((uintptr_t)&priv_data->banks[bank->bank_number]); in adf_msix_isr_bundle()
108 struct adf_hw_device_data *hw_data = accel_dev->hw_device; in adf_msix_isr_ae()
110 &GET_BARS(accel_dev)[hw_data->get_misc_bar_id(hw_data)]; in adf_msix_isr_ae()
111 struct resource *pmisc_bar_addr = pmisc->virt_addr; in adf_msix_isr_ae()
116 if (hw_data->ras_interrupts && in adf_msix_isr_ae()
117 hw_data->ras_interrupts(accel_dev, &reset_required)) in adf_msix_isr_ae()
123 if (hw_data->check_slice_hang && hw_data->check_slice_hang(accel_dev)) { in adf_msix_isr_ae()
145 ADF_CFG_MAX_KEY_LEN_IN_BYTES - 1, in adf_get_irq_affinity()
148 bankName[ADF_CFG_MAX_KEY_LEN_IN_BYTES - 1] = '\0'; in adf_get_irq_affinity()
152 "No CoreAffinity Set - using default core: %d\n", in adf_get_irq_affinity()
166 struct adf_accel_pci *info_pci_dev = &accel_dev->accel_pci_dev; in adf_request_irqs()
167 struct adf_hw_device_data *hw_data = accel_dev->hw_device; in adf_request_irqs()
168 struct msix_entry *msixe = info_pci_dev->msix_entries.entries; in adf_request_irqs()
170 struct adf_etr_data *etr_data = accel_dev->transport; in adf_request_irqs()
173 /* Request msix irq for all banks unless SR-IOV enabled */ in adf_request_irqs()
174 if (!accel_dev->u1.pf.vf_info) { in adf_request_irqs()
175 for (i = 0; i < hw_data->num_banks; i++) { in adf_request_irqs()
176 struct adf_etr_bank_data *bank = &etr_data->banks[i]; in adf_request_irqs()
180 bus_alloc_resource_any(info_pci_dev->pci_dev, in adf_request_irqs()
192 ret = bus_setup_intr(info_pci_dev->pci_dev, in adf_request_irqs()
204 bus_release_resource(info_pci_dev->pci_dev, in adf_request_irqs()
213 bus_describe_intr(info_pci_dev->pci_dev, in adf_request_irqs()
218 bus_bind_intr(info_pci_dev->pci_dev, in adf_request_irqs()
225 rid = hw_data->num_banks + 1; in adf_request_irqs()
226 msixe[i].irq = bus_alloc_resource_any(info_pci_dev->pci_dev, in adf_request_irqs()
232 "failed to allocate IRQ for ae-cluster\n"); in adf_request_irqs()
236 ret = bus_setup_intr(info_pci_dev->pci_dev, in adf_request_irqs()
245 "failed to enable IRQ for ae-cluster\n"); in adf_request_irqs()
246 bus_release_resource(info_pci_dev->pci_dev, in adf_request_irqs()
254 bus_describe_intr(info_pci_dev->pci_dev, in adf_request_irqs()
264 struct adf_accel_pci *info_pci_dev = &accel_dev->accel_pci_dev; in adf_free_irqs()
265 struct msix_entry *msixe = info_pci_dev->msix_entries.entries; in adf_free_irqs()
268 if (info_pci_dev->msix_entries.num_entries > 0) { in adf_free_irqs()
269 for (i = 0; i < info_pci_dev->msix_entries.num_entries; i++) { in adf_free_irqs()
271 bus_teardown_intr(info_pci_dev->pci_dev, in adf_free_irqs()
274 bus_free_resource(info_pci_dev->pci_dev, in adf_free_irqs()
288 struct adf_hw_device_data *hw_data = accel_dev->hw_device; in adf_isr_alloc_msix_entry_table()
289 /* If SR-IOV is disabled (vf_info is NULL), add entries for each bank */ in adf_isr_alloc_msix_entry_table()
290 if (!accel_dev->u1.pf.vf_info) in adf_isr_alloc_msix_entry_table()
291 msix_num_entries += hw_data->num_banks; in adf_isr_alloc_msix_entry_table()
297 accel_dev->accel_pci_dev.msix_entries.num_entries = msix_num_entries; in adf_isr_alloc_msix_entry_table()
298 accel_dev->accel_pci_dev.msix_entries.entries = entries; in adf_isr_alloc_msix_entry_table()
306 free(accel_dev->accel_pci_dev.msix_entries.entries, M_QAT); in adf_isr_free_msix_entry_table()
307 accel_dev->accel_pci_dev.msix_entries.entries = NULL; in adf_isr_free_msix_entry_table()
311 * adf_vf_isr_resource_free() - Free IRQ for acceleration device
320 adf_disable_msix(&accel_dev->accel_pci_dev); in adf_isr_resource_free()
325 * adf_vf_isr_resource_alloc() - Allocate IRQ for acceleration device