1. Jul 09, 2014
  2. Jul 08, 2014
    • David S. Miller's avatar
      Merge branch 'amd-xgbe-next' · 52d14c66
      David S. Miller authored
      
      
      Tom Lendacky says:
      
      ====================
      amd-xgbe: AMD 10Gb Ethernet driver updates
      
      The following series fixes some bugs and provides new/changed support
      in the driver.
      
      - Fix a debugfs backward compatibility issue introduced by a previous patch
      - Write to the interrupt enablement register, not the status register when
        setting MTL interrupts
      - Call netif_napi_del whenever the ndo_stop operation is called (to match
        the call to netif_napi_add on ndo_open)
      - Peformance enhancements:
        - Adjusted default coalescing settings
        - AXI DMA changes (burst length size and cache settings)
        - ioread/iowrite reduction during interrupt
        - Napi poll updates
      - AXI DMA settings based on device tree property to account for a change in
        the ARM64 default cache operations assignment
      
      This patch series is based on net-next.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      52d14c66
    • Lendacky, Thomas's avatar
      amd-xgbe: Base AXI DMA cache settings on device tree · cfa50c78
      Lendacky, Thomas authored
      
      
      The default cache operations for ARM64 were changed during 3.15.
      To use coherent operations a "dma-coherent" device tree property
      is required.  If that property is not present in the device tree
      node then the non-coherent operations are assigned for the device.
      
      Add support to the amd-xgbe driver to assign the AXI DMA cache settings
      based on whether the "dma-coherent" property is present in the device
      node.  If present, use settings that work with the caches.  If not
      present, use settings that do not look at the caches.
      
      Signed-off-by: default avatarTom Lendacky <thomas.lendacky@amd.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cfa50c78
    • Lendacky, Thomas's avatar
      amd-xgbe: Performance enhancements · 9867e8fb
      Lendacky, Thomas authored
      
      
      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: default avatarTom Lendacky <thomas.lendacky@amd.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9867e8fb
    • Lendacky, Thomas's avatar
      amd-xgbe: Call netif_napi_del on ndo_stop operation · ff42606e
      Lendacky, Thomas authored
      
      
      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: default avatarTom Lendacky <thomas.lendacky@amd.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ff42606e
    • Lendacky, Thomas's avatar
      amd-xgbe: Clear the proper MTL interrupt register · 91f87345
      Lendacky, Thomas authored
      
      
      When initializing the MTL interrupts the interrupt status
      register is written to instead of the interrupt enable register.
      Since no MTL interrupts are being enabled and the default state
      is for MTL interrupts to be disabled this did not cause a problem,
      but needs to be fixed to target the correct register.
      
      Signed-off-by: default avatarTom Lendacky <thomas.lendacky@amd.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      91f87345
    • Lendacky, Thomas's avatar
      amd-xgbe: Fix debugfs compatibility change with kstrtouint · f3f128d4
      Lendacky, Thomas authored
      
      
      The initial change from sscanf to kstrtouint broke backward
      compatbility by using a base of "0" in the kstrtouint call.
      This allowed for entering decimal, hexadecimal or octal as
      input where previously the sscanf always interpreted the input
      as hexadecimal.  Additionally, -EIO was returned on error prior
      to this change and now it is whatever the error value that is
      returned by kstrtouint.
      
      Change the base value of the kstrtouint from 0 to 16 and return
      -EIO on error.
      
      Signed-off-by: default avatarTom Lendacky <thomas.lendacky@amd.com>
      Reported-by: default avatarJoe Perches <joe@perches.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f3f128d4
    • Rasmus Villemoes's avatar
      net: arcnet: Remove "#define bool int" · db55b62c
      Rasmus Villemoes authored
      
      
      The header file include/linux/arcdevice.h #defines bool to int, if
      bool is not already #defined. However, the files which use that header
      file seem to rely on that #define (unconditionally) being in effect:
      the prototypes for the functions arcrimi_reset, com20020_reset,
      com90io_reset, com90xx_reset (whose addresses are assigned to the
      hw.reset member of struct arcnet_local) use int explicitly.
      
      Moreover, that #define is an accident waiting to happen (scenario:
      inclusion of arcdevice.h followed by inclusion of some header which
      declares function prototypes using bool). Also, #include
      <linux/types.h> must appear before #include <linux/arcdevice.h> (the
      compiler wouldn't like "typedef _Bool int").
      
      Since none of the files using arcdevice.h declare variables of type
      "bool", the patch is actually quite simple, unlike the commit message.
      
      Signed-off-by: default avatarRasmus Villemoes <linux@rasmusvillemoes.dk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      db55b62c
    • Govindarajulu Varadarajan's avatar
      enic: fix return values in enic_set_coalesce · a16a3361
      Govindarajulu Varadarajan authored
      enic_set_coalesce() has two problems.
      
      * It should return -EINVAL and not -EOPNOTSUPP for invalid coalesce values.
      
      * In case of MSIX, enic_set_coalesce return error after applying requested
        coalescing setting partially. We should either apply all the setting requeste
        and return success or apply non and return error.
      
      * This patch also simplifies the algo.
      
      This was introduced by
      '7c2ce6e6 enic: Add support for adaptive interrupt coalescing'
      
      These changes were suggested by Ben Hutchings here
      http://www.spinics.net/lists/netdev/msg283972.html
      
      
      
      Also change enic driver version.
      
      Signed-off-by: default avatarGovindarajulu Varadarajan <_govind@gmx.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a16a3361
    • Jiri Pirko's avatar
      bonding: remove no longer relevant vlan warnings · e721f87d
      Jiri Pirko authored
      
      
      These warnings are no longer relevant. Even when last slave is
      removed, there is a valid address assigned to bond (random).
      The correct functionality of vlans is ensured by maintaining unicast
      list in vlan_sync_address().
      
      Suggested-by: default avatarJay Vosburgh <jay.vosburgh@canonical.com>
      Signed-off-by: default avatarJiri Pirko <jiri@resnulli.us>
      Acked-by: default avatarVeaceslav Falico <vfalico@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e721f87d
    • David S. Miller's avatar
      Merge branch 'at86rf230-next' · 7cb9e6bf
      David S. Miller authored
      
      
      Alexander Aring says:
      
      ====================
      at86rf230: rework driver implementation
      
      this patch series includes a rework of the at86rf230 driver.
      
      There are several changes:
      
       - Add regmap support.
       - Merge at86rf212 operations with generic at86rf2xx operations, all chips
         supports these operations.
       - Drop of irqworker. This is a workqueue which will scheduled by an irq to
         handle synchronous spi handling. Instead using asynchronous spi handling,
         then no scheduler is involved at irq handling.
       - Also detected some bugs by receiving frame like CRC can be correct and a
         802.15.4 frame length could be above 127 bytes. This would crash the whole
         kernel (but should be handled by the mac layer). Another bug is the handling
         with RX_SAFE_MODE which protect the frame buffer after a readout. This is
         currently not working because we read out the buffer twice and the first one
         to get the frame size. Solution is to readout always the whole frame buffer.
       - Added some timing relevants things from the datasheet for state changes And
         IEEE 802.15.4 standard like interframe spacing. Interframe spacing is needed
         to insert some receiving space time between frame transmitting. This should be
         also handled by MAC layer, but it's currently a workaround to add this inside
         the driver layer.
       - Add some callback setting for chip specific handling, instead of runtime decisions
         if (is_chip_type()). Callbacks are set only once at probe time.
       - We don't using a force state change anymore. A force state change will do a
         abort of receiving frames while we want to transmit a new frame. This should
         decrease the drop rate of packets.
       - And many others changes and bug fixes...
      
      changes since v3:
       - fix irq polarity in patch ("at86rf230: rework irq_pol setting").
      
      changes since v2:
       - add check if necessary functions are implemented when hw flags are set in patch
         ("mac802154: at86rf230: add hw flags and merge ops"). I choosed the second variant.
       - remove unnecessary includes for workqueue and mutex in patch
         ("at86rf230: rework transmit and receive").
       - remove unnecessary cast in patch ("at86rf230: rework transmit and receive").
       - acivate regmap cache with REGCACHE_RBTREE in patch
         ("at86rf230: add regmap support").
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7cb9e6bf
    • Alexander Aring's avatar
      at86rf230: add new author · 01ebd60b
      Alexander Aring authored
      
      
      Signed-off-by: default avatarAlexander Aring <alex.aring@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      01ebd60b
    • Alexander Aring's avatar
      7a4ef918
    • Alexander Aring's avatar
      984e0c68
    • Alexander Aring's avatar
    • Alexander Aring's avatar
      at86rf230: rework state change and start/stop · 2e0571c0
      Alexander Aring authored
      
      
      This patch removes the current synchron state change function and add a
      new function for a state assert. Change the start and stop callbacks to
      use this new synchron state change behaviour. It's a wrapper around the
      async state change function.
      
      Signed-off-by: default avatarAlexander Aring <alex.aring@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2e0571c0