rtc: nvmem: emit an error message when nvmem registration fails
authorBartosz Golaszewski <bgolaszewski@baylibre.com>
Mon, 9 Nov 2020 16:34:07 +0000 (17:34 +0100)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Thu, 19 Nov 2020 11:50:12 +0000 (12:50 +0100)
Some users check the return value of devm_rtc_nvmem_register() only in
order to emit an error message and then continue probing. This is fine
as an rtc can function without exposing nvmem but let's generalize it:
let's make the registration function emit the error message so that
users don't have to.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Link: https://lore.kernel.org/r/20201109163409.24301-7-brgl@bgdev.pl
drivers/rtc/nvmem.c
drivers/rtc/rtc-cmos.c
drivers/rtc/rtc-ds1553.c
drivers/rtc/rtc-ds1742.c

index 7502deb6390e32ba819d46587489cc7e2527d1e5..07ede21cee347ce08be451293f8f8d9c4f696341 100644 (file)
 int devm_rtc_nvmem_register(struct rtc_device *rtc,
                       struct nvmem_config *nvmem_config)
 {
+       struct device *dev = rtc->dev.parent;
        struct nvmem_device *nvmem;
 
        if (!nvmem_config)
                return -ENODEV;
 
-       nvmem_config->dev = rtc->dev.parent;
+       nvmem_config->dev = dev;
        nvmem_config->owner = rtc->owner;
-       nvmem = devm_nvmem_register(rtc->dev.parent, nvmem_config);
+       nvmem = devm_nvmem_register(dev, nvmem_config);
+       if (IS_ERR(nvmem))
+               dev_err(dev, "failed to register nvmem device for RTC\n");
 
        return PTR_ERR_OR_ZERO(nvmem);
 }
index eea91c1538aa3f3241dca1f98780a85f65c9880e..766074c04b53d1be35b4eab3e6c6a721215b3096 100644 (file)
@@ -869,8 +869,7 @@ cmos_do_probe(struct device *dev, struct resource *ports, int rtc_irq)
 
        /* export at least the first block of NVRAM */
        nvmem_cfg.size = address_space - NVRAM_OFFSET;
-       if (devm_rtc_nvmem_register(cmos_rtc.rtc, &nvmem_cfg))
-               dev_err(dev, "nvmem registration failed\n");
+       devm_rtc_nvmem_register(cmos_rtc.rtc, &nvmem_cfg);
 
        dev_info(dev, "%s%s, %d bytes nvram%s\n",
                 !is_valid_irq(rtc_irq) ? "no alarms" :
index 2d2eb739d92b4bb9053b1e03a254e8ba710cf600..bb40ea8b63735ecd7fee545fbd238ec142baf6bb 100644 (file)
@@ -309,8 +309,7 @@ static int ds1553_rtc_probe(struct platform_device *pdev)
                }
        }
 
-       if (devm_rtc_nvmem_register(pdata->rtc, &nvmem_cfg))
-               dev_err(&pdev->dev, "unable to register nvmem\n");
+       devm_rtc_nvmem_register(pdata->rtc, &nvmem_cfg);
 
        return 0;
 }
index 29792a8cce978bdd0500b2ef53642cb6f72f6205..39c6c3a85b347f95b363ffde3040fced2f948b06 100644 (file)
@@ -195,8 +195,7 @@ static int ds1742_rtc_probe(struct platform_device *pdev)
        if (ret)
                return ret;
 
-       if (devm_rtc_nvmem_register(rtc, &nvmem_cfg))
-               dev_err(&pdev->dev, "Unable to register nvmem\n");
+       devm_rtc_nvmem_register(rtc, &nvmem_cfg);
 
        return 0;
 }