On 19/02/2019 01:03, Andrew Lunn wrote:
diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c
index 54a5b660640a..bb46ebbb2bb8 100644
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
@@ -2399,7 +2399,7 @@ static int mv88e6xxx_setup(struct dsa_switch *ds)
int i;
chip->ds = ds;
- ds->slave_mii_bus = mv88e6xxx_default_mdio_bus(chip);
+ ds->slave_mii_bus = NULL;
mutex_lock(&chip->reg_lock);
Is that right?
Hi Rodolfo
Humm, that needs testing. There are two used combinations you need to
test:
No MDIO node in device tree, e.g.
arch/arm/boot/dts/kirkwood-dir665.dts
MDIO node in device tree, e.g:
arch/arm/boot/dts/vf610-zii-dev-rev-b.dts
I'm sorry but I haven't such boards... :'(
There is a third combination which will appear soon. There is only the
external mdio bus in device tree:
port@9 {
reg = <9>;
label = "eth_cu_1000_2";
phy-handle = <&phy9>;
phy-mode = "sgmii";
managed = "in-band-status";
};
};
mdio1 {
compatible = "marvell,mv88e6xxx-mdio-external";
#address-cells = <1>;
#size-cells = <0>;
phy9: phy9@0 {
compatible =
"ethernet-phy-ieee802.3-c45";
pinctrl-0 = <&pinctrl_gpio_phy9>;
pinctrl-names = "default";
interrupt-parent = <&gpio2>;
interrupts = <30 IRQ_TYPE_LEVEL_LOW>;
reg = <0>;
};
};
Here port 9 uses the external MDIO bus and all the other ports
implicitly make use of the internal MDIO bus.
Mmm... maybe should code into drivers/net/dsa/mv88e6xxx use private data to hold
used mdio busses instead of ds->slave_mii_bus pointer?
Ciao,
Rodolfo
--
GNU/Linux Solutions e-mail: giome...@enneenne.com
Linux Device Driver giome...@linux.it
Embedded Systems phone: +39 349 2432127
UNIX programming skype: rodolfo.giometti