1. 22 3月, 2019 1 次提交
  2. 25 2月, 2019 1 次提交
  3. 16 2月, 2019 1 次提交
  4. 14 2月, 2019 1 次提交
  5. 09 2月, 2019 3 次提交
  6. 28 12月, 2018 1 次提交
  7. 07 11月, 2018 3 次提交
    • F
      net: dsa: bcm_sf2: Turn on PHY to allow successful registration · c04a17d2
      Florian Fainelli 提交于
      We are binding to the PHY using the SF2 slave MDIO bus that we create,
      binding involves reading the PHY's MII_PHYSID1/2 which won't be possible
      if the PHY is turned off. Temporarily turn it on/off for the bus probing
      to succeeed. This fixes unbind/bind problems where the port connecting
      to that PHY would be in error since it could not connect to it.
      Signed-off-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c04a17d2
    • F
      net: dsa: bcm_sf2: Restore CFP rules during system resume · 1c0130f0
      Florian Fainelli 提交于
      The hardware can lose its context during system suspend, and depending
      on the switch generation (7445 vs. 7278), while the rules are still
      there, they will have their valid bit cleared (because that's the
      fastest way for the HW to reset things). Just make sure we re-apply them
      coming back from resume. The 7445 switch is an older version of the core
      that has some quirky RAM technology requiring a delete then re-inser to
      guarantee the RAM entries are properly latched.
      Signed-off-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1c0130f0
    • F
      net: dsa: bcm_sf2: Keep copy of inserted rules · ae7a5aff
      Florian Fainelli 提交于
      We tried hard to use the hardware as a storage area, which made things
      needlessly complex in that we had to both marshall and unmarshall the
      ethtool_rx_flow_spec into what the CFP hardware understands but it did
      not require any driver level allocations, so that was nice.
      
      Keep a copy of the ethtool_rx_flow_spec rule we want to insert, and also
      make sure we don't have a duplicate rule already. This greatly speeds up
      the deletion time since we only need to clear the slice's valid bit and
      not perform a full read.
      
      This is a preparatory step for being able to restore rules upon system
      resumption where the hardware loses its context partially or entirely.
      Signed-off-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ae7a5aff
  8. 22 10月, 2018 1 次提交
  9. 12 10月, 2018 2 次提交
    • F
      net: dsa: bcm_sf2: Call setup during switch resume · 54baca09
      Florian Fainelli 提交于
      There is no reason to open code what the switch setup function does, in
      fact, because we just issued a switch reset, we would make all the
      register get their default values, including for instance, having unused
      port be enabled again and wasting power and leading to an inappropriate
      switch core clock being selected.
      
      Fixes: 8cfa9498 ("net: dsa: bcm_sf2: add suspend/resume callbacks")
      Signed-off-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      54baca09
    • F
      net: dsa: bcm_sf2: Fix unbind ordering · bf3b452b
      Florian Fainelli 提交于
      The order in which we release resources is unfortunately leading to bus
      errors while dismantling the port. This is because we set
      priv->wol_ports_mask to 0 to tell bcm_sf2_sw_suspend() that it is now
      permissible to clock gate the switch. Later on, when dsa_slave_destroy()
      comes in from dsa_unregister_switch() and calls
      dsa_switch_ops::port_disable, we perform the same dismantling again, and
      this time we hit registers that are clock gated.
      
      Make sure that dsa_unregister_switch() is the first thing that happens,
      which takes care of releasing all user visible resources, then proceed
      with clock gating hardware. We still need to set priv->wol_ports_mask to
      0 to make sure that an enabled port properly gets disabled in case it
      was previously used as part of Wake-on-LAN.
      
      Fixes: d9338023 ("net: dsa: bcm_sf2: Make it a real platform device driver")
      Signed-off-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      bf3b452b
  10. 11 10月, 2018 2 次提交
    • F
      net: dsa: bcm_sf2: Call setup during switch resume · abd01ba2
      Florian Fainelli 提交于
      There is no reason to open code what the switch setup function does, in
      fact, because we just issued a switch reset, we would make all the
      register get their default values, including for instance, having unused
      port be enabled again and wasting power and leading to an inappropriate
      switch core clock being selected.
      
      Fixes: 8cfa9498 ("net: dsa: bcm_sf2: add suspend/resume callbacks")
      Signed-off-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      abd01ba2
    • F
      net: dsa: bcm_sf2: Fix unbind ordering · 448765e1
      Florian Fainelli 提交于
      The order in which we release resources is unfortunately leading to bus
      errors while dismantling the port. This is because we set
      priv->wol_ports_mask to 0 to tell bcm_sf2_sw_suspend() that it is now
      permissible to clock gate the switch. Later on, when dsa_slave_destroy()
      comes in from dsa_unregister_switch() and calls
      dsa_switch_ops::port_disable, we perform the same dismantling again, and
      this time we hit registers that are clock gated.
      
      Make sure that dsa_unregister_switch() is the first thing that happens,
      which takes care of releasing all user visible resources, then proceed
      with clock gating hardware. We still need to set priv->wol_ports_mask to
      0 to make sure that an enabled port properly gets disabled in case it
      was previously used as part of Wake-on-LAN.
      
      Fixes: d9338023 ("net: dsa: bcm_sf2: Make it a real platform device driver")
      Signed-off-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      448765e1
  11. 17 9月, 2018 1 次提交
  12. 04 8月, 2018 1 次提交
  13. 04 7月, 2018 1 次提交
  14. 17 5月, 2018 1 次提交
  15. 12 5月, 2018 2 次提交
  16. 27 4月, 2018 1 次提交
  17. 15 12月, 2017 1 次提交
  18. 07 12月, 2017 1 次提交
  19. 01 12月, 2017 1 次提交
  20. 24 11月, 2017 1 次提交
  21. 13 11月, 2017 1 次提交
  22. 29 10月, 2017 1 次提交
  23. 27 10月, 2017 1 次提交
  24. 23 10月, 2017 1 次提交
  25. 18 10月, 2017 1 次提交
  26. 13 10月, 2017 1 次提交
    • F
      net: dsa: bcm_sf2: Turn on ACB at the switch level · 32e47ff0
      Florian Fainelli 提交于
      Turn on the out of band Advanced Congestion Buffering (ACB) mechanism at
      the switch level now that we have properly established the queue mapping
      between the switch egress queues and the SYSTEMPORT egress queues. This
      allows the switch to correctly backpressure the host system when one of
      its queue drops below the configured thresholds.
      
      This is also helping achieve so called "lossless" behavior by adapting
      the TX interrupt pacing to the actual speed and capacity of the switch
      port.
      Signed-off-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      32e47ff0
  27. 01 10月, 2017 1 次提交
  28. 22 9月, 2017 1 次提交
  29. 20 9月, 2017 5 次提交