OSDN Git Service

rtc: pcf85363: put struct nvmem_config on the stack
authorAlexandre Belloni <alexandre.belloni@bootlin.com>
Mon, 12 Feb 2018 22:47:30 +0000 (23:47 +0100)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Thu, 1 Mar 2018 09:49:21 +0000 (10:49 +0100)
Avoid allocating memory for struct nvmem_config.

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

index a1fe833..64573cc 100644 (file)
@@ -80,7 +80,6 @@ static struct i2c_driver pcf85363_driver;
 struct pcf85363 {
        struct device           *dev;
        struct rtc_device       *rtc;
-       struct nvmem_config     nvmem_cfg;
        struct regmap           *regmap;
 };
 
@@ -164,6 +163,14 @@ static int pcf85363_probe(struct i2c_client *client,
                          const struct i2c_device_id *id)
 {
        struct pcf85363 *pcf85363;
+       struct nvmem_config nvmem_cfg = {
+               .name = "pcf85363-",
+               .word_size = 1,
+               .stride = 1,
+               .size = NVRAM_SIZE,
+               .reg_read = pcf85363_nvram_read,
+               .reg_write = pcf85363_nvram_write,
+       };
        int ret;
 
        if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C))
@@ -187,18 +194,12 @@ static int pcf85363_probe(struct i2c_client *client,
        if (IS_ERR(pcf85363->rtc))
                return PTR_ERR(pcf85363->rtc);
 
-       pcf85363->nvmem_cfg.name = "pcf85363-";
-       pcf85363->nvmem_cfg.word_size = 1;
-       pcf85363->nvmem_cfg.stride = 1;
-       pcf85363->nvmem_cfg.size = NVRAM_SIZE;
-       pcf85363->nvmem_cfg.reg_read = pcf85363_nvram_read;
-       pcf85363->nvmem_cfg.reg_write = pcf85363_nvram_write;
-       pcf85363->nvmem_cfg.priv = pcf85363;
        pcf85363->rtc->ops = &rtc_ops;
 
        ret = rtc_register_device(pcf85363->rtc);
 
-       rtc_nvmem_register(pcf85363->rtc, &pcf85363->nvmem_cfg);
+       nvmem_cfg.priv = pcf85363;
+       rtc_nvmem_register(pcf85363->rtc, &nvmem_cfg);
 
        return ret;
 }