1. 15 Feb, 2023 9 commits
  2. 14 Feb, 2023 25 commits
  3. 13 Feb, 2023 6 commits
    • David S. Miller's avatar
      Merge branch 'ksz9477-eee-support' · 9b0bf4f7
      David S. Miller authored
      Oleksij Rempel says:
      
      ====================
      net: add EEE support for KSZ9477 switch family
      
      changes v8:
      - fix comment for linkmode_to_mii_eee_cap1_t() function
      - add Acked-by: Arun Ramadoss <arun.ramadoss@microchip.com>
      - add Reviewed-by: Alexander Duyck <alexanderduyck@fb.com>
      
      changes v7:
      - update documentation for genphy_c45_eee_is_active()
      - address review comments on "net: dsa: microchip: enable EEE support"
        patch
      
      changes v6:
      - split patch set and send only first 9 patches
      - Add Reviewed-by: Andrew Lunn <andrew@lunn.ch>
      - use 0xffff instead of GENMASK
      - Document @supported_eee
      - use "()" with function name in comments
      
      changes v5:
      - spell fixes
      - move part of genphy_c45_read_eee_abilities() to
        genphy_c45_read_eee_cap1()
      - validate MDIO_PCS_EEE_ABLE register against 0xffff val.
      - rename *eee_100_10000* to *eee_cap1*
      - use linkmode_intersects(phydev->supported, PHY_EEE_CAP1_FEATURES)
        instead of !linkmode_empty()
      - add documentation to linkmode/register helpers
      
      changes v4:
      - remove following helpers:
        mmd_eee_cap_to_ethtool_sup_t
        mmd_eee_adv_to_ethtool_adv_t
        ethtool_adv_to_mmd_eee_adv_t
        and port drivers from this helpers to linkmode helpers.
      - rebase against latest net-next
      - port phy_init_eee() to genphy_c45_eee_is_active()
      
      changes v3:
      - rework some parts of EEE infrastructure and move it to c45 code.
      - add supported_eee storage and start using it in EEE code and by the
        micrel driver.
      - add EEE support for ar8035 PHY
      - add SmartEEE support to FEC i.MX series.
      
      changes v2:
      - use phydev->supported instead of reading MII_BMSR regiaster
      - fix @get_eee > @set_eee
      
      With this patch series we provide EEE control for KSZ9477 family of
      switches and
      AR8035 with i.MX6 configuration.
      According to my tests, on a system with KSZ8563 switch and 100Mbit idle
      link,
      we consume 0,192W less power per port if EEE is enabled.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9b0bf4f7
    • Oleksij Rempel's avatar
      net: phy: start using genphy_c45_ethtool_get/set_eee() · 8b68710a
      Oleksij Rempel authored
      All preparations are done. Now we can start using new functions and remove
      the old code.
      Signed-off-by: default avatarOleksij Rempel <o.rempel@pengutronix.de>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8b68710a
    • Oleksij Rempel's avatar
      net: phy: migrate phy_init_eee() to genphy_c45_eee_is_active() · 6340f9fd
      Oleksij Rempel authored
      Reduce code duplicated by migrating phy_init_eee() to
      genphy_c45_eee_is_active().
      Signed-off-by: default avatarOleksij Rempel <o.rempel@pengutronix.de>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6340f9fd
    • Oleksij Rempel's avatar
      net: phy: c45: migrate to genphy_c45_write_eee_adv() · 5827b168
      Oleksij Rempel authored
      Migrate from genphy_config_eee_advert() to genphy_c45_write_eee_adv().
      
      It should work as before except write operation to the EEE adv registers
      will be done only if some EEE abilities was detected.
      
      If some driver will have a regression, related driver should provide own
      .get_features callback. See micrel.c:ksz9477_get_features() as example.
      Signed-off-by: default avatarOleksij Rempel <o.rempel@pengutronix.de>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5827b168
    • Oleksij Rempel's avatar
      net: phy: c22: migrate to genphy_c45_write_eee_adv() · 9b01c885
      Oleksij Rempel authored
      Migrate from genphy_config_eee_advert() to genphy_c45_write_eee_adv().
      
      It should work as before except write operation to the EEE adv registers
      will be done only if some EEE abilities was detected.
      
      If some driver will have a regression, related driver should provide own
      .get_features callback. See micrel.c:ksz9477_get_features() as example.
      Signed-off-by: default avatarOleksij Rempel <o.rempel@pengutronix.de>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9b01c885
    • Oleksij Rempel's avatar
      net: phy: add genphy_c45_ethtool_get/set_eee() support · 022c3f87
      Oleksij Rempel authored
      Add replacement for phy_ethtool_get/set_eee() functions.
      
      Current phy_ethtool_get/set_eee() implementation is great and it is
      possible to make it even better:
      - this functionality is for devices implementing parts of IEEE 802.3
        specification beyond Clause 22. The better place for this code is
        phy-c45.c
      - currently it is able to do read/write operations on PHYs with
        different abilities to not existing registers. It is better to
        use stored supported_eee abilities to avoid false read/write
        operations.
      - the eee_active detection will provide wrong results on not supported
        link modes. It is better to validate speed/duplex properties against
        supported EEE link modes.
      - it is able to support only limited amount of link modes. We have more
        EEE link modes...
      
      By refactoring this code I address most of this point except of the last
      one. Adding additional EEE link modes will need more work.
      Signed-off-by: default avatarOleksij Rempel <o.rempel@pengutronix.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      022c3f87