From 3fbbf04884e7b664b5dceb8c34a47094b99a2662 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Thu, 23 Sep 2010 14:50:12 -0700 Subject: [PATCH] cpcap: Flush work in suspend Change-Id: I9a4ef87e84b53ad52f46554ad52ca5effb260f65 Signed-off-by: Colin Cross --- drivers/mfd/cpcap-irq.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/mfd/cpcap-irq.c b/drivers/mfd/cpcap-irq.c index 397caaae20a7..18f42875df20 100644 --- a/drivers/mfd/cpcap-irq.c +++ b/drivers/mfd/cpcap-irq.c @@ -434,7 +434,7 @@ int cpcap_irq_init(struct cpcap_device *cpcap) cpcap_irq_mask_all(cpcap); - data->workqueue = create_workqueue("cpcap_irq"); + data->workqueue = create_singlethread_workqueue("cpcap_irq"); INIT_WORK(&data->work, irq_work_func); mutex_init(&data->lock); wake_lock_init(&data->wake_lock, WAKE_LOCK_SUSPEND, "cpcap-irq"); @@ -635,8 +635,10 @@ EXPORT_SYMBOL_GPL(cpcap_irq_sense); int cpcap_irq_suspend(struct cpcap_device *cpcap) { struct spi_device *spi = cpcap->spi; + struct cpcap_irqdata *data = cpcap->irqdata; disable_irq(spi->irq); + flush_work(&data->work); return 0; } -- 2.34.1