diff options
| author | Thomas Bogendoerfer <tbogendoerfer@suse.de> | 2019-04-16 05:34:04 -0400 |
|---|---|---|
| committer | Alexandre Belloni <alexandre.belloni@bootlin.com> | 2019-04-16 12:03:48 -0400 |
| commit | 3b6bddda2fb68e0f784f5e5fabe91ba3f7399ef5 (patch) | |
| tree | 66ce6d8dc1308cf46acc1ab1f1e52036c5892837 /include/linux/rtc | |
| parent | e330c3d547e8ab722dca23f3dc26c3eba5590e55 (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.h | 2 |
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; |
