On 20/06/2019 20:34:30+0200, Alexandre Belloni wrote: > This allows further improvement of the driver. > > Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxx> > --- > drivers/rtc/rtc-pcf2123.c | 24 +++++++++++++++--------- > 1 file changed, 15 insertions(+), 9 deletions(-) > > diff --git a/drivers/rtc/rtc-pcf2123.c b/drivers/rtc/rtc-pcf2123.c > index e8100af789ef..29e09ff57f89 100644 > --- a/drivers/rtc/rtc-pcf2123.c > +++ b/drivers/rtc/rtc-pcf2123.c > @@ -411,14 +411,9 @@ static int pcf2123_probe(struct spi_device *spi) > (spi->max_speed_hz + 500) / 1000); > > /* Finalize the initialization */ > - rtc = devm_rtc_device_register(&spi->dev, pcf2123_driver.driver.name, > - &pcf2123_rtc_ops, THIS_MODULE); > - > - if (IS_ERR(rtc)) { > - dev_err(&spi->dev, "failed to register.\n"); > - ret = PTR_ERR(rtc); > - goto kfree_exit; > - } > + rtc = devm_rtc_allocate_device(&spi->dev); > + if (IS_ERR(rtc)) > + return PTR_ERR(rtc); > > pdata->rtc = rtc; > > @@ -438,7 +433,18 @@ static int pcf2123_probe(struct spi_device *spi) > * support to this driver to generate interrupts more than once > * per minute. > */ > - pdata->rtc->uie_unsupported = 1; > + rtc->uie_unsupported = 1; > + rtc->ops = &pcf2123_rtc_ops; > + > + ret = rtc_register_device(rtc); > + if (ret) > + return ret; > + > + if (IS_ERR(rtc)) { > + dev_err(&spi->dev, "failed to register.\n"); > + ret = PTR_ERR(rtc); > + goto kfree_exit; > + } > I need to rework that part, I'll resend... > return 0; > > -- > 2.21.0 > -- Alexandre Belloni, Bootlin Embedded Linux and Kernel engineering https://bootlin.com