Commit 354bf751 authored by Uwe Kleine-König's avatar Uwe Kleine-König

pwm: sti: Drop member from driver data that only carries a constant

The .regfield member of struct sti_pwm_compat_data only holds a pointer
to the global array sti_pwm_regfields. Replace the few usages by
directly using this array and drop the member, saving a bit of memory
and a few pointer dereferences.

Link: https://lore.kernel.org/r/7ddb76ef49fd84a07713b46c65374cb51f3b4ac0.1710068192.git.u.kleine-koenig@pengutronix.deSigned-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
parent 3025c9c6
...@@ -74,7 +74,6 @@ struct sti_cpt_ddata { ...@@ -74,7 +74,6 @@ struct sti_cpt_ddata {
}; };
struct sti_pwm_compat_data { struct sti_pwm_compat_data {
const struct reg_field *reg_fields;
unsigned int pwm_num_devs; unsigned int pwm_num_devs;
unsigned int cpt_num_devs; unsigned int cpt_num_devs;
unsigned int max_pwm_cnt; unsigned int max_pwm_cnt;
...@@ -505,38 +504,34 @@ static irqreturn_t sti_pwm_interrupt(int irq, void *data) ...@@ -505,38 +504,34 @@ static irqreturn_t sti_pwm_interrupt(int irq, void *data)
static int sti_pwm_probe_regmap(struct sti_pwm_chip *pc) static int sti_pwm_probe_regmap(struct sti_pwm_chip *pc)
{ {
struct device *dev = pc->dev; struct device *dev = pc->dev;
const struct reg_field *reg_fields;
struct sti_pwm_compat_data *cdata = pc->cdata;
reg_fields = cdata->reg_fields;
pc->prescale_low = devm_regmap_field_alloc(dev, pc->regmap, pc->prescale_low = devm_regmap_field_alloc(dev, pc->regmap,
reg_fields[PWMCLK_PRESCALE_LOW]); sti_pwm_regfields[PWMCLK_PRESCALE_LOW]);
if (IS_ERR(pc->prescale_low)) if (IS_ERR(pc->prescale_low))
return PTR_ERR(pc->prescale_low); return PTR_ERR(pc->prescale_low);
pc->prescale_high = devm_regmap_field_alloc(dev, pc->regmap, pc->prescale_high = devm_regmap_field_alloc(dev, pc->regmap,
reg_fields[PWMCLK_PRESCALE_HIGH]); sti_pwm_regfields[PWMCLK_PRESCALE_HIGH]);
if (IS_ERR(pc->prescale_high)) if (IS_ERR(pc->prescale_high))
return PTR_ERR(pc->prescale_high); return PTR_ERR(pc->prescale_high);
pc->pwm_out_en = devm_regmap_field_alloc(dev, pc->regmap, pc->pwm_out_en = devm_regmap_field_alloc(dev, pc->regmap,
reg_fields[PWM_OUT_EN]); sti_pwm_regfields[PWM_OUT_EN]);
if (IS_ERR(pc->pwm_out_en)) if (IS_ERR(pc->pwm_out_en))
return PTR_ERR(pc->pwm_out_en); return PTR_ERR(pc->pwm_out_en);
pc->pwm_cpt_en = devm_regmap_field_alloc(dev, pc->regmap, pc->pwm_cpt_en = devm_regmap_field_alloc(dev, pc->regmap,
reg_fields[PWM_CPT_EN]); sti_pwm_regfields[PWM_CPT_EN]);
if (IS_ERR(pc->pwm_cpt_en)) if (IS_ERR(pc->pwm_cpt_en))
return PTR_ERR(pc->pwm_cpt_en); return PTR_ERR(pc->pwm_cpt_en);
pc->pwm_cpt_int_en = devm_regmap_field_alloc(dev, pc->regmap, pc->pwm_cpt_int_en = devm_regmap_field_alloc(dev, pc->regmap,
reg_fields[PWM_CPT_INT_EN]); sti_pwm_regfields[PWM_CPT_INT_EN]);
if (IS_ERR(pc->pwm_cpt_int_en)) if (IS_ERR(pc->pwm_cpt_int_en))
return PTR_ERR(pc->pwm_cpt_int_en); return PTR_ERR(pc->pwm_cpt_int_en);
pc->pwm_cpt_int_stat = devm_regmap_field_alloc(dev, pc->regmap, pc->pwm_cpt_int_stat = devm_regmap_field_alloc(dev, pc->regmap,
reg_fields[PWM_CPT_INT_STAT]); sti_pwm_regfields[PWM_CPT_INT_STAT]);
if (PTR_ERR_OR_ZERO(pc->pwm_cpt_int_stat)) if (PTR_ERR_OR_ZERO(pc->pwm_cpt_int_stat))
return PTR_ERR(pc->pwm_cpt_int_stat); return PTR_ERR(pc->pwm_cpt_int_stat);
...@@ -605,7 +600,6 @@ static int sti_pwm_probe(struct platform_device *pdev) ...@@ -605,7 +600,6 @@ static int sti_pwm_probe(struct platform_device *pdev)
* Setup PWM data with default values: some values could be replaced * Setup PWM data with default values: some values could be replaced
* with specific ones provided from Device Tree. * with specific ones provided from Device Tree.
*/ */
cdata->reg_fields = sti_pwm_regfields;
cdata->max_prescale = 0xff; cdata->max_prescale = 0xff;
cdata->max_pwm_cnt = 255; cdata->max_pwm_cnt = 255;
cdata->pwm_num_devs = pwm_num_devs; cdata->pwm_num_devs = pwm_num_devs;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment