forked from luck/tmp_suning_uos_patched
net: dsa: b53: Add BCM7445 quirk
The Broadcom BCM7445 STB chip has an issued in its revision D0 which was previously worked around in drivers/net/dsa/bcm_sf2.c where we may end-up double programming the integrated BCM7445 switch (bcm_sf2) and an external Broadcom switch such as BCM53125, since these are mostly register compatible. Add a small quirk which just defers probing until we are sitting on the slave DSA MDIO bus, which will allow us to intercept reads/writes and funnel them through the SF2 internal MDIO master (which happens to disconnect its pseudo PHY). Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
967dd82ffc
commit
0830c9802e
|
@ -316,6 +316,17 @@ static int b53_mdio_probe(struct mdio_device *mdiodev)
|
|||
return -ENODEV;
|
||||
}
|
||||
|
||||
/* First probe will come from SWITCH_MDIO controller on the 7445D0
|
||||
* switch, which will conflict with the 7445 integrated switch
|
||||
* pseudo-phy (we end-up programming both). In that case, we return
|
||||
* -EPROBE_DEFER for the first time we get here, and wait until we come
|
||||
* back with the slave MDIO bus which has the correct indirection
|
||||
* layer setup
|
||||
*/
|
||||
if (of_machine_is_compatible("brcm,bcm7445d0") &&
|
||||
strcmp(mdiodev->bus->name, "sf2 slave mii"))
|
||||
return -EPROBE_DEFER;
|
||||
|
||||
dev = b53_switch_alloc(&mdiodev->dev, &b53_mdio_ops, mdiodev->bus);
|
||||
if (!dev)
|
||||
return -ENOMEM;
|
||||
|
|
Loading…
Reference in New Issue
Block a user