mirror of https://github.com/torvalds/linux.git
net: dsa: mt7530: Constify struct regmap_config
'struct regmap_config' are not modified in these drivers. They be
statically defined instead of allocated and populated at run-time.
The main benefits are:
- it saves some memory at runtime
- the structures can be declared as 'const', which is always better for
structures that hold some function pointers
- the code is less verbose
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Reviewed-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
8c2e602225
commit
9eb73f92a0
|
|
@ -136,10 +136,17 @@ static const struct of_device_id mt7530_of_match[] = {
|
||||||
};
|
};
|
||||||
MODULE_DEVICE_TABLE(of, mt7530_of_match);
|
MODULE_DEVICE_TABLE(of, mt7530_of_match);
|
||||||
|
|
||||||
|
static const struct regmap_config regmap_config = {
|
||||||
|
.reg_bits = 16,
|
||||||
|
.val_bits = 32,
|
||||||
|
.reg_stride = 4,
|
||||||
|
.max_register = MT7530_CREV,
|
||||||
|
.disable_locking = true,
|
||||||
|
};
|
||||||
|
|
||||||
static int
|
static int
|
||||||
mt7530_probe(struct mdio_device *mdiodev)
|
mt7530_probe(struct mdio_device *mdiodev)
|
||||||
{
|
{
|
||||||
static struct regmap_config *regmap_config;
|
|
||||||
struct mt7530_priv *priv;
|
struct mt7530_priv *priv;
|
||||||
struct device_node *dn;
|
struct device_node *dn;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
@ -193,18 +200,8 @@ mt7530_probe(struct mdio_device *mdiodev)
|
||||||
return PTR_ERR(priv->io_pwr);
|
return PTR_ERR(priv->io_pwr);
|
||||||
}
|
}
|
||||||
|
|
||||||
regmap_config = devm_kzalloc(&mdiodev->dev, sizeof(*regmap_config),
|
|
||||||
GFP_KERNEL);
|
|
||||||
if (!regmap_config)
|
|
||||||
return -ENOMEM;
|
|
||||||
|
|
||||||
regmap_config->reg_bits = 16;
|
|
||||||
regmap_config->val_bits = 32;
|
|
||||||
regmap_config->reg_stride = 4;
|
|
||||||
regmap_config->max_register = MT7530_CREV;
|
|
||||||
regmap_config->disable_locking = true;
|
|
||||||
priv->regmap = devm_regmap_init(priv->dev, &mt7530_regmap_bus, priv,
|
priv->regmap = devm_regmap_init(priv->dev, &mt7530_regmap_bus, priv,
|
||||||
regmap_config);
|
®map_config);
|
||||||
if (IS_ERR(priv->regmap))
|
if (IS_ERR(priv->regmap))
|
||||||
return PTR_ERR(priv->regmap);
|
return PTR_ERR(priv->regmap);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,10 +18,17 @@ static const struct of_device_id mt7988_of_match[] = {
|
||||||
};
|
};
|
||||||
MODULE_DEVICE_TABLE(of, mt7988_of_match);
|
MODULE_DEVICE_TABLE(of, mt7988_of_match);
|
||||||
|
|
||||||
|
static const struct regmap_config sw_regmap_config = {
|
||||||
|
.name = "switch",
|
||||||
|
.reg_bits = 16,
|
||||||
|
.val_bits = 32,
|
||||||
|
.reg_stride = 4,
|
||||||
|
.max_register = MT7530_CREV,
|
||||||
|
};
|
||||||
|
|
||||||
static int
|
static int
|
||||||
mt7988_probe(struct platform_device *pdev)
|
mt7988_probe(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
static struct regmap_config *sw_regmap_config;
|
|
||||||
struct mt7530_priv *priv;
|
struct mt7530_priv *priv;
|
||||||
void __iomem *base_addr;
|
void __iomem *base_addr;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
@ -49,16 +56,8 @@ mt7988_probe(struct platform_device *pdev)
|
||||||
return -ENXIO;
|
return -ENXIO;
|
||||||
}
|
}
|
||||||
|
|
||||||
sw_regmap_config = devm_kzalloc(&pdev->dev, sizeof(*sw_regmap_config), GFP_KERNEL);
|
priv->regmap = devm_regmap_init_mmio(&pdev->dev, base_addr,
|
||||||
if (!sw_regmap_config)
|
&sw_regmap_config);
|
||||||
return -ENOMEM;
|
|
||||||
|
|
||||||
sw_regmap_config->name = "switch";
|
|
||||||
sw_regmap_config->reg_bits = 16;
|
|
||||||
sw_regmap_config->val_bits = 32;
|
|
||||||
sw_regmap_config->reg_stride = 4;
|
|
||||||
sw_regmap_config->max_register = MT7530_CREV;
|
|
||||||
priv->regmap = devm_regmap_init_mmio(&pdev->dev, base_addr, sw_regmap_config);
|
|
||||||
if (IS_ERR(priv->regmap))
|
if (IS_ERR(priv->regmap))
|
||||||
return PTR_ERR(priv->regmap);
|
return PTR_ERR(priv->regmap);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue