Commit 1bd099c4 authored by Daniel Golle's avatar Daniel Golle Committed by David S. Miller

net: dsa: mt7530: use unlocked regmap accessors

Instead of wrapping the locked register accessor functions, use the
unlocked variants and add locking wrapper functions to let regmap
handle the locking.

This is a preparation towards being able to always use regmap to
access switch registers instead of open-coded accessor functions.
Signed-off-by: default avatarDaniel Golle <daniel@makrotopia.org>
Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 9ecc0016
...@@ -2900,7 +2900,7 @@ static int mt7530_regmap_read(void *context, unsigned int reg, unsigned int *val ...@@ -2900,7 +2900,7 @@ static int mt7530_regmap_read(void *context, unsigned int reg, unsigned int *val
{ {
struct mt7530_priv *priv = context; struct mt7530_priv *priv = context;
*val = mt7530_read(priv, reg); *val = mt7530_mii_read(priv, reg);
return 0; return 0;
}; };
...@@ -2908,23 +2908,25 @@ static int mt7530_regmap_write(void *context, unsigned int reg, unsigned int val ...@@ -2908,23 +2908,25 @@ static int mt7530_regmap_write(void *context, unsigned int reg, unsigned int val
{ {
struct mt7530_priv *priv = context; struct mt7530_priv *priv = context;
mt7530_write(priv, reg, val); mt7530_mii_write(priv, reg, val);
return 0; return 0;
}; };
static int mt7530_regmap_update_bits(void *context, unsigned int reg, static void
unsigned int mask, unsigned int val) mt7530_mdio_regmap_lock(void *mdio_lock)
{ {
struct mt7530_priv *priv = context; mutex_lock_nested(mdio_lock, MDIO_MUTEX_NESTED);
}
mt7530_rmw(priv, reg, mask, val); static void
return 0; mt7530_mdio_regmap_unlock(void *mdio_lock)
}; {
mutex_unlock(mdio_lock);
}
static const struct regmap_bus mt7531_regmap_bus = { static const struct regmap_bus mt7531_regmap_bus = {
.reg_write = mt7530_regmap_write, .reg_write = mt7530_regmap_write,
.reg_read = mt7530_regmap_read, .reg_read = mt7530_regmap_read,
.reg_update_bits = mt7530_regmap_update_bits,
}; };
static int static int
...@@ -2950,6 +2952,9 @@ mt7531_create_sgmii(struct mt7530_priv *priv) ...@@ -2950,6 +2952,9 @@ mt7531_create_sgmii(struct mt7530_priv *priv)
mt7531_pcs_config[i]->reg_stride = 4; mt7531_pcs_config[i]->reg_stride = 4;
mt7531_pcs_config[i]->reg_base = MT7531_SGMII_REG_BASE(5 + i); mt7531_pcs_config[i]->reg_base = MT7531_SGMII_REG_BASE(5 + i);
mt7531_pcs_config[i]->max_register = 0x17c; mt7531_pcs_config[i]->max_register = 0x17c;
mt7531_pcs_config[i]->lock = mt7530_mdio_regmap_lock;
mt7531_pcs_config[i]->unlock = mt7530_mdio_regmap_unlock;
mt7531_pcs_config[i]->lock_arg = &priv->bus->mdio_lock;
regmap = devm_regmap_init(priv->dev, regmap = devm_regmap_init(priv->dev,
&mt7531_regmap_bus, priv, &mt7531_regmap_bus, priv,
......
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