1. 28 2月, 2022 1 次提交
  2. 23 2月, 2022 1 次提交
  3. 20 2月, 2022 1 次提交
  4. 15 2月, 2022 1 次提交
  5. 08 2月, 2022 1 次提交
  6. 06 2月, 2022 1 次提交
  7. 05 2月, 2022 1 次提交
  8. 01 2月, 2022 1 次提交
  9. 31 1月, 2022 1 次提交
  10. 27 1月, 2022 3 次提交
  11. 24 1月, 2022 1 次提交
    • M
      net: sfp: ignore disabled SFP node · 2148927e
      Marek Behún 提交于
      Commit ce0aa27f ("sfp: add sfp-bus to bridge between network devices
      and sfp cages") added code which finds SFP bus DT node even if the node
      is disabled with status = "disabled". Because of this, when phylink is
      created, it ends with non-null .sfp_bus member, even though the SFP
      module is not probed (because the node is disabled).
      
      We need to ignore disabled SFP bus node.
      
      Fixes: ce0aa27f ("sfp: add sfp-bus to bridge between network devices and sfp cages")
      Signed-off-by: NMarek Behún <kabel@kernel.org>
      Cc: stable@vger.kernel.org # 2203cbf2 ("net: sfp: move fwnode parsing into sfp-bus layer")
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2148927e
  12. 21 1月, 2022 1 次提交
  13. 20 1月, 2022 1 次提交
    • R
      net: phy: broadcom: hook up soft_reset for BCM54616S · d15c7e87
      Robert Hancock 提交于
      A problem was encountered with the Bel-Fuse 1GBT-SFP05 SFP module (which
      is a 1 Gbps copper module operating in SGMII mode with an internal
      BCM54616S PHY device) using the Xilinx AXI Ethernet MAC core, where the
      module would work properly on the initial insertion or boot of the
      device, but after the device was rebooted, the link would either only
      come up at 100 Mbps speeds or go up and down erratically.
      
      I found no meaningful changes in the PHY configuration registers between
      the working and non-working boots, but the status registers seemed to
      have a lot of error indications set on the SERDES side of the device on
      the non-working boot. I suspect the problem is that whatever happens on
      the SGMII link when the device is rebooted and the FPGA logic gets
      reloaded ends up putting the module's onboard PHY into a bad state.
      
      Since commit 6e2d85ec ("net: phy: Stop with excessive soft reset")
      the genphy_soft_reset call is not made automatically by the PHY core
      unless the callback is explicitly specified in the driver structure. For
      most of these Broadcom devices, there is probably a hardware reset that
      gets asserted to reset the PHY during boot, however for SFP modules
      (where the BCM54616S is commonly found) no such reset line exists, so if
      the board keeps the SFP cage powered up across a reboot, it will end up
      with no reset occurring during reboots.
      
      Hook up the genphy_soft_reset callback for BCM54616S to ensure that a
      PHY reset is performed before the device is initialized. This appears to
      fix the issue with erratic operation after a reboot with this SFP
      module.
      
      Fixes: 6e2d85ec ("net: phy: Stop with excessive soft reset")
      Signed-off-by: NRobert Hancock <robert.hancock@calian.com>
      Reviewed-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d15c7e87
  14. 19 1月, 2022 1 次提交
    • C
      net: phy: micrel: use kszphy_suspend()/kszphy_resume for irq aware devices · f1131b9c
      Claudiu Beznea 提交于
      On a setup with KSZ9131 and MACB drivers it happens on suspend path, from
      time to time, that the PHY interrupt arrives after PHY and MACB were
      suspended (PHY via genphy_suspend(), MACB via macb_suspend()). In this
      case the phy_read() at the beginning of kszphy_handle_interrupt() will
      fail (as MACB driver is suspended at this time) leading to phy_error()
      being called and a stack trace being displayed on console. To solve this
      .suspend/.resume functions for all KSZ devices implementing
      .handle_interrupt were replaced with kszphy_suspend()/kszphy_resume()
      which disable/enable interrupt before/after calling
      genphy_suspend()/genphy_resume().
      
      The fix has been adapted for all KSZ devices which implements
      .handle_interrupt but it has been tested only on KSZ9131.
      
      Fixes: 59ca4e58 ("net: phy: micrel: implement generic .handle_interrupt() callback")
      Signed-off-by: NClaudiu Beznea <claudiu.beznea@microchip.com>
      Reviewed-by: NAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f1131b9c
  15. 18 1月, 2022 1 次提交
    • R
      net: sfp: fix high power modules without diagnostic monitoring · 5765cee1
      Russell King (Oracle) 提交于
      Commit 7cfa9c92 ("net: sfp: avoid power switch on address-change
      modules") unintetionally changed the semantics for high power modules
      without the digital diagnostics monitoring. We repeatedly attempt to
      read the power status from the non-existing 0xa2 address in a futile
      hope this failure is temporary:
      
      [    8.856051] sfp sfp-eth3: module NTT              0000000000000000 rev 0000  sn 0000000000000000 dc 160408
      [    8.865843] mvpp2 f4000000.ethernet eth3: switched to inband/1000base-x link mode
      [    8.873469] sfp sfp-eth3: Failed to read EEPROM: -5
      [    8.983251] sfp sfp-eth3: Failed to read EEPROM: -5
      [    9.103250] sfp sfp-eth3: Failed to read EEPROM: -5
      
      We previosuly assumed such modules were powered up in the correct mode,
      continuing without further configuration as long as the required power
      class was supported by the host.
      
      Restore this behaviour, while preserving the intent of subsequent
      patches to avoid the "Address Change Sequence not supported" warning
      if we are not going to be accessing the DDM address.
      
      Fixes: 7cfa9c92 ("net: sfp: avoid power switch on address-change modules")
      Reported-by: N照山周一郎 <teruyama@springboard-inc.jp>
      Tested-by: N照山周一郎 <teruyama@springboard-inc.jp>
      Signed-off-by: NRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5765cee1
  16. 16 1月, 2022 1 次提交
  17. 12 1月, 2022 1 次提交
  18. 06 1月, 2022 2 次提交
  19. 04 1月, 2022 3 次提交
  20. 25 12月, 2021 1 次提交
  21. 24 12月, 2021 1 次提交
  22. 22 12月, 2021 1 次提交
  23. 16 12月, 2021 2 次提交
  24. 14 12月, 2021 1 次提交
    • H
      net_tstamp: add new flag HWTSTAMP_FLAG_BONDED_PHC_INDEX · 9c9211a3
      Hangbin Liu 提交于
      Since commit 94dd016a ("bond: pass get_ts_info and SIOC[SG]HWTSTAMP
      ioctl to active device") the user could get bond active interface's
      PHC index directly. But when there is a failover, the bond active
      interface will change, thus the PHC index is also changed. This may
      break the user's program if they did not update the PHC timely.
      
      This patch adds a new hwtstamp_config flag HWTSTAMP_FLAG_BONDED_PHC_INDEX.
      When the user wants to get the bond active interface's PHC, they need to
      add this flag and be aware the PHC index may be changed.
      
      With the new flag. All flag checks in current drivers are removed. Only
      the checking in net_hwtstamp_validate() is kept.
      Suggested-by: NJakub Kicinski <kuba@kernel.org>
      Signed-off-by: NHangbin Liu <liuhangbin@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9c9211a3
  25. 13 12月, 2021 1 次提交
  26. 10 12月, 2021 2 次提交
  27. 08 12月, 2021 1 次提交
  28. 02 12月, 2021 1 次提交
  29. 25 11月, 2021 2 次提交
    • R
      net: phylink: Force retrigger in case of latched link-fail indicator · dbae3388
      Russell King (Oracle) 提交于
      On mv88e6xxx 1G/2.5G PCS, the SerDes register 4.2001.2 has the following
      description:
        This register bit indicates when link was lost since the last
        read. For the current link status, read this register
        back-to-back.
      
      Thus to get current link state, we need to read the register twice.
      
      But doing that in the link change interrupt handler would lead to
      potentially ignoring link down events, which we really want to avoid.
      
      Thus this needs to be solved in phylink's resolve, by retriggering
      another resolve in the event when PCS reports link down and previous
      link was up, and by re-reading PCS state if the previous link was down.
      
      The wrong value is read when phylink requests change from sgmii to
      2500base-x mode, and link won't come up. This fixes the bug.
      
      Fixes: 9525ae83 ("phylink: add phylink infrastructure")
      Signed-off-by: NRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
      Signed-off-by: NMarek Behún <kabel@kernel.org>
      Signed-off-by: NJakub Kicinski <kuba@kernel.org>
      dbae3388
    • R
      net: phylink: Force link down and retrigger resolve on interface change · 80662f4f
      Russell King (Oracle) 提交于
      On PHY state change the phylink_resolve() function can read stale
      information from the MAC and report incorrect link speed and duplex to
      the kernel message log.
      
      Example with a Marvell 88X3310 PHY connected to a SerDes port on Marvell
      88E6393X switch:
      - PHY driver triggers state change due to PHY interface mode being
        changed from 10gbase-r to 2500base-x due to copper change in speed
        from 10Gbps to 2.5Gbps, but the PHY itself either hasn't yet changed
        its interface to the host, or the interrupt about loss of SerDes link
        hadn't arrived yet (there can be a delay of several milliseconds for
        this), so we still think that the 10gbase-r mode is up
      - phylink_resolve()
        - phylink_mac_pcs_get_state()
          - this fills in speed=10g link=up
        - interface mode is updated to 2500base-x but speed is left at 10Gbps
        - phylink_major_config()
          - interface is changed to 2500base-x
        - phylink_link_up()
          - mv88e6xxx_mac_link_up()
            - .port_set_speed_duplex()
              - speed is set to 10Gbps
          - reports "Link is Up - 10Gbps/Full" to dmesg
      
      Afterwards when the interrupt finally arrives for mv88e6xxx, another
      resolve is forced in which we get the correct speed from
      phylink_mac_pcs_get_state(), but since the interface is not being
      changed anymore, we don't call phylink_major_config() but only
      phylink_mac_config(), which does not set speed/duplex anymore.
      
      To fix this, we need to force the link down and trigger another resolve
      on PHY interface change event.
      
      Fixes: 9525ae83 ("phylink: add phylink infrastructure")
      Signed-off-by: NRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
      Signed-off-by: NMarek Behún <kabel@kernel.org>
      Signed-off-by: NJakub Kicinski <kuba@kernel.org>
      80662f4f
  30. 22 11月, 2021 2 次提交
  31. 20 11月, 2021 1 次提交