mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-13 15:03:58 +03:00
net: mv88e6xxx: fix missing SMI address initialization
The mv88e6xxx driver does not currently initialize the smi_addr field, but instead keeps the default zero value. This leads to driver being unusable on devices where the switch is not on address zero of the mdio bus. Fix this problem by reading the SMI address from device tree. Signed-off-by: Marek Mojík <marek.mojik@nic.cz> Reviewed-by: Marek Behún <kabel@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de>
This commit is contained in:
committed by
Stefan Roese
parent
773cb2bca7
commit
faf96b20ee
@@ -745,6 +745,7 @@ static int mv88e6xxx_probe(struct udevice *dev)
|
||||
{
|
||||
struct dsa_pdata *dsa_pdata = dev_get_uclass_plat(dev);
|
||||
struct mv88e6xxx_priv *priv = dev_get_priv(dev);
|
||||
fdt_addr_t smi_addr;
|
||||
int val, ret;
|
||||
|
||||
if (ofnode_valid(dev_ofnode(dev)) &&
|
||||
@@ -753,6 +754,13 @@ static int mv88e6xxx_probe(struct udevice *dev)
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
smi_addr = dev_read_addr(dev);
|
||||
if (smi_addr == FDT_ADDR_T_NONE) {
|
||||
dev_err(dev, "Missing SMI address\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
priv->smi_addr = smi_addr;
|
||||
|
||||
/* probe internal mdio bus */
|
||||
ret = mv88e6xxx_probe_mdio(dev);
|
||||
if (ret)
|
||||
|
||||
Reference in New Issue
Block a user