Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

rtc: nvmem: emit an error message when nvmem registration fails

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

authored by

Bartosz Golaszewski and committed by
Alexandre Belloni
6746bc09 3a905c2d

+8 -8
+5 -2
drivers/rtc/nvmem.c
··· 13 13 int devm_rtc_nvmem_register(struct rtc_device *rtc, 14 14 struct nvmem_config *nvmem_config) 15 15 { 16 + struct device *dev = rtc->dev.parent; 16 17 struct nvmem_device *nvmem; 17 18 18 19 if (!nvmem_config) 19 20 return -ENODEV; 20 21 21 - nvmem_config->dev = rtc->dev.parent; 22 + nvmem_config->dev = dev; 22 23 nvmem_config->owner = rtc->owner; 23 - nvmem = devm_nvmem_register(rtc->dev.parent, nvmem_config); 24 + nvmem = devm_nvmem_register(dev, nvmem_config); 25 + if (IS_ERR(nvmem)) 26 + dev_err(dev, "failed to register nvmem device for RTC\n"); 24 27 25 28 return PTR_ERR_OR_ZERO(nvmem); 26 29 }
+1 -2
drivers/rtc/rtc-cmos.c
··· 869 869 870 870 /* export at least the first block of NVRAM */ 871 871 nvmem_cfg.size = address_space - NVRAM_OFFSET; 872 - if (devm_rtc_nvmem_register(cmos_rtc.rtc, &nvmem_cfg)) 873 - dev_err(dev, "nvmem registration failed\n"); 872 + devm_rtc_nvmem_register(cmos_rtc.rtc, &nvmem_cfg); 874 873 875 874 dev_info(dev, "%s%s, %d bytes nvram%s\n", 876 875 !is_valid_irq(rtc_irq) ? "no alarms" :
+1 -2
drivers/rtc/rtc-ds1553.c
··· 309 309 } 310 310 } 311 311 312 - if (devm_rtc_nvmem_register(pdata->rtc, &nvmem_cfg)) 313 - dev_err(&pdev->dev, "unable to register nvmem\n"); 312 + devm_rtc_nvmem_register(pdata->rtc, &nvmem_cfg); 314 313 315 314 return 0; 316 315 }
+1 -2
drivers/rtc/rtc-ds1742.c
··· 195 195 if (ret) 196 196 return ret; 197 197 198 - if (devm_rtc_nvmem_register(rtc, &nvmem_cfg)) 199 - dev_err(&pdev->dev, "Unable to register nvmem\n"); 198 + devm_rtc_nvmem_register(rtc, &nvmem_cfg); 200 199 201 200 return 0; 202 201 }