Author: adrian
Date: Sat Mar 26 10:47:17 2011
New Revision: 220027
URL: http://svn.freebsd.org/changeset/base/220027

Log:
  Introduce hardware PS-POLL support in the HAL.
  
  Linux ath9k only enables this for AR9280 and later NICs; so
  create a capability for it so it isn't enabled for earlier
  NICs.
  
  Enabling hardware PS-POLL support will come in a later commit
  and will be disabled by default.

Modified:
  head/sys/dev/ath/ath_hal/ah.c
  head/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c
  head/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c

Modified: head/sys/dev/ath/ath_hal/ah.c
==============================================================================
--- head/sys/dev/ath/ath_hal/ah.c       Sat Mar 26 09:25:35 2011        
(r220026)
+++ head/sys/dev/ath/ath_hal/ah.c       Sat Mar 26 10:47:17 2011        
(r220027)
@@ -599,8 +599,10 @@ ath_hal_getcapability(struct ath_hal *ah
                default:
                        return HAL_ENOTSUPP;
                }
-       case HAP_CAP_SPLIT_4KB_TRANS:   /* hardware handles descriptors 
straddling 4k page boundary */
+       case HAL_CAP_SPLIT_4KB_TRANS:   /* hardware handles descriptors 
straddling 4k page boundary */
                return pCap->hal4kbSplitTransSupport ? HAL_OK : HAL_ENOTSUPP;
+       case HAL_CAP_HAS_PSPOLL:        /* hardware has ps-poll support */
+               return pCap->halHasPsPollSupport ? HAL_OK : HAL_ENOTSUPP;
        default:
                return HAL_EINVAL;
        }

Modified: head/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c
==============================================================================
--- head/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c     Sat Mar 26 09:25:35 
2011        (r220026)
+++ head/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c     Sat Mar 26 10:47:17 
2011        (r220027)
@@ -780,6 +780,8 @@ ar9280FillCapabilityInfo(struct ath_hal 
 #endif
        pCap->halAutoSleepSupport = AH_FALSE;   /* XXX? */
        pCap->hal4kbSplitTransSupport = AH_FALSE;
+       if (AR_SREV_MERLIN_20_OR_LATER(ah))
+               pCap->halHasPsPollSupport = AH_TRUE;
        pCap->halRxStbcSupport = 1;
        pCap->halTxStbcSupport = 1;
 

Modified: head/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c
==============================================================================
--- head/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c     Sat Mar 26 09:25:35 
2011        (r220026)
+++ head/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c     Sat Mar 26 10:47:17 
2011        (r220027)
@@ -380,6 +380,9 @@ ar9285FillCapabilityInfo(struct ath_hal 
 #endif
        pCap->halAutoSleepSupport = AH_FALSE;   /* XXX? */
        pCap->hal4kbSplitTransSupport = AH_FALSE;
+       if (AR_SREV_KITE_12_OR_LATER(ah))
+               pCap->halHasPsPollSupport = AH_TRUE;
+
        pCap->halRxStbcSupport = 1;
        pCap->halTxStbcSupport = 1;
 
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to