Lines Matching refs:accel_dev

65 static int adf_enable_msi(struct adf_accel_dev *accel_dev)  in adf_enable_msi()  argument
67 struct adf_accel_pci *pci_dev_info = &accel_dev->accel_pci_dev; in adf_enable_msi()
71 dev_err(&GET_DEV(accel_dev), in adf_enable_msi()
76 accel_dev->vf.irq_name = kzalloc(ADF_MAX_MSIX_VECTOR_NAME, GFP_KERNEL); in adf_enable_msi()
77 if (!accel_dev->vf.irq_name) in adf_enable_msi()
83 static void adf_disable_msi(struct adf_accel_dev *accel_dev) in adf_disable_msi() argument
85 struct pci_dev *pdev = accel_to_pci_dev(accel_dev); in adf_disable_msi()
87 kfree(accel_dev->vf.irq_name); in adf_disable_msi()
93 struct adf_accel_dev *accel_dev = data; in adf_pf2vf_bh_handler() local
95 (&GET_BARS(accel_dev)[ADF_DH895XCCIOV_PMISC_BAR])->virt_addr; in adf_pf2vf_bh_handler()
107 dev_dbg(&GET_DEV(accel_dev), in adf_pf2vf_bh_handler()
109 adf_dev_stop(accel_dev); in adf_pf2vf_bh_handler()
112 dev_dbg(&GET_DEV(accel_dev), in adf_pf2vf_bh_handler()
114 accel_dev->vf.pf_version = in adf_pf2vf_bh_handler()
117 accel_dev->vf.compatible = in adf_pf2vf_bh_handler()
120 complete(&accel_dev->vf.iov_msg_completion); in adf_pf2vf_bh_handler()
131 adf_enable_pf2vf_interrupts(accel_dev); in adf_pf2vf_bh_handler()
134 dev_err(&GET_DEV(accel_dev), in adf_pf2vf_bh_handler()
139 static int adf_setup_pf2vf_bh(struct adf_accel_dev *accel_dev) in adf_setup_pf2vf_bh() argument
141 tasklet_init(&accel_dev->vf.pf2vf_bh_tasklet, in adf_setup_pf2vf_bh()
142 (void *)adf_pf2vf_bh_handler, (unsigned long)accel_dev); in adf_setup_pf2vf_bh()
144 mutex_init(&accel_dev->vf.vf2pf_lock); in adf_setup_pf2vf_bh()
148 static void adf_cleanup_pf2vf_bh(struct adf_accel_dev *accel_dev) in adf_cleanup_pf2vf_bh() argument
150 tasklet_disable(&accel_dev->vf.pf2vf_bh_tasklet); in adf_cleanup_pf2vf_bh()
151 tasklet_kill(&accel_dev->vf.pf2vf_bh_tasklet); in adf_cleanup_pf2vf_bh()
152 mutex_destroy(&accel_dev->vf.vf2pf_lock); in adf_cleanup_pf2vf_bh()
157 struct adf_accel_dev *accel_dev = privdata; in adf_isr() local
159 (&GET_BARS(accel_dev)[ADF_DH895XCCIOV_PMISC_BAR])->virt_addr; in adf_isr()
168 adf_disable_pf2vf_interrupts(accel_dev); in adf_isr()
171 tasklet_hi_schedule(&accel_dev->vf.pf2vf_bh_tasklet); in adf_isr()
177 struct adf_etr_data *etr_data = accel_dev->transport; in adf_isr()
190 static int adf_request_msi_irq(struct adf_accel_dev *accel_dev) in adf_request_msi_irq() argument
192 struct pci_dev *pdev = accel_to_pci_dev(accel_dev); in adf_request_msi_irq()
196 snprintf(accel_dev->vf.irq_name, ADF_MAX_MSIX_VECTOR_NAME, in adf_request_msi_irq()
199 ret = request_irq(pdev->irq, adf_isr, 0, accel_dev->vf.irq_name, in adf_request_msi_irq()
200 (void *)accel_dev); in adf_request_msi_irq()
202 dev_err(&GET_DEV(accel_dev), "failed to enable irq for %s\n", in adf_request_msi_irq()
203 accel_dev->vf.irq_name); in adf_request_msi_irq()
206 cpu = accel_dev->accel_id % num_online_cpus(); in adf_request_msi_irq()
212 static int adf_setup_bh(struct adf_accel_dev *accel_dev) in adf_setup_bh() argument
214 struct adf_etr_data *priv_data = accel_dev->transport; in adf_setup_bh()
221 static void adf_cleanup_bh(struct adf_accel_dev *accel_dev) in adf_cleanup_bh() argument
223 struct adf_etr_data *priv_data = accel_dev->transport; in adf_cleanup_bh()
229 void adf_vf_isr_resource_free(struct adf_accel_dev *accel_dev) in adf_vf_isr_resource_free() argument
231 struct pci_dev *pdev = accel_to_pci_dev(accel_dev); in adf_vf_isr_resource_free()
234 free_irq(pdev->irq, (void *)accel_dev); in adf_vf_isr_resource_free()
235 adf_cleanup_bh(accel_dev); in adf_vf_isr_resource_free()
236 adf_cleanup_pf2vf_bh(accel_dev); in adf_vf_isr_resource_free()
237 adf_disable_msi(accel_dev); in adf_vf_isr_resource_free()
240 int adf_vf_isr_resource_alloc(struct adf_accel_dev *accel_dev) in adf_vf_isr_resource_alloc() argument
242 if (adf_enable_msi(accel_dev)) in adf_vf_isr_resource_alloc()
245 if (adf_setup_pf2vf_bh(accel_dev)) in adf_vf_isr_resource_alloc()
248 if (adf_setup_bh(accel_dev)) in adf_vf_isr_resource_alloc()
251 if (adf_request_msi_irq(accel_dev)) in adf_vf_isr_resource_alloc()
256 adf_vf_isr_resource_free(accel_dev); in adf_vf_isr_resource_alloc()