1. 02 5月, 2012 1 次提交
    • B
      e1000e: workaround EEPROM configuration change on 82579 · 62bc813e
      Bruce Allan 提交于
      An update to the EEPROM on 82579 will extend a delay in hardware to fix an
      issue with WoL not working after a G3->S5 transition which is unrelated to
      the driver.  However, this extended delay conflicts with nominal operation
      of the device when it is initialized by the driver and after every reset
      of the hardware (i.e. the driver starts configuring the device before the
      hardware is done with it's own configuration work).  The workaround for
      when the driver is in control of the device is to tell the hardware after
      every reset the configuration delay should be the original shorter one.
      
      Some pre-existing variables are renamed generically to be re-used with
      new register accesses.
      Signed-off-by: NBruce Allan <bruce.w.allan@intel.com>
      Tested-by: NJeff Pieper <jeffrey.e.pieper@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      62bc813e
  2. 27 4月, 2012 1 次提交
  3. 14 4月, 2012 2 次提交
    • B
      e1000e: cleanup boolean logic · 04499ec4
      Bruce Allan 提交于
      Replace occurrences of 'if (<bool expr> == <1|0>)' with
      'if ([!]<bool expr>)'
      
      Replace occurrences of '<bool var> = (<non-bool expr>) ? true : false'
      with '<bool var> = <non-bool expr>'.
      
      Replace occurrence of '<bool var> = <non-bool expr>' with
      '<bool var> = !!<non-bool expr>'
      
      While the latter replacement is not really necessary, it is done here for
      consistency and clarity.  No functional changes.
      Signed-off-by: NBruce Allan <bruce.w.allan@intel.com>
      Tested-by: NAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      04499ec4
    • B
      e1000e: issues in Sx on 82577/8/9 · 92fe1733
      Bruce Allan 提交于
      A workaround was previously put in the driver to reset the device when
      transitioning to Sx in order to activate the changed settings of the PHY
      OEM bits (Low Power Link Up, or LPLU, and GbE disable configuration) for
      82577/8/9 devices.  After further review, it was found such a reset can
      cause the 82579 to confuse which version of 82579 it actually is and broke
      LPLU on all 82577/8/9 devices.  The workaround during an S0->Sx transition
      on 82579 (instead of resetting the PHY) is to restart auto-negotiation
      after the OEM bits are configured; the restart of auto-negotiation
      activates the new OEM bits as does the reset.  With 82577/8, the reset is
      changed to a generic reset which fixes the LPLU bits getting set wrong.
      Signed-off-by: NBruce Allan <bruce.w.allan@intel.com>
      Tested-by: NAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      92fe1733
  4. 01 3月, 2012 1 次提交
  5. 25 2月, 2012 7 次提交
  6. 14 2月, 2012 9 次提交
  7. 10 2月, 2012 2 次提交
  8. 07 2月, 2012 2 次提交
  9. 27 1月, 2012 8 次提交
  10. 26 1月, 2012 1 次提交
  11. 03 11月, 2011 1 次提交
  12. 16 10月, 2011 1 次提交
    • B
      e1000e: locking bug introduced by commit 67fd4fcb · a90b412c
      Bruce Allan 提交于
      Commit 67fd4fcb (e1000e: convert to stats64) added the ability to update
      statistics more accurately and on-demand through the net_device_ops
      .ndo_get_stats64 hook, but introduced a locking bug on 82577/8/9 when
      linked at half-duplex (seen on kernels with CONFIG_DEBUG_ATOMIC_SLEEP=y and
      CONFIG_PROVE_LOCKING=y).  The commit introduced code paths that caused a
      mutex to be locked in atomic contexts, e.g. an rcu_read_lock is held when
      irqbalance reads the stats from /sys/class/net/ethX/statistics causing the
      mutex to be locked to read the Phy half-duplex statistics registers.
      
      The mutex was originally introduced to prevent concurrent accesses of
      resources (the NVM and Phy) shared by the driver, firmware and hardware
      a few years back when there was an issue with the NVM getting corrupted.
      It was later split into two mutexes - one for the NVM and one for the Phy
      when it was determined the NVM, unlike the Phy, should not be protected by
      the software/firmware/hardware semaphore (arbitration of which is done in
      part with the SWFLAG bit in the EXTCNF_CTRL register).  This latter
      semaphore should be sufficient to prevent resource contention of the Phy in
      the driver (i.e. the mutex for Phy accesses is not needed), but to be sure
      the mutex is replaced with an atomic bit flag which will warn if any
      contention is possible.
      
      Also add additional debug output to help determine when the sw/fw/hw
      semaphore is owned by the firmware or hardware.
      Signed-off-by: NBruce Allan <bruce.w.allan@intel.com>
      Reported-by: NFrancois Romieu <romieu@fr.zoreil.com>
      Tested-by: NJeff Pieper <jeffrey.e.pieper@intel.com>
      a90b412c
  13. 07 10月, 2011 1 次提交
  14. 06 10月, 2011 2 次提交
  15. 05 10月, 2011 1 次提交