On Fri, Oct 29, 2021 at 08:29:49AM +0530, Prasanna Vengateshan wrote: > On Thu, 2021-10-28 at 18:05 +0100, Russell King (Oracle) wrote: > > Hi, > > > > I've just sent "net: dsa: populate supported_interfaces member" > > which adds a hook to allow DSA to populate the newly introduced > > supported_interfaces member of phylink_config. Once this patch is > > merged, it would be great to see any new drivers setting this > > member. > > > > Essentially, the phylink_get_interfaces method is called with the > > DSA switch and port number, and a pointer to the supported_interfaces > > member - which is a bitmap of PHY_INTERFACE_MODEs that are supported > > by this port. > > > > When you have set any bit in the supported interfaces, phylink's > > behaviour when calling your lan937x_phylink_validate changes - it will > > no longer call it with PHY_INTERFACE_MODE_NA, but will instead do a > > bitwalk over the bitmap, and call it for each supported interface type > > instead. > > > > When phylink has a specific interface mode, it will continue to make a > > single call - but only if the interface mode is indicated as supported > > in the supported interfaces bitmap. > > > > Please keep an eye on "net: dsa: populate supported_interfaces member" > > and if you need to respin this series after that patch has been merged, > > please update in regards of this. > > Sure, i will watch out for this series and add to my new driver. Do the > new drivers need to still return all supported modes if state->interface > is set to %PHY_INTERFACE_MODE_NA as per phylink documentation? I > understand that supported_interfaces will not be empty if > phylink_get_interfaces() is handled. But i just wanted to double check > with you. The phylink documentation has already been updated: * When @config->supported_interfaces has been set, phylink will iterate * over the supported interfaces to determine the full capability of the * MAC. The validation function must not print errors if @state->interface * is set to an unexpected value. * * When @config->supported_interfaces is empty, phylink will call this * function with @state->interface set to %PHY_INTERFACE_MODE_NA, and * expects the MAC driver to return all supported link modes. As I state in my initial reply, ->validate will never be called with PHY_INTERFACE_MODE_NA if supported_interfaces is populated. -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!