From: Alexandre Belloni Date: Thu, 6 Jul 2017 09:42:03 +0000 (+0200) Subject: rtc: rv8803: switch to rtc_register_device X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=7133eca19505defed19b1337f46b2cd5f7608814;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git rtc: rv8803: switch to rtc_register_device This removes a possible race condition and allows for further improvement of the driver. Signed-off-by: Alexandre Belloni --- diff --git a/drivers/rtc/rtc-rv8803.c b/drivers/rtc/rtc-rv8803.c index 9ad97ab29866..209edbb03971 100644 --- a/drivers/rtc/rtc-rv8803.c +++ b/drivers/rtc/rtc-rv8803.c @@ -577,6 +577,11 @@ static int rv8803_probe(struct i2c_client *client, if (flags & RV8803_FLAG_AF) dev_warn(&client->dev, "An alarm maybe have been missed.\n"); + rv8803->rtc = devm_rtc_allocate_device(&client->dev); + if (IS_ERR(rv8803->rtc)) { + return PTR_ERR(rv8803->rtc); + } + if (client->irq > 0) { err = devm_request_threaded_irq(&client->dev, client->irq, NULL, rv8803_handle_irq, @@ -592,12 +597,10 @@ static int rv8803_probe(struct i2c_client *client, } } - rv8803->rtc = devm_rtc_device_register(&client->dev, client->name, - &rv8803_rtc_ops, THIS_MODULE); - if (IS_ERR(rv8803->rtc)) { - dev_err(&client->dev, "unable to register the class device\n"); - return PTR_ERR(rv8803->rtc); - } + rv8803->rtc->ops = &rv8803_rtc_ops; + err = rtc_register_device(rv8803->rtc); + if (err) + return err; err = rv8803_write_reg(rv8803->client, RV8803_EXT, RV8803_EXT_WADA); if (err)