rtc: rx8025: clear RTC_FEATURE_ALARM when alarm are not supported
authorAlexandre Belloni <alexandre.belloni@bootlin.com>
Sun, 7 Nov 2021 22:54:55 +0000 (23:54 +0100)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Tue, 9 Nov 2021 23:45:57 +0000 (00:45 +0100)
Clear RTC_FEATURE_ALARM to signal alarms are not supported to the core
instead of checking client->irq.

Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Link: https://lore.kernel.org/r/20211107225458.111068-10-alexandre.belloni@bootlin.com
drivers/rtc/rtc-rx8025.c

index 6002305..fcfdefe 100644 (file)
@@ -315,9 +315,6 @@ static int rx8025_read_alarm(struct device *dev, struct rtc_wkalrm *t)
        u8 ald[2];
        int ctrl2, err;
 
-       if (client->irq <= 0)
-               return -EINVAL;
-
        err = rx8025_read_regs(client, RX8025_REG_ALDMIN, 2, ald);
        if (err)
                return err;
@@ -352,9 +349,6 @@ static int rx8025_set_alarm(struct device *dev, struct rtc_wkalrm *t)
        u8 ald[2];
        int err;
 
-       if (client->irq <= 0)
-               return -EINVAL;
-
        ald[0] = bin2bcd(t->time.tm_min);
        if (rx8025->ctrl1 & RX8025_BIT_CTRL1_1224)
                ald[1] = bin2bcd(t->time.tm_hour);
@@ -559,10 +553,8 @@ static int rx8025_probe(struct i2c_client *client,
                                                rx8025_handle_irq,
                                                IRQF_ONESHOT,
                                                "rx8025", client);
-               if (err) {
-                       dev_err(&client->dev, "unable to request IRQ, alarms disabled\n");
-                       client->irq = 0;
-               }
+               if (err)
+                       clear_bit(RTC_FEATURE_ALARM, rx8025->rtc->features);
        }
 
        rx8025->rtc->max_user_freq = 1;