From: Colin Cross Date: Thu, 23 Sep 2010 21:50:12 +0000 (-0700) Subject: cpcap: Flush work in suspend X-Git-Tag: firefly_0821_release~9834^2~519 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=3fbbf04884e7b664b5dceb8c34a47094b99a2662;p=firefly-linux-kernel-4.4.55.git cpcap: Flush work in suspend Change-Id: I9a4ef87e84b53ad52f46554ad52ca5effb260f65 Signed-off-by: Colin Cross --- 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; }