Flesh out the multi-rate retry capability.

The existing method for testing for MRR is to call the "SetupXTXDesc"
HAL method and see if it returns AH_TRUE or AH_FALSE.  This capability
explicitly lists what number of multi-rate attempts are possible.

"1" means "one rate attempt supported".
This commit is contained in:
Adrian Chadd 2012-07-28 07:28:08 +00:00
parent 8443512a77
commit ee3e4df90c
6 changed files with 7 additions and 1 deletions

View File

@ -657,7 +657,8 @@ ath_hal_getcapability(struct ath_hal *ah, HAL_CAPABILITY_TYPE type,
}
case HAL_CAP_RXBUFSIZE:
case HAL_CAP_NUM_MR_RETRIES:
return HAL_EINVAL; /* XXX not yet */
*result = pCap->halNumMRRetries;
return HAL_OK;
case HAL_CAP_BT_COEX:
return pCap->halBtCoexSupport ? HAL_OK : HAL_ENOTSUPP;
case HAL_CAP_HT20_SGI:

View File

@ -252,6 +252,7 @@ typedef struct {
int halRxStatusLen;
int halRxHpFifoDepth;
int halRxLpFifoDepth;
int halNumMRRetries;
} HAL_CAPABILITIES;
struct regDomain;

View File

@ -361,6 +361,7 @@ ar5210FillCapabilityInfo(struct ath_hal *ah)
pCap->halSleepAfterBeaconBroken = AH_TRUE;
pCap->halPSPollBroken = AH_FALSE;
pCap->halNumMRRetries = 1; /* No hardware MRR support */
pCap->halTotalQueues = HAL_NUM_TX_QUEUES;
pCap->halKeyCacheSize = 64;

View File

@ -496,6 +496,7 @@ ar5211FillCapabilityInfo(struct ath_hal *ah)
pCap->halSleepAfterBeaconBroken = AH_TRUE;
pCap->halPSPollBroken = AH_TRUE;
pCap->halVEOLSupport = AH_TRUE;
pCap->halNumMRRetries = 1; /* No hardware MRR support */
pCap->halTotalQueues = HAL_NUM_TX_QUEUES;
pCap->halKeyCacheSize = 128;

View File

@ -824,6 +824,7 @@ ar5212FillCapabilityInfo(struct ath_hal *ah)
pCap->halTurboGSupport = pCap->halWirelessModes & HAL_MODE_108G;
pCap->halPSPollBroken = AH_TRUE; /* XXX fixed in later revs? */
pCap->halNumMRRetries = 4; /* Hardware supports 4 MRR */
pCap->halVEOLSupport = AH_TRUE;
pCap->halBssIdMaskSupport = AH_TRUE;
pCap->halMcastKeySrchSupport = AH_TRUE;

View File

@ -892,6 +892,7 @@ ar5416FillCapabilityInfo(struct ath_hal *ah)
pCap->halTurboGSupport = pCap->halWirelessModes & HAL_MODE_108G;
pCap->halPSPollBroken = AH_TRUE; /* XXX fixed in later revs? */
pCap->halNumMRRetries = 4; /* Hardware supports 4 MRR */
pCap->halVEOLSupport = AH_TRUE;
pCap->halBssIdMaskSupport = AH_TRUE;
pCap->halMcastKeySrchSupport = AH_TRUE; /* Works on AR5416 and later */