Lines Matching refs:ccp

43 static int ccp_get_msix_irqs(struct ccp_device *ccp)  in ccp_get_msix_irqs()  argument
45 struct ccp_pci *ccp_pci = ccp->dev_specific; in ccp_get_msix_irqs()
46 struct device *dev = ccp->dev; in ccp_get_msix_irqs()
86 static int ccp_get_msi_irq(struct ccp_device *ccp) in ccp_get_msi_irq() argument
88 struct device *dev = ccp->dev; in ccp_get_msi_irq()
96 ccp->irq = pdev->irq; in ccp_get_msi_irq()
97 ret = request_irq(ccp->irq, ccp_irq_handler, 0, "ccp", dev); in ccp_get_msi_irq()
111 static int ccp_get_irqs(struct ccp_device *ccp) in ccp_get_irqs() argument
113 struct device *dev = ccp->dev; in ccp_get_irqs()
116 ret = ccp_get_msix_irqs(ccp); in ccp_get_irqs()
122 ret = ccp_get_msi_irq(ccp); in ccp_get_irqs()
132 static void ccp_free_irqs(struct ccp_device *ccp) in ccp_free_irqs() argument
134 struct ccp_pci *ccp_pci = ccp->dev_specific; in ccp_free_irqs()
135 struct device *dev = ccp->dev; in ccp_free_irqs()
144 free_irq(ccp->irq, dev); in ccp_free_irqs()
149 static int ccp_find_mmio_area(struct ccp_device *ccp) in ccp_find_mmio_area() argument
151 struct device *dev = ccp->dev; in ccp_find_mmio_area()
166 struct ccp_device *ccp; in ccp_pci_probe() local
173 ccp = ccp_alloc_struct(dev); in ccp_pci_probe()
174 if (!ccp) in ccp_pci_probe()
181 ccp->dev_specific = ccp_pci; in ccp_pci_probe()
182 ccp->get_irq = ccp_get_irqs; in ccp_pci_probe()
183 ccp->free_irq = ccp_free_irqs; in ccp_pci_probe()
199 ret = ccp_find_mmio_area(ccp); in ccp_pci_probe()
205 ccp->io_map = pci_iomap(pdev, bar, 0); in ccp_pci_probe()
206 if (!ccp->io_map) { in ccp_pci_probe()
210 ccp->io_regs = ccp->io_map + IO_OFFSET; in ccp_pci_probe()
222 dev_set_drvdata(dev, ccp); in ccp_pci_probe()
224 ret = ccp_init(ccp); in ccp_pci_probe()
233 pci_iounmap(pdev, ccp->io_map); in ccp_pci_probe()
249 struct ccp_device *ccp = dev_get_drvdata(dev); in ccp_pci_remove() local
251 if (!ccp) in ccp_pci_remove()
254 ccp_destroy(ccp); in ccp_pci_remove()
256 pci_iounmap(pdev, ccp->io_map); in ccp_pci_remove()
269 struct ccp_device *ccp = dev_get_drvdata(dev); in ccp_pci_suspend() local
273 spin_lock_irqsave(&ccp->cmd_lock, flags); in ccp_pci_suspend()
275 ccp->suspending = 1; in ccp_pci_suspend()
278 for (i = 0; i < ccp->cmd_q_count; i++) in ccp_pci_suspend()
279 wake_up_process(ccp->cmd_q[i].kthread); in ccp_pci_suspend()
281 spin_unlock_irqrestore(&ccp->cmd_lock, flags); in ccp_pci_suspend()
284 while (!ccp_queues_suspended(ccp)) in ccp_pci_suspend()
285 wait_event_interruptible(ccp->suspend_queue, in ccp_pci_suspend()
286 ccp_queues_suspended(ccp)); in ccp_pci_suspend()
294 struct ccp_device *ccp = dev_get_drvdata(dev); in ccp_pci_resume() local
298 spin_lock_irqsave(&ccp->cmd_lock, flags); in ccp_pci_resume()
300 ccp->suspending = 0; in ccp_pci_resume()
303 for (i = 0; i < ccp->cmd_q_count; i++) { in ccp_pci_resume()
304 ccp->cmd_q[i].suspended = 0; in ccp_pci_resume()
305 wake_up_process(ccp->cmd_q[i].kthread); in ccp_pci_resume()
308 spin_unlock_irqrestore(&ccp->cmd_lock, flags); in ccp_pci_resume()