• R
    net: fix auto-loading of Marvell DSA driver · 1b8f8694
    Russell King 提交于
    Auto-loading of the Marvell DSA driver has stopped working with recent
    kernels.  This seems to be due to the change of binding for DSA devices,
    moving them from the platform bus to the MDIO bus.
    
    In order for module auto-loading to work, we need to provide a MODALIAS
    string in the uevent file for the device.  However, the device core does
    not automatically provide this, and needs each bus_type to implement a
    uevent method to generate these strings.  The MDIO bus does not provide
    such a method, so no MODALIAS string is provided:
    
    .# cat /sys/bus/mdio_bus/devices/f1072004.mdio-mii\:04/uevent
    DRIVER=mv88e6085
    OF_NAME=switch
    OF_FULLNAME=/soc/internal-regs/mdio@72004/switch@4
    OF_COMPATIBLE_0=marvell,mv88e6085
    OF_COMPATIBLE_N=1
    
    In the case of OF-based devices, the solution is easy -
    of_device_uevent_modalias() does the work for us.  After this is done,
    the uevent file looks like this:
    
    .# cat /sys/bus/mdio_bus/devices/f1072004.mdio-mii\:04/uevent
    DRIVER=mv88e6085
    OF_NAME=switch
    OF_FULLNAME=/soc/internal-regs/mdio@72004/switch@4
    OF_COMPATIBLE_0=marvell,mv88e6085
    OF_COMPATIBLE_N=1
    MODALIAS=of:NswitchT<NULL>Cmarvell,mv88e6085
    
    which results in auto-loading of the Marvell DSA driver on Clearfog
    platforms.
    
    Fixes: c0405563 ("ARM: dts: armada-388-clearfog: Utilize new DSA binding")
    Signed-off-by: NRussell King <rmk+kernel@armlinux.org.uk>
    Reviewed-by: NAndrew Lunn <andrew@lunn.ch>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    1b8f8694
mdio_bus.c 18.0 KB