Lines Matching refs:ccp
35 static int ccp_get_irq(struct ccp_device *ccp) in ccp_get_irq() argument
37 struct device *dev = ccp->dev; in ccp_get_irq()
46 ccp->irq = ret; in ccp_get_irq()
47 ret = request_irq(ccp->irq, ccp_irq_handler, 0, "ccp", dev); in ccp_get_irq()
56 static int ccp_get_irqs(struct ccp_device *ccp) in ccp_get_irqs() argument
58 struct device *dev = ccp->dev; in ccp_get_irqs()
61 ret = ccp_get_irq(ccp); in ccp_get_irqs()
71 static void ccp_free_irqs(struct ccp_device *ccp) in ccp_free_irqs() argument
73 struct device *dev = ccp->dev; in ccp_free_irqs()
75 free_irq(ccp->irq, dev); in ccp_free_irqs()
78 static struct resource *ccp_find_mmio_area(struct ccp_device *ccp) in ccp_find_mmio_area() argument
80 struct device *dev = ccp->dev; in ccp_find_mmio_area()
94 struct ccp_device *ccp; in ccp_platform_probe() local
102 ccp = ccp_alloc_struct(dev); in ccp_platform_probe()
103 if (!ccp) in ccp_platform_probe()
110 ccp->dev_specific = ccp_platform; in ccp_platform_probe()
111 ccp->get_irq = ccp_get_irqs; in ccp_platform_probe()
112 ccp->free_irq = ccp_free_irqs; in ccp_platform_probe()
114 ior = ccp_find_mmio_area(ccp); in ccp_platform_probe()
115 ccp->io_map = devm_ioremap_resource(dev, ior); in ccp_platform_probe()
116 if (IS_ERR(ccp->io_map)) { in ccp_platform_probe()
117 ret = PTR_ERR(ccp->io_map); in ccp_platform_probe()
120 ccp->io_regs = ccp->io_map; in ccp_platform_probe()
130 ccp->axcache = CACHE_WB_NO_ALLOC; in ccp_platform_probe()
132 ccp->axcache = CACHE_NONE; in ccp_platform_probe()
140 dev_set_drvdata(dev, ccp); in ccp_platform_probe()
142 ret = ccp_init(ccp); in ccp_platform_probe()
158 struct ccp_device *ccp = dev_get_drvdata(dev); in ccp_platform_remove() local
160 ccp_destroy(ccp); in ccp_platform_remove()
172 struct ccp_device *ccp = dev_get_drvdata(dev); in ccp_platform_suspend() local
176 spin_lock_irqsave(&ccp->cmd_lock, flags); in ccp_platform_suspend()
178 ccp->suspending = 1; in ccp_platform_suspend()
181 for (i = 0; i < ccp->cmd_q_count; i++) in ccp_platform_suspend()
182 wake_up_process(ccp->cmd_q[i].kthread); in ccp_platform_suspend()
184 spin_unlock_irqrestore(&ccp->cmd_lock, flags); in ccp_platform_suspend()
187 while (!ccp_queues_suspended(ccp)) in ccp_platform_suspend()
188 wait_event_interruptible(ccp->suspend_queue, in ccp_platform_suspend()
189 ccp_queues_suspended(ccp)); in ccp_platform_suspend()
197 struct ccp_device *ccp = dev_get_drvdata(dev); in ccp_platform_resume() local
201 spin_lock_irqsave(&ccp->cmd_lock, flags); in ccp_platform_resume()
203 ccp->suspending = 0; in ccp_platform_resume()
206 for (i = 0; i < ccp->cmd_q_count; i++) { in ccp_platform_resume()
207 ccp->cmd_q[i].suspended = 0; in ccp_platform_resume()
208 wake_up_process(ccp->cmd_q[i].kthread); in ccp_platform_resume()
211 spin_unlock_irqrestore(&ccp->cmd_lock, flags); in ccp_platform_resume()