rtc: ds1685: drop no_irq

No platforms are currently setting no_irq. Anyway, letting platform_get_irq
fail is fine as this means that there is no IRQ. In that case, clear
RTC_FEATURE_ALARM so the core knows there are no alarms.

Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Link: https://lore.kernel.org/r/20220309162301.61679-2-alexandre.belloni@bootlin.com
This commit is contained in:
Alexandre Belloni 2022-03-09 17:22:33 +01:00
parent 9e02e8032a
commit 5c0a04a663
2 changed files with 5 additions and 10 deletions

View File

@ -1285,13 +1285,10 @@ ds1685_rtc_probe(struct platform_device *pdev)
* there won't be an automatic way of notifying the kernel about it, * there won't be an automatic way of notifying the kernel about it,
* unless ctrlc is explicitly polled. * unless ctrlc is explicitly polled.
*/ */
if (!pdata->no_irq) { rtc->irq_num = platform_get_irq(pdev, 0);
ret = platform_get_irq(pdev, 0); if (rtc->irq_num <= 0) {
if (ret <= 0) clear_bit(RTC_FEATURE_ALARM, rtc_dev->features);
return ret; } else {
rtc->irq_num = ret;
/* Request an IRQ. */ /* Request an IRQ. */
ret = devm_request_threaded_irq(&pdev->dev, rtc->irq_num, ret = devm_request_threaded_irq(&pdev->dev, rtc->irq_num,
NULL, ds1685_rtc_irq_handler, NULL, ds1685_rtc_irq_handler,
@ -1305,7 +1302,6 @@ ds1685_rtc_probe(struct platform_device *pdev)
rtc->irq_num = 0; rtc->irq_num = 0;
} }
} }
rtc->no_irq = pdata->no_irq;
/* Setup complete. */ /* Setup complete. */
ds1685_rtc_switch_to_bank0(rtc); ds1685_rtc_switch_to_bank0(rtc);
@ -1394,7 +1390,7 @@ ds1685_rtc_poweroff(struct platform_device *pdev)
* have been taken care of by the shutdown scripts and this * have been taken care of by the shutdown scripts and this
* is the final function call. * is the final function call.
*/ */
if (!rtc->no_irq) if (rtc->irq_num)
disable_irq_nosync(rtc->irq_num); disable_irq_nosync(rtc->irq_num);
/* Oscillator must be on and the countdown chain enabled. */ /* Oscillator must be on and the countdown chain enabled. */

View File

@ -46,7 +46,6 @@ struct ds1685_priv {
u32 regstep; u32 regstep;
int irq_num; int irq_num;
bool bcd_mode; bool bcd_mode;
bool no_irq;
u8 (*read)(struct ds1685_priv *, int); u8 (*read)(struct ds1685_priv *, int);
void (*write)(struct ds1685_priv *, int, u8); void (*write)(struct ds1685_priv *, int, u8);
void (*prepare_poweroff)(void); void (*prepare_poweroff)(void);