• Vivien Didelot's avatar
    net: dsa: set slave MII bus PHY mask · 24df8986
    Vivien Didelot authored
    When registering a mdio bus, Linux assumes than every port has a PHY and tries
    to scan it. If a switch port has no PHY registered, DSA will fail to register
    the slave MII bus. To fix this, set the slave MII bus PHY mask to the switch
    PHYs mask.
    
    As an example, if we use a Marvell MV88E6352 (which is a 7-port switch with no
    registered PHYs for port 5 and port 6), with the following declared names:
    
    	static struct dsa_chip_data switch_cdata = {
    		[...]
    		.port_names[0] = "sw0",
    		.port_names[1] = "sw1",
    		.port_names[2] = "sw2",
    		.port_names[3] = "sw3",
    		.port_names[4] = "sw4",
    		.port_names[5] = "cpu",
    	};
    
    DSA will fail to create the switch instance. With the PHY mask set for the
    slave MII bus, only the PHY for ports 0-4 will be scanned and the instance will
    be successfully created.
    Signed-off-by: default avatarVivien Didelot <vivien.didelot@savoirfairelinux.com>
    Tested-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
    Acked-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    24df8986
slave.c 16.1 KB