forked from Minki/linux
net: dsa: mv88e6171: Add support for reading the temperature
This chip also has a temperature sensor which can be read using the common code. In order to use it, add the needed mutex protection for accessing registers via the shared code. Signed-off-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
eaa237657b
commit
4dd38cdb42
@ -316,6 +316,8 @@ static int mv88e6171_setup(struct dsa_switch *ds)
|
||||
return ret;
|
||||
}
|
||||
|
||||
mutex_init(&ps->phy_mutex);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -329,18 +331,28 @@ static int mv88e6171_port_to_phy_addr(int port)
|
||||
static int
|
||||
mv88e6171_phy_read(struct dsa_switch *ds, int port, int regnum)
|
||||
{
|
||||
struct mv88e6xxx_priv_state *ps = ds_to_priv(ds);
|
||||
int addr = mv88e6171_port_to_phy_addr(port);
|
||||
int ret;
|
||||
|
||||
return mv88e6xxx_phy_read(ds, addr, regnum);
|
||||
mutex_lock(&ps->phy_mutex);
|
||||
ret = mv88e6xxx_phy_read(ds, addr, regnum);
|
||||
mutex_unlock(&ps->phy_mutex);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int
|
||||
mv88e6171_phy_write(struct dsa_switch *ds,
|
||||
int port, int regnum, u16 val)
|
||||
{
|
||||
struct mv88e6xxx_priv_state *ps = ds_to_priv(ds);
|
||||
int addr = mv88e6171_port_to_phy_addr(port);
|
||||
int ret;
|
||||
|
||||
return mv88e6xxx_phy_write(ds, addr, regnum, val);
|
||||
mutex_lock(&ps->phy_mutex);
|
||||
ret = mv88e6xxx_phy_write(ds, addr, regnum, val);
|
||||
mutex_unlock(&ps->phy_mutex);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static struct mv88e6xxx_hw_stat mv88e6171_hw_stats[] = {
|
||||
@ -408,6 +420,9 @@ struct dsa_switch_driver mv88e6171_switch_driver = {
|
||||
.get_strings = mv88e6171_get_strings,
|
||||
.get_ethtool_stats = mv88e6171_get_ethtool_stats,
|
||||
.get_sset_count = mv88e6171_get_sset_count,
|
||||
#ifdef CONFIG_NET_DSA_HWMON
|
||||
.get_temp = mv88e6xxx_get_temp,
|
||||
#endif
|
||||
};
|
||||
|
||||
MODULE_ALIAS("platform:mv88e6171");
|
||||
|
Loading…
Reference in New Issue
Block a user