Author: yongari
Date: Fri Oct  1 17:46:15 2010
New Revision: 213333
URL: http://svn.freebsd.org/changeset/base/213333

Log:
  Allow write DMA to request larger DMA burst size to get better
  performance on BCM5785.
  
  Obtained from:        OpenBSD

Modified:
  head/sys/dev/bge/if_bge.c
  head/sys/dev/bge/if_bgereg.h

Modified: head/sys/dev/bge/if_bge.c
==============================================================================
--- head/sys/dev/bge/if_bge.c   Fri Oct  1 17:20:48 2010        (r213332)
+++ head/sys/dev/bge/if_bge.c   Fri Oct  1 17:46:15 2010        (r213333)
@@ -1834,6 +1834,10 @@ bge_blockinit(struct bge_softc *sc)
        if (BGE_IS_5755_PLUS(sc))
                val |= BGE_WDMAMODE_STATUS_TAG_FIX;
 
+       /* Request larger DMA burst size to get better performance. */
+       if (sc->bge_asicrev == BGE_ASICREV_BCM5785)
+               val |= BGE_WDMAMODE_BURST_ALL_DATA;
+
        /* Turn on write DMA state machine */
        CSR_WRITE_4(sc, BGE_WDMA_MODE, val);
        DELAY(40);

Modified: head/sys/dev/bge/if_bgereg.h
==============================================================================
--- head/sys/dev/bge/if_bgereg.h        Fri Oct  1 17:20:48 2010        
(r213332)
+++ head/sys/dev/bge/if_bgereg.h        Fri Oct  1 17:46:15 2010        
(r213333)
@@ -1481,6 +1481,7 @@
 #define        BGE_WDMAMODE_LOCREAD_TOOBIG     0x00000200
 #define        BGE_WDMAMODE_ALL_ATTNS          0x000003FC
 #define        BGE_WDMAMODE_STATUS_TAG_FIX     0x20000000
+#define        BGE_WDMAMODE_BURST_ALL_DATA     0xC0000000
 
 /* Write DMA status register */
 #define        BGE_WDMASTAT_PCI_TGT_ABRT_ATTN  0x00000004
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to