diff options
Diffstat (limited to 'drivers/rtc/rtc-pl031.c')
-rw-r--r-- | drivers/rtc/rtc-pl031.c | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/drivers/rtc/rtc-pl031.c b/drivers/rtc/rtc-pl031.c index f027c063fb2..cc0533994f6 100644 --- a/drivers/rtc/rtc-pl031.c +++ b/drivers/rtc/rtc-pl031.c | |||
@@ -220,17 +220,9 @@ static irqreturn_t pl031_interrupt(int irq, void *dev_id) | |||
220 | unsigned long events = 0; | 220 | unsigned long events = 0; |
221 | 221 | ||
222 | rtcmis = readl(ldata->base + RTC_MIS); | 222 | rtcmis = readl(ldata->base + RTC_MIS); |
223 | if (rtcmis) { | 223 | if (rtcmis & RTC_BIT_AI) { |
224 | writel(rtcmis, ldata->base + RTC_ICR); | 224 | writel(RTC_BIT_AI, ldata->base + RTC_ICR); |
225 | 225 | events |= (RTC_AF | RTC_IRQF); | |
226 | if (rtcmis & RTC_BIT_AI) | ||
227 | events |= (RTC_AF | RTC_IRQF); | ||
228 | |||
229 | /* Timer interrupt is only available in ST variants */ | ||
230 | if ((rtcmis & RTC_BIT_PI) && | ||
231 | (ldata->hw_designer == AMBA_VENDOR_ST)) | ||
232 | events |= (RTC_PF | RTC_IRQF); | ||
233 | |||
234 | rtc_update_irq(ldata->rtc, 1, events); | 226 | rtc_update_irq(ldata->rtc, 1, events); |
235 | 227 | ||
236 | return IRQ_HANDLED; | 228 | return IRQ_HANDLED; |