aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/rtc
diff options
context:
space:
mode:
authorThomas Bogendoerfer <tbogendoerfer@suse.de>2019-04-16 05:34:04 -0400
committerAlexandre Belloni <alexandre.belloni@bootlin.com>2019-04-16 12:03:48 -0400
commit3b6bddda2fb68e0f784f5e5fabe91ba3f7399ef5 (patch)
tree66ce6d8dc1308cf46acc1ab1f1e52036c5892837 /include/linux/rtc
parente330c3d547e8ab722dca23f3dc26c3eba5590e55 (diff)
rtc: ds1685: use threaded interrupt
Handling of extended interrupts (kickstart, wake-up, ram-clear) was moved off to a work queue, but the interrupts aren't acknowledged in the interrupt handler. This leads to a deadlock, if driver is used with interrupts. To fix this we use a threaded interrupt, get rid of the work queue and do locking with just the rtc mutex lock. Fixes: aaaf5fbf56f1 ("rtc: add driver for DS1685 family of real time clocks") Signed-off-by: Thomas Bogendoerfer <tbogendoerfer@suse.de> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Diffstat (limited to 'include/linux/rtc')
-rw-r--r--include/linux/rtc/ds1685.h2
1 files changed, 0 insertions, 2 deletions
diff --git a/include/linux/rtc/ds1685.h b/include/linux/rtc/ds1685.h
index e6337a56d741..a00b332c505f 100644
--- a/include/linux/rtc/ds1685.h
+++ b/include/linux/rtc/ds1685.h
@@ -48,8 +48,6 @@ struct ds1685_priv {
48 u32 regstep; 48 u32 regstep;
49 resource_size_t baseaddr; 49 resource_size_t baseaddr;
50 size_t size; 50 size_t size;
51 spinlock_t lock;
52 struct work_struct work;
53 int irq_num; 51 int irq_num;
54 bool bcd_mode; 52 bool bcd_mode;
55 bool no_irq; 53 bool no_irq;