OSDN Git Service

rtc: ds1511: put ds1511_nvmem_cfg on the stack
authorAlexandre Belloni <alexandre.belloni@bootlin.com>
Mon, 12 Feb 2018 22:47:25 +0000 (23:47 +0100)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Thu, 1 Mar 2018 09:49:18 +0000 (10:49 +0100)
Move ds1511_nvmem_cfg to the stack of ds1511_rtc_probe. This results in a
very small code size reduction and make it safer on systems with two
similar RTCs:

   text    data     bss     dec     hex filename
   2128     164       4    2296     8f8 drivers/rtc/rtc-ds1511.o.before
   2175     100       4    2279     8e7 drivers/rtc/rtc-ds1511.o.after

Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
drivers/rtc/rtc-ds1511.c

index b1e51a4..5f55214 100644 (file)
@@ -422,20 +422,20 @@ static int ds1511_nvram_write(void *priv, unsigned int pos, void *buf,
        return 0;
 }
 
-static struct nvmem_config ds1511_nvmem_cfg = {
-       .name = "ds1511_nvram",
-       .word_size = 1,
-       .stride = 1,
-       .size = DS1511_RAM_MAX,
-       .reg_read = ds1511_nvram_read,
-       .reg_write = ds1511_nvram_write,
-};
-
 static int ds1511_rtc_probe(struct platform_device *pdev)
 {
        struct resource *res;
        struct rtc_plat_data *pdata;
        int ret = 0;
+       struct nvmem_config ds1511_nvmem_cfg = {
+               .name = "ds1511_nvram",
+               .word_size = 1,
+               .stride = 1,
+               .size = DS1511_RAM_MAX,
+               .reg_read = ds1511_nvram_read,
+               .reg_write = ds1511_nvram_write,
+               .priv = &pdev->dev,
+       };
 
        pdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL);
        if (!pdata)
@@ -478,7 +478,6 @@ static int ds1511_rtc_probe(struct platform_device *pdev)
 
        pdata->rtc->ops = &ds1511_rtc_ops;
 
-       ds1511_nvmem_cfg.priv = &pdev->dev;
        pdata->rtc->nvram_old_abi = true;
 
        ret = rtc_register_device(pdata->rtc);