1. 21 3月, 2015 2 次提交
  2. 28 2月, 2015 1 次提交
    • L
      amd-xgbe: Request IRQs only after driver is fully setup · c30e76a7
      Lendacky, Thomas 提交于
      It is possible that the hardware may not have been properly shutdown
      before this driver gets control, through use by firmware, for example.
      Until the driver is loaded, interrupts associated with the hardware
      could go pending. When the IRQs are requested napi support has not
      been initialized yet, but the ISR will get control and schedule napi
      processing resulting in a kernel panic because the poll routine has not
      been set.
      
      Adjust the code so that the driver is fully ready to handle and process
      interrupts as soon as the IRQs are requested. This involves requesting
      and freeing IRQs during start and stop processing and ordering the napi
      add and delete calls appropriately.
      
      Also adjust the powerup and powerdown routines to match the start and
      stop routines in regards to the ordering of tasks, including napi
      related calls.
      Signed-off-by: NTom Lendacky <thomas.lendacky@amd.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c30e76a7
  3. 08 2月, 2015 1 次提交
  4. 05 2月, 2015 2 次提交
  5. 17 1月, 2015 4 次提交
  6. 14 1月, 2015 1 次提交
  7. 10 12月, 2014 3 次提交
  8. 22 11月, 2014 4 次提交
  9. 07 11月, 2014 2 次提交
  10. 06 11月, 2014 7 次提交
  11. 23 10月, 2014 2 次提交
    • L
      amd-xgbe: Fix napi Rx budget accounting · 55ca6bcd
      Lendacky, Thomas 提交于
      Currently the amd-xgbe driver increments the packets processed counter
      each time a descriptor is processed.  Since a packet can be represented
      by more than one descriptor incrementing the counter in this way is not
      appropriate.  Also, since multiple descriptors cause the budget check
      to be short circuited, sometimes the returned value from the poll
      function would be larger than the budget value resulting in a WARN_ONCE
      being triggered.
      
      Update the polling logic to properly account for the number of packets
      processed and exit when the budget value is reached.
      Signed-off-by: NTom Lendacky <thomas.lendacky@amd.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      55ca6bcd
    • L
      amd-xgbe: Properly handle feature changes via ethtool · 386f1c96
      Lendacky, Thomas 提交于
      The ndo_set_features callback function was improperly using an unsigned
      int to save the current feature value for features such as NETIF_F_RXCSUM.
      Since that feature is in the upper 32 bits of a 64 bit variable the
      result was always 0 making it not possible to actually turn off the
      hardware RX checksum support.  Change the unsigned int type to the
      netdev_features_t type in order to properly capture the current value
      and perform the proper operation.
      Signed-off-by: NTom Lendacky <thomas.lendacky@amd.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      386f1c96
  12. 06 9月, 2014 1 次提交
  13. 02 9月, 2014 1 次提交
  14. 08 8月, 2014 1 次提交
  15. 06 8月, 2014 1 次提交
    • L
      amd-xgbe: Perform phy connect/disconnect at dev open/stop · 88131a81
      Lendacky, Thomas 提交于
      A change added to the mdiobus/phy api added a module_get/module_put
      during phy connect/disconnect processing. Currently, the driver
      performs a phy connect during module probe and a phy disconnect during
      module remove. With the addition of the module_get during phy connect
      the amd-xgbe module use count is incremented and can no longer be
      unloaded.
      
      Move the phy connect/disconnect from the driver probe/remove functions
      to the net_device_ops ndo_open/ndo_stop functions.  This allows the
      module use count to be decremented when the device(s) are brought down
      and allows the module to be unloaded.
      Signed-off-by: NTom Lendacky <thomas.lendacky@amd.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      88131a81
  16. 31 7月, 2014 2 次提交
  17. 08 7月, 2014 2 次提交
    • L
      amd-xgbe: Performance enhancements · 9867e8fb
      Lendacky, Thomas 提交于
      This patch provides some general performance enhancements for the
      driver:
        - Modify the default coalescing settings (reduce usec, increase frames)
        - Change the AXI burst length to 256 bytes (default was 16 bytes which
          was smaller than a cache line)
        - Change the AXI cache settings to write-back/write-allocate which
          allocate cache entries for received packets during the DMA since the
          packet will be processed soon afterwards
        - Combine ioread/iowrite when disabling both the Tx and Rx interrupts
        - Change to processing the Tx/Rx channels in pairs
        - Only recycle the Rx descriptors when a threshold of dirty descriptors
          is reached
      Signed-off-by: NTom Lendacky <thomas.lendacky@amd.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9867e8fb
    • L
      amd-xgbe: Call netif_napi_del on ndo_stop operation · ff42606e
      Lendacky, Thomas 提交于
      Currently the napi context is added using netif_napi_add each time
      the ndo_open operation is called.  However, there is not a
      corresponding netif_napi_del call during the ndo_stop operation. If
      the device ndo_open operation was called more than once an infinite
      loop occurs during module unload.  Add a call to netif_napi_del during
      the ndo_stop operation.
      Signed-off-by: NTom Lendacky <thomas.lendacky@amd.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ff42606e
  18. 27 6月, 2014 3 次提交