• Ioana Ciornei's avatar
    net: phylink: Add struct phylink_config to PHYLINK API · 44cc27e4
    Ioana Ciornei authored
    The phylink_config structure will encapsulate a pointer to a struct
    device and the operation type requested for this instance of PHYLINK.
    This patch does not make any functional changes, it just transitions the
    PHYLINK internals and all its users to the new API.
    
    A pointer to a phylink_config structure will be passed to
    phylink_create() instead of the net_device directly. Also, the same
    phylink_config pointer will be passed back to all phylink_mac_ops
    callbacks instead of the net_device. Using this mechanism, a PHYLINK
    user can get the original net_device using a structure such as
    'to_net_dev(config->dev)' or directly the structure containing the
    phylink_config using a container_of call.
    
    At the moment, only the PHYLINK_NETDEV is defined as a valid operation
    type for PHYLINK. In this mode, a valid reference to a struct device
    linked to the original net_device should be passed to PHYLINK through
    the phylink_config structure.
    
    This API changes is mainly driven by the necessity of adding a new
    operation type in PHYLINK that disconnects the phy_device from the
    net_device and also works when the net_device is lacking.
    Signed-off-by: default avatarIoana Ciornei <ioana.ciornei@nxp.com>
    Signed-off-by: default avatarVladimir Oltean <olteanv@gmail.com>
    Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
    Reviewed-by: default avatarMaxime Chevallier <maxime.chevallier@bootlin.com>
    Tested-by: default avatarMaxime Chevallier <maxime.chevallier@bootlin.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    44cc27e4
phylink.c 46.5 KB