1. 18 Dec, 2013 6 commits
    • Rasesh Mody's avatar
      bna: Enable Multi Buffer RX · e29aa339
      Rasesh Mody authored
      The CT2 HW supports multi-buffer Rx. This patch provides the necessary changes
      for bnad to use multi-buffer Rx feature. For BNAD, multi-buffer Rx is by
      default enabled when MTU is > 4096. For >4096 MTU, q0 data/large buffers are of
      2048 size. As the resource requirements of multi-buffer Rx are different new Rx
      needs to be created to use this feature. ASIC posts multiple completions if
      frame exceeds buffer size. The last completion is marked with EOP flag.
       - Separate HQ and DQ enums for resource allocations and configurations.
       - rx_config and rxq structure changes to pass the correct info from bnad.
       - DQ depth need not be same as HQ depth. So CQ depth is adjusted accordingly.
       - Rx CFG frame size is taken from configured MTU.
       - Rx q0 buffer size is configured from bnad s rx_config when multi-buffer is
         enabled.
       - Poll for entire frame completion.
       - Once EOP completion is received gather the number of vectors used by the
         frame to submit it to the stack.
       - Changed MTU to frame size wherever necessary.
      Signed-off-by: default avatarRasesh Mody <rmody@brocade.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e29aa339
    • Rasesh Mody's avatar
      bna: RX Filter Enhancements · fe1624cf
      Rasesh Mody authored
      Change Details:
       - Added bna_rx_ucast_listset() for synchronous ucast listadd operation.
       - Clear mac->handle before adding it to free_q.
       - bnad_set_rx_mode() rewritten. bnad_set_rx_mode() adds the MACs in uc_list
         to UCAM. If it exceeds the max supported, DEFAULT mode is turned on. If
         MCAM limit is exceeded, ALLMULTI mode is turned on.
       - Clear CF flags, check for the new mode and reprogram the Rx approach.
       - Added bnad_set_rx_ucast_fltr() and bnad_set_rx_mcast_fltr().
       - Check for IFF_PROMISC to set the correct mode.
      Signed-off-by: default avatarRasesh Mody <rmody@brocade.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      fe1624cf
    • Rasesh Mody's avatar
      bna: Fix Filter Add Del · 20b298f5
      Rasesh Mody authored
      Change Details:
       - bna_rx_mcast_listset() API first looks at free_q only and not at other
         pending Qs rendering it non-deterministic of giving an upper limit.
         Modify bna_rx_mcast_listset() implementation to not use only half of the
         limit.
       - Allocate and initialize queue for deleting
       - Segregate the adding and deleting process by using separate queues.
       - The filter framework in bna does not let adding addresses to its max capacity
         due to asynchronous operations involved.
         Provide a synchronous option to set a given list.
      Signed-off-by: default avatarRasesh Mody <rmody@brocade.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      20b298f5
    • Rasesh Mody's avatar
      bna: Set Get IOC fw State · 41ed903a
      Rasesh Mody authored
      Add APIs to set and get IOC currnet fw state and alt IOC fw state
       - bfa_ioc_ct_set_cur_ioc_fwstate()
       - bfa_ioc_ct_get_cur_ioc_fwstate()
       - bfa_ioc_ct_set_alt_ioc_fwstate()
       - bfa_ioc_ct_get_alt_ioc_fwstate()
      Signed-off-by: default avatarRasesh Mody <rmody@brocade.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      41ed903a
    • Rasesh Mody's avatar
      bna: Add software timestamping support · fee1253e
      Rasesh Mody authored
      - Invoke skb_tx_timestamp() API just before invoking txq_doorbell()
       - Add ethtool (-T) support
      Signed-off-by: default avatarRasesh Mody <rmody@brocade.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      fee1253e
    • David S. Miller's avatar
  2. 17 Dec, 2013 34 commits