1. 08 Nov, 2004 7 commits
    • Raghavendra Koushik's avatar
      [PATCH] S2io: NAPI fix · a5ebf123
      Raghavendra Koushik authored
      1. When processing Rx packets, making sure that get offset of ring
      does not cross the put offset.
      
      2. when NAPI is not in use a new spinlock(put_lock) is used to make
      sure accessing put offset of ring is atomic.
      
      3. Also introduced a new vaiable put_pos in nic_t to keep track of
      absolute position of the put pointer of Rx ring.
      
      4. When NAPI is used, fill_rx_buffer is not called from the interrupt
      handler(s2io_isr) .
      
      5. In s2io_poll, decrementing packets processed is done inside the
      while loop unlike out side it as was being done last time.
      Signed-off-by: default avatarRaghavendra Koushik <raghavendra.koushik@s2io.com>
      Signed-off-by: default avatarRavinandan Arakali <ravinandan.arakali@s2io.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@pobox.com>
      a5ebf123
    • Raghavendra Koushik's avatar
      [PATCH] S2io: new txd allocation · 1215e2cf
      Raghavendra Koushik authored
      The attached patch contains a modified scheme for allocating Tx descriptor
      blocks.
      More description follows.
      
      In the old scheme, the entire Tx descriptor space was allocated in
      one go. This could cause driver load to fail on systems with low(or
      scattered) memory. The Tx descriptor blocks are now allocated on
      per-page basis. A new structure (list_info) has been introduced in
      nic_t structure to keep track of the physical and virtual addresses
      of every TxD allocated this way.
      Signed-off-by: default avatarRaghavendra Koushik <raghavendra.koushik@s2io.com>
      Signed-off-by: default avatarRavinandan Arakali <ravinandan.arakali@s2io.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@pobox.com>
      1215e2cf
    • Raghavendra Koushik's avatar
      [PATCH] S2io: module loadable parameters · eca3ee40
      Raghavendra Koushik authored
      1. Max Txds per List.
      
      2. statistics refresh time
      
      3. pause frame control parameters including gap between two successive
      frames, threshold watermarks
      
      4. RTI and TTI configuration parameters including ranges, packet
      counts and timeout periods.  For further information please read the
      section 3.5 of XFrame H/W spec.
      
      5. PCI/PCI-X configuration variables latency_timer, MMRBC and OST.
      
      6. OS offload features TSO (If support available) and checksum offload.
      
      7. If NAPI is not in use, a variable indicate_max_pkts can be used
      to limit number of Rx side packets processed for one call to Rx
      Intr handler.
      Signed-off-by: default avatarRaghavendra Koushik <raghavendra.koushik@s2io.com>
      Signed-off-by: default avatarRavinandan Arakali <ravinandan.arakali@s2io.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@pobox.com>
      eca3ee40
    • Raghavendra Koushik's avatar
      [PATCH] S2io: hardware fixes · 3fbc24f1
      Raghavendra Koushik authored
      1. Xena3's with a set of subsystem IDs had Link LED problems, fixed
      that specifically for them.
      
      2. To write into the Keyed Mac_Cfg register to enable broadcast,
      writing two 32 bit writes into it along with a write to the key
      register rather than a single write to key and a 64 bit write to
      mac_cfg. This is necessary on 32 bit systems where a writeq(64 bit
      write) is actually two writel (32 bit writes).
      
      3. Writes to some special registers mentioned in UG is being done by
      a special macro which defines which 32 bits of the 64 bit register
      is to be written first. Again this applies only on 32 bit systems.
      
      4. Configured pause frame related water marks and a shared_split
      value which describes the Max TXDMA related split transaction that
      can be used without giving room for the Rx transactions.
      
      5. The mac_rmac_err_reg R1 register will be cleared in  the interrupt
      handler itself rather than in the scheduled task as was being done
      previously.
      
      6. Even on PCC_FB_ECC error the card will be reset by disabling
      adapter enable bit.
      Signed-off-by: default avatarRaghavendra Koushik <raghavendra.koushik@s2io.com>
      Signed-off-by: default avatarRavinandan Arakali <ravinandan.arakali@s2io.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@pobox.com>
      3fbc24f1
    • Raghavendra Koushik's avatar
      [PATCH] S2io: optimizations · b3ea38cb
      Raghavendra Koushik authored
      1. Definitions of LOW and PANIC levels of the Rx buffers have changed.
      
      2. In wait_for_cmd_complete there is no longer a writeq but just a
      read and wait for strobe bit to reset.
      
      3. In s2io_isr, the isr_lock has been done away with also the NICs
      interrupt are no longer disabled explicitly on entering the interrupt
      handler and re-enabled again before leaving it.
      
      4. Also clearing the semaphore "tasklet_status" when exiting
      erroneously from s2io_isr after failing fill_rx_buffer call.
      
      5. The set/reset Tx Csum function through ethtool was added to the
      ethtool_ops structure.
      
      6. Added a Rx side error code in the rx_osm_handler function.
      
      7. No longer stopping and waking Tx queue when link state changes in
      s2io_link function.
      
      8. removed the isr_lock spinlock from the s2io_nic structure.
      
      9. changed parameters which determine thresholds(LOW and PANIC)
      to replenish Rx buffers.
         This has been found to result in better performance.
      Signed-off-by: default avatarRaghavendra Koushik <raghavendra.koushik@s2io.com>
      Signed-off-by: default avatarRavinandan Arakali <ravinandan.arakali@s2io.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@pobox.com>
      b3ea38cb
    • Raghavendra Koushik's avatar
      [PATCH] S2io: sw bug fixes · 10a7bfef
      Raghavendra Koushik authored
      1. In free_rx_buffers clearing out RxDs not owned by Xena.
      
      2. In alarm_intr_handler, when a serr error occurs, schedule a task
      to reset the card rather than stopping Tx queue.
      
      3. In s2io_close freeing IRQ before calling s2io_reset also added a
      new call to flush queued tasks. This is not done if the s2io_close
      itself is called from a queued task like s2io_restart_nic.
      
      4. read_eeprom function has been changed such that data to be returned
      is sent as an input argument and the return value represents a
      pass/fail. The previous implementation as Randy had pointed out was
      error prone as on failure it returned -1 which can be interpreted
      as all ff's, so any data area which contained ff's in the eeprom was
      likely to be treated as an error.
      
      5. Added a flag "task_flag" to track if the call to s2io_close is
      coming from the s2io_restart_nic function or from the ifconfig <I/F>
      down called by user.
      
      6. Moved register_netdev call from just after setting entry points
      to the end of the s2io_init_nic function.
      
      7. In s2io.h field added a new member into the s2io_nic structure
      called "task_flag".
      Signed-off-by: default avatarRaghavendra Koushik <raghavendra.koushik@s2io.com>
      Signed-off-by: default avatarRavinandan Arakali <ravinandan.arakali@s2io.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@pobox.com>
      10a7bfef
    • Raghavendra Koushik's avatar
      [PATCH] S2io: cosmetic changes · 1dbd0fcf
      Raghavendra Koushik authored
      1. Indentation, change in comment styles, variable name changes etc.
      2. Changed the value written to dtx_control register to force XGXS reset.
      3. weight parameter(NAPI) changed to 90 for better performance.
      Signed-off-by: default avatarRaghavendra Koushik <raghavendra.koushik@s2io.com>
      Signed-off-by: default avatarRavinandan Arakali <ravinandan.arakali@s2io.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@pobox.com>
      1dbd0fcf
  2. 12 Sep, 2004 26 commits
  3. 11 Sep, 2004 5 commits
  4. 12 Sep, 2004 1 commit
  5. 11 Sep, 2004 1 commit