1. 21 8月, 2013 1 次提交
  2. 01 12月, 2012 1 次提交
    • B
      sfc: Remove confusing MMIO functions · 778cdaf6
      Ben Hutchings 提交于
      efx_writed_table() uses a step of 16 bytes but efx_readd_table() uses
      a step of 4 bytes.  Why are they different?
      
      Firstly, register access is asymmetric:
      
      - The EVQ_RPTR table and RX_INDIRECTION_TBL can (or must?) be written
        as dwords even though they have a step size of 16 bytes, unlike
        most other CSRs.
      - In general, a read of any width is valid for registers, so long as
        it does not cross register boundaries.  There is also no latching
        behaviour in the BIU, contrary to rumour.
      
      We write to the EVQ_RPTR table with efx_writed_table() but never read
      it back as it's write-only.  We write to the RX_INDIRECTION_TBL with
      efx_writed_table(), but only read it back for the register dump, where
      we use efx_reado_table() as for any other table with step size of 16.
      
      We read MC_TREG_SMEM with efx_readd_table() for the register dump, but
      normally read and write it with efx_readd() and efx_writed() using
      offsets calculated in bytes.
      
      Since these functions are trivial and have few callers, it's clearer
      to open-code them at the call sites.  While we're at it, update the
      comments on the BIU behaviour again.
      Signed-off-by: NBen Hutchings <bhutchings@solarflare.com>
      778cdaf6
  3. 11 8月, 2011 1 次提交
  4. 13 4月, 2011 1 次提交
    • N
      sfc: Use rmb() to ensure reads occur in order · fcfa0604
      Neil Turton 提交于
      Enabling write-combining may also enable read reordering.  The BIU is
      only guaranteed to read from a 128-bit CSR or 64-bit SRAM word when
      the host reads from its lowest address; otherwise the BIU may use the
      latched value.  Therefore we need to reinstate the read memory
      barriers after the first read operation for each CSR or SRAM word.
      
      Signed-off-by; Ben Hutchings <bhutchings@solarflare.com>
      fcfa0604
  5. 05 3月, 2011 1 次提交
    • B
      sfc: Use write-combining to reduce TX latency · 65f0b417
      Ben Hutchings 提交于
      Based on work by Neil Turton <nturton@solarflare.com> and
      Kieran Mansley <kmansley@solarflare.com>.
      
      The BIU has now been verified to handle 3- and 4-dword writes within a
      single 128-bit register correctly.  This means we can enable write-
      combining and only insert write barriers between writes to distinct
      registers.
      
      This has been observed to save about 0.5 us when pushing a TX
      descriptor to an empty TX queue.
      Signed-off-by: NBen Hutchings <bhutchings@solarflare.com>
      65f0b417
  6. 01 3月, 2011 1 次提交
  7. 07 12月, 2010 4 次提交
  8. 25 6月, 2010 2 次提交
  9. 24 10月, 2009 1 次提交