• Florian Fainelli's avatar
    net: systemport: Refactor bcm_sysport_set_features() · 10b476c5
    Florian Fainelli authored
    In preparation for unconditionally enabling TX and RX checksum offloads,
    refactor bcm_sysport_set_features() a bit such that
    __netdev_update_features() during register_netdev() can make sure that
    features are correctly programmed during network device registration.
    
    Since we can now be called during register_netdev() with clocks gated,
    we need to temporarily turn them on/off in order to have a successful
    register programming.
    
    We also move the CRC forward setting read into
    bcm_sysport_set_features() since priv->crc_fwd matters while turning on
    RX checksum offload, that way we are guaranteed they are in sync in case
    we ever add support for NETIF_F_RXFCS at some point in the future.
    Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    10b476c5
bcmsysport.c 73.6 KB