Author: adrian
Date: Wed Feb 20 12:14:49 2013
New Revision: 247033
URL: http://svnweb.freebsd.org/changeset/base/247033

Log:
  Configure larger TX FIFO default and maximum level values.
  
  This has reduced the number of TX delimiter and data underruns when
  doing large UDP transfers (>100mbit).
  
  This stops any HAL_INT_TXURN interrupts from occuring, which is a good
  sign!
  
  Obtained from:        Qualcomm Atheros

Modified:
  head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c

Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c
==============================================================================
--- head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c     Wed Feb 20 12:06:33 
2013        (r247032)
+++ head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c     Wed Feb 20 12:14:49 
2013        (r247033)
@@ -241,8 +241,24 @@ ar5416InitState(struct ath_hal_5416 *ahp
        /* Enable all ANI functions to begin with */
        AH5416(ah)->ah_ani_function = 0xffffffff;
 
-        /* Set overridable ANI methods */
-        AH5212(ah)->ah_aniControl = ar5416AniControl;
+       /* Set overridable ANI methods */
+       AH5212(ah)->ah_aniControl = ar5416AniControl;
+
+       /* Default FIFO Trigger levels */
+#define        AR_FTRIG_512B   0x00000080 // 5 bits total
+       /* AR9285/AR9271 need to use half the TX FIFOs */
+       if (AR_SREV_KITE(ah) || AR_SREV_9271(ah)) {
+               AH5212(ah)->ah_txTrigLev = (AR_FTRIG_256B >> AR_FTRIG_S);
+               AH5212(ah)->ah_maxTxTrigLev = ((2048 / 64) - 1);
+       } else {
+               AH5212(ah)->ah_txTrigLev = (AR_FTRIG_512B >> AR_FTRIG_S);
+               AH5212(ah)->ah_maxTxTrigLev = ((4096 / 64) - 1);
+       }
+       ath_hal_printf(ah, "%s: trigLev=%d, maxTxTrigLev=%d\n",
+           __func__,
+           AH5212(ah)->ah_txTrigLev,
+           AH5212(ah)->ah_maxTxTrigLev);
+#undef AR_FTRIG_512B
 }
 
 uint32_t
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to