Lines Matching refs:ccp

36 static int ccp_get_irq(struct ccp_device *ccp)  in ccp_get_irq()  argument
38 struct device *dev = ccp->dev; in ccp_get_irq()
47 ccp->irq = ret; in ccp_get_irq()
48 ret = request_irq(ccp->irq, ccp_irq_handler, 0, "ccp", dev); in ccp_get_irq()
57 static int ccp_get_irqs(struct ccp_device *ccp) in ccp_get_irqs() argument
59 struct device *dev = ccp->dev; in ccp_get_irqs()
62 ret = ccp_get_irq(ccp); in ccp_get_irqs()
72 static void ccp_free_irqs(struct ccp_device *ccp) in ccp_free_irqs() argument
74 struct device *dev = ccp->dev; in ccp_free_irqs()
76 free_irq(ccp->irq, dev); in ccp_free_irqs()
79 static struct resource *ccp_find_mmio_area(struct ccp_device *ccp) in ccp_find_mmio_area() argument
81 struct device *dev = ccp->dev; in ccp_find_mmio_area()
94 static int ccp_acpi_support(struct ccp_device *ccp) in ccp_acpi_support() argument
96 struct ccp_platform *ccp_platform = ccp->dev_specific; in ccp_acpi_support()
97 struct acpi_device *adev = ACPI_COMPANION(ccp->dev); in ccp_acpi_support()
114 dev_err(ccp->dev, "error obtaining acpi coherency value\n"); in ccp_acpi_support()
123 static int ccp_acpi_support(struct ccp_device *ccp) in ccp_acpi_support() argument
130 static int ccp_of_support(struct ccp_device *ccp) in ccp_of_support() argument
132 struct ccp_platform *ccp_platform = ccp->dev_specific; in ccp_of_support()
134 ccp_platform->coherent = of_dma_is_coherent(ccp->dev->of_node); in ccp_of_support()
139 static int ccp_of_support(struct ccp_device *ccp) in ccp_of_support() argument
147 struct ccp_device *ccp; in ccp_platform_probe() local
155 ccp = ccp_alloc_struct(dev); in ccp_platform_probe()
156 if (!ccp) in ccp_platform_probe()
163 ccp->dev_specific = ccp_platform; in ccp_platform_probe()
164 ccp->get_irq = ccp_get_irqs; in ccp_platform_probe()
165 ccp->free_irq = ccp_free_irqs; in ccp_platform_probe()
169 ior = ccp_find_mmio_area(ccp); in ccp_platform_probe()
170 ccp->io_map = devm_ioremap_resource(dev, ior); in ccp_platform_probe()
171 if (IS_ERR(ccp->io_map)) { in ccp_platform_probe()
172 ret = PTR_ERR(ccp->io_map); in ccp_platform_probe()
175 ccp->io_regs = ccp->io_map; in ccp_platform_probe()
186 ret = ccp_acpi_support(ccp); in ccp_platform_probe()
188 ret = ccp_of_support(ccp); in ccp_platform_probe()
193 ccp->axcache = CACHE_WB_NO_ALLOC; in ccp_platform_probe()
195 ccp->axcache = CACHE_NONE; in ccp_platform_probe()
197 dev_set_drvdata(dev, ccp); in ccp_platform_probe()
199 ret = ccp_init(ccp); in ccp_platform_probe()
215 struct ccp_device *ccp = dev_get_drvdata(dev); in ccp_platform_remove() local
217 ccp_destroy(ccp); in ccp_platform_remove()
229 struct ccp_device *ccp = dev_get_drvdata(dev); in ccp_platform_suspend() local
233 spin_lock_irqsave(&ccp->cmd_lock, flags); in ccp_platform_suspend()
235 ccp->suspending = 1; in ccp_platform_suspend()
238 for (i = 0; i < ccp->cmd_q_count; i++) in ccp_platform_suspend()
239 wake_up_process(ccp->cmd_q[i].kthread); in ccp_platform_suspend()
241 spin_unlock_irqrestore(&ccp->cmd_lock, flags); in ccp_platform_suspend()
244 while (!ccp_queues_suspended(ccp)) in ccp_platform_suspend()
245 wait_event_interruptible(ccp->suspend_queue, in ccp_platform_suspend()
246 ccp_queues_suspended(ccp)); in ccp_platform_suspend()
254 struct ccp_device *ccp = dev_get_drvdata(dev); in ccp_platform_resume() local
258 spin_lock_irqsave(&ccp->cmd_lock, flags); in ccp_platform_resume()
260 ccp->suspending = 0; in ccp_platform_resume()
263 for (i = 0; i < ccp->cmd_q_count; i++) { in ccp_platform_resume()
264 ccp->cmd_q[i].suspended = 0; in ccp_platform_resume()
265 wake_up_process(ccp->cmd_q[i].kthread); in ccp_platform_resume()
268 spin_unlock_irqrestore(&ccp->cmd_lock, flags); in ccp_platform_resume()