Hi Julia. Could coccinelle identify non-const arrays that are never modified by anything and add const like this patch below by some mechanism?
--- On Thu, 2016-09-08 at 19:49 -0700, Joe Perches wrote: > Moving data to text is a good thing. > > > Mark the regulator_info structs as const and change the pointers to const. > > > $ size drivers/regulator/*.o* > text data bss dec hex filename > 7455 100 0 7555 1d83 > drivers/regulator/da9052-regulator.o.new > 2111 5392 0 7503 1d4f > drivers/regulator/da9052-regulator.o.old > 4321 100 0 4421 1145 > drivers/regulator/da9055-regulator.o.new > 2611 1800 0 4411 113b > drivers/regulator/da9055-regulator.o.old > > > Signed-off-by: Joe Perches <[email protected]> > --- > drivers/regulator/da9052-regulator.c | 37 > ++++++++++++++++++------------------ > drivers/regulator/da9055-regulator.c | 32 +++++++++++++++---------------- > 2 files changed, 34 insertions(+), 35 deletions(-) > > > diff --git a/drivers/regulator/da9052-regulator.c > b/drivers/regulator/da9052-regulator.c > index 9ececfe..184ff1d 100644 > --- a/drivers/regulator/da9052-regulator.c > +++ b/drivers/regulator/da9052-regulator.c > @@ -75,11 +75,11 @@ struct da9052_regulator_info { > > struct da9052_regulator { > struct da9052 *da9052; > - struct da9052_regulator_info *info; > + const struct da9052_regulator_info *info; > struct regulator_dev *rdev; > }; > > -static int verify_range(struct da9052_regulator_info *info, > +static int verify_range(const struct da9052_regulator_info *info, > int min_uV, int max_uV) > { > if (min_uV > info->max_uV || max_uV < info->min_uV) > @@ -159,7 +159,7 @@ static int da9052_list_voltage(struct regulator_dev *rdev, > unsigned int selector) > { > struct da9052_regulator *regulator = rdev_get_drvdata(rdev); > - struct da9052_regulator_info *info = regulator->info; > + const struct da9052_regulator_info *info = regulator->info; > int id = rdev_get_id(rdev); > int volt_uV; > > @@ -183,7 +183,7 @@ static int da9052_map_voltage(struct regulator_dev *rdev, > int min_uV, int max_uV) > { > struct da9052_regulator *regulator = rdev_get_drvdata(rdev); > - struct da9052_regulator_info *info = regulator->info; > + const struct da9052_regulator_info *info = regulator->info; > int id = rdev_get_id(rdev); > int ret, sel; > > @@ -214,7 +214,7 @@ static int da9052_regulator_set_voltage_sel(struct > regulator_dev *rdev, > unsigned int selector) > { > struct da9052_regulator *regulator = rdev_get_drvdata(rdev); > - struct da9052_regulator_info *info = regulator->info; > + const struct da9052_regulator_info *info = regulator->info; > int id = rdev_get_id(rdev); > int ret; > > @@ -245,7 +245,7 @@ static int da9052_regulator_set_voltage_time_sel(struct > regulator_dev *rdev, > unsigned int new_sel) > { > struct da9052_regulator *regulator = rdev_get_drvdata(rdev); > - struct da9052_regulator_info *info = regulator->info; > + const struct da9052_regulator_info *info = regulator->info; > int id = rdev_get_id(rdev); > int ret = 0; > > @@ -330,7 +330,7 @@ static const struct regulator_ops da9052_ldo_ops = { > .activate_bit = (abits),\ > } > > -static struct da9052_regulator_info da9052_regulator_info[] = { > +static const struct da9052_regulator_info da9052_regulator_info[] = { > DA9052_DCDC(BUCK1, 25, 500, 2075, 6, 6, DA9052_SUPPLY_VBCOREGO), > DA9052_DCDC(BUCK2, 25, 500, 2075, 6, 6, DA9052_SUPPLY_VBPROGO), > DA9052_DCDC(BUCK3, 25, 950, 2525, 6, 6, DA9052_SUPPLY_VBMEMGO), > @@ -347,7 +347,7 @@ static struct da9052_regulator_info > da9052_regulator_info[] = { > DA9052_LDO(LDO10, 50, 1200, 3600, 6, 6, 0), > }; > > -static struct da9052_regulator_info da9053_regulator_info[] = { > +static const struct da9052_regulator_info da9053_regulator_info[] = { > DA9052_DCDC(BUCK1, 25, 500, 2075, 6, 6, DA9052_SUPPLY_VBCOREGO), > DA9052_DCDC(BUCK2, 25, 500, 2075, 6, 6, DA9052_SUPPLY_VBPROGO), > DA9052_DCDC(BUCK3, 25, 950, 2525, 6, 6, DA9052_SUPPLY_VBMEMGO), > @@ -364,10 +364,10 @@ static struct da9052_regulator_info > da9053_regulator_info[] = { > DA9052_LDO(LDO10, 50, 1200, 3600, 6, 6, 0), > }; > > -static inline struct da9052_regulator_info *find_regulator_info(u8 chip_id, > - int id) > +static inline const struct da9052_regulator_info * > +find_regulator_info(u8 chip_id, int id) > { > - struct da9052_regulator_info *info; > + const struct da9052_regulator_info *info; > int i; > > switch (chip_id) { > @@ -435,14 +435,13 @@ static int da9052_regulator_probe(struct > platform_device *pdev) > return -ENODEV; > > for_each_child_of_node(nproot, np) { > - if (!of_node_cmp(np->name, > - regulator->info->reg_desc.name)) { > - config.init_data = of_get_regulator_init_data( > - &pdev->dev, np, > - ®ulator->info->reg_desc); > - config.of_node = np; > - break; > - } > + if (of_node_cmp(np->name, > regulator->info->reg_desc.name)) > + continue; > + config.init_data = > + of_get_regulator_init_data(&pdev->dev, np, > + > ®ulator->info->reg_desc); > + config.of_node = np; > + break; > } > of_node_put(nproot); > #endif > diff --git a/drivers/regulator/da9055-regulator.c > b/drivers/regulator/da9055-regulator.c > index d029c94..019df70 100644 > --- a/drivers/regulator/da9055-regulator.c > +++ b/drivers/regulator/da9055-regulator.c > @@ -77,7 +77,7 @@ struct da9055_regulator_info { > > struct da9055_regulator { > struct da9055 *da9055; > - struct da9055_regulator_info *info; > + const struct da9055_regulator_info *info; > struct regulator_dev *rdev; > enum gpio_select reg_rselect; > }; > @@ -85,7 +85,7 @@ struct da9055_regulator { > static unsigned int da9055_buck_get_mode(struct regulator_dev *rdev) > { > struct da9055_regulator *regulator = rdev_get_drvdata(rdev); > - struct da9055_regulator_info *info = regulator->info; > + const struct da9055_regulator_info *info = regulator->info; > int ret, mode = 0; > > ret = da9055_reg_read(regulator->da9055, info->mode.reg); > @@ -111,7 +111,7 @@ static int da9055_buck_set_mode(struct regulator_dev > *rdev, > unsigned int mode) > { > struct da9055_regulator *regulator = rdev_get_drvdata(rdev); > - struct da9055_regulator_info *info = regulator->info; > + const struct da9055_regulator_info *info = regulator->info; > int val = 0; > > switch (mode) { > @@ -133,7 +133,7 @@ static int da9055_buck_set_mode(struct regulator_dev > *rdev, > static unsigned int da9055_ldo_get_mode(struct regulator_dev *rdev) > { > struct da9055_regulator *regulator = rdev_get_drvdata(rdev); > - struct da9055_regulator_info *info = regulator->info; > + const struct da9055_regulator_info *info = regulator->info; > int ret; > > ret = da9055_reg_read(regulator->da9055, info->volt.reg_b); > @@ -149,7 +149,7 @@ static unsigned int da9055_ldo_get_mode(struct > regulator_dev *rdev) > static int da9055_ldo_set_mode(struct regulator_dev *rdev, unsigned int mode) > { > struct da9055_regulator *regulator = rdev_get_drvdata(rdev); > - struct da9055_regulator_info *info = regulator->info; > + const struct da9055_regulator_info *info = regulator->info; > struct da9055_volt_reg volt = info->volt; > int val = 0; > > @@ -171,7 +171,7 @@ static int da9055_ldo_set_mode(struct regulator_dev > *rdev, unsigned int mode) > static int da9055_buck_get_current_limit(struct regulator_dev *rdev) > { > struct da9055_regulator *regulator = rdev_get_drvdata(rdev); > - struct da9055_regulator_info *info = regulator->info; > + const struct da9055_regulator_info *info = regulator->info; > int ret; > > ret = da9055_reg_read(regulator->da9055, DA9055_REG_BUCK_LIM); > @@ -186,7 +186,7 @@ static int da9055_buck_set_current_limit(struct > regulator_dev *rdev, int min_uA, > int max_uA) > { > struct da9055_regulator *regulator = rdev_get_drvdata(rdev); > - struct da9055_regulator_info *info = regulator->info; > + const struct da9055_regulator_info *info = regulator->info; > int i; > > for (i = ARRAY_SIZE(da9055_current_limits) - 1; i >= 0; i--) { > @@ -204,7 +204,7 @@ static int da9055_buck_set_current_limit(struct > regulator_dev *rdev, int min_uA, > static int da9055_regulator_get_voltage_sel(struct regulator_dev *rdev) > { > struct da9055_regulator *regulator = rdev_get_drvdata(rdev); > - struct da9055_regulator_info *info = regulator->info; > + const struct da9055_regulator_info *info = regulator->info; > struct da9055_volt_reg volt = info->volt; > int ret, sel; > > @@ -236,7 +236,7 @@ static int da9055_regulator_set_voltage_sel(struct > regulator_dev *rdev, > unsigned int selector) > { > struct da9055_regulator *regulator = rdev_get_drvdata(rdev); > - struct da9055_regulator_info *info = regulator->info; > + const struct da9055_regulator_info *info = regulator->info; > int ret; > > /* > @@ -279,7 +279,7 @@ static int da9055_regulator_set_suspend_voltage(struct > regulator_dev *rdev, > int uV) > { > struct da9055_regulator *regulator = rdev_get_drvdata(rdev); > - struct da9055_regulator_info *info = regulator->info; > + const struct da9055_regulator_info *info = regulator->info; > int ret; > > /* Select register set B for suspend voltage ramping. */ > @@ -301,7 +301,7 @@ static int da9055_regulator_set_suspend_voltage(struct > regulator_dev *rdev, > static int da9055_suspend_enable(struct regulator_dev *rdev) > { > struct da9055_regulator *regulator = rdev_get_drvdata(rdev); > - struct da9055_regulator_info *info = regulator->info; > + const struct da9055_regulator_info *info = regulator->info; > > /* Select register set B for voltage ramping. */ > if (regulator->reg_rselect == NO_GPIO) > @@ -314,7 +314,7 @@ static int da9055_suspend_enable(struct regulator_dev > *rdev) > static int da9055_suspend_disable(struct regulator_dev *rdev) > { > struct da9055_regulator *regulator = rdev_get_drvdata(rdev); > - struct da9055_regulator_info *info = regulator->info; > + const struct da9055_regulator_info *info = regulator->info; > > /* Diselect register set B. */ > if (regulator->reg_rselect == NO_GPIO) > @@ -425,7 +425,7 @@ static const struct regulator_ops da9055_ldo_ops = { > }, > } > > -static struct da9055_regulator_info da9055_regulator_info[] = { > +static const struct da9055_regulator_info da9055_regulator_info[] = { > DA9055_BUCK(BUCK1, 25, 725, 2075, 6, 9, 0xc, 2), > DA9055_BUCK(BUCK2, 25, 925, 2500, 6, 0, 3, 0), > DA9055_LDO(LDO1, 50, 900, 3300, 6, 2), > @@ -445,7 +445,7 @@ static int da9055_gpio_init(struct da9055_regulator > *regulator, > struct regulator_config *config, > struct da9055_pdata *pdata, int id) > { > - struct da9055_regulator_info *info = regulator->info; > + const struct da9055_regulator_info *info = regulator->info; > int ret = 0; > > if (!pdata) > @@ -521,9 +521,9 @@ static irqreturn_t da9055_ldo5_6_oc_irq(int irq, void > *data) > return IRQ_HANDLED; > } > > -static inline struct da9055_regulator_info *find_regulator_info(int id) > +static inline const struct da9055_regulator_info *find_regulator_info(int id) > { > - struct da9055_regulator_info *info; > + const struct da9055_regulator_info *info; > int i; > > for (i = 0; i < ARRAY_SIZE(da9055_regulator_info); i++) { > > _______________________________________________ Cocci mailing list [email protected] https://systeme.lip6.fr/mailman/listinfo/cocci
