rtc: armada38x: remove armada38x_rtc_ops_noirq
authorAlexandre Belloni <alexandre.belloni@bootlin.com>
Sun, 10 Jan 2021 23:17:38 +0000 (00:17 +0100)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Sat, 16 Jan 2021 22:19:26 +0000 (23:19 +0100)
Clear RTC_FEATURE_ALARM to signal that alarms are not available instead of
having a supplementary struct rtc_class_ops with a NULL .set_alarm.

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

index 807a79c07f084f96b7ae13b2d86ed2626bb57794..cc542e6b1d5b029f11ab5a605145a7e6998a7a9a 100644 (file)
@@ -458,14 +458,6 @@ static const struct rtc_class_ops armada38x_rtc_ops = {
        .set_offset = armada38x_rtc_set_offset,
 };
 
-static const struct rtc_class_ops armada38x_rtc_ops_noirq = {
-       .read_time = armada38x_rtc_read_time,
-       .set_time = armada38x_rtc_set_time,
-       .read_alarm = armada38x_rtc_read_alarm,
-       .read_offset = armada38x_rtc_read_offset,
-       .set_offset = armada38x_rtc_set_offset,
-};
-
 static const struct armada38x_rtc_data armada38x_data = {
        .update_mbus_timing = rtc_update_38x_mbus_timing_params,
        .read_rtc_reg = read_rtc_register_38x_wa,
@@ -540,20 +532,15 @@ static __init int armada38x_rtc_probe(struct platform_device *pdev)
        }
        platform_set_drvdata(pdev, rtc);
 
-       if (rtc->irq != -1) {
+       if (rtc->irq != -1)
                device_init_wakeup(&pdev->dev, 1);
-               rtc->rtc_dev->ops = &armada38x_rtc_ops;
-       } else {
-               /*
-                * If there is no interrupt available then we can't
-                * use the alarm
-                */
-               rtc->rtc_dev->ops = &armada38x_rtc_ops_noirq;
-       }
+       else
+               clear_bit(RTC_FEATURE_ALARM, rtc->rtc_dev->features);
 
        /* Update RTC-MBUS bridge timing parameters */
        rtc->data->update_mbus_timing(rtc);
 
+       rtc->rtc_dev->ops = &armada38x_rtc_ops;
        rtc->rtc_dev->range_max = U32_MAX;
 
        return devm_rtc_register_device(rtc->rtc_dev);