|
@@ -2251,88 +2251,6 @@ QDF_STATUS hdd_wmm_connect(struct hdd_adapter *adapter,
|
|
|
return QDF_STATUS_SUCCESS;
|
|
|
}
|
|
|
|
|
|
-/**
|
|
|
- * hdd_wmm_get_uapsd_mask() - Function which will calculate the
|
|
|
- * initial value of the UAPSD mask based upon the device configuration
|
|
|
- *
|
|
|
- * @adapter : [in] pointer to adapter context
|
|
|
- * @pUapsdMask: [out] pointer to where the UAPSD Mask is to be stored
|
|
|
- *
|
|
|
- * Return: QDF_STATUS enumeration
|
|
|
- */
|
|
|
-QDF_STATUS hdd_wmm_get_uapsd_mask(struct hdd_adapter *adapter,
|
|
|
- uint8_t *pUapsdMask)
|
|
|
-{
|
|
|
- uint8_t uapsdMask;
|
|
|
- QDF_STATUS status;
|
|
|
- struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
|
|
|
- uint32_t uapsd_value = 0;
|
|
|
- uint8_t wmm_mode = 0;
|
|
|
-
|
|
|
- status = ucfg_mlme_get_wmm_mode(hdd_ctx->psoc, &wmm_mode);
|
|
|
- if (!QDF_IS_STATUS_SUCCESS(status)) {
|
|
|
- hdd_err("Get wmm_mode failed");
|
|
|
- return QDF_STATUS_E_FAILURE;
|
|
|
- }
|
|
|
-
|
|
|
- if (HDD_WMM_USER_MODE_NO_QOS == wmm_mode) {
|
|
|
- /* no QOS then no UAPSD */
|
|
|
- uapsdMask = 0;
|
|
|
- } else {
|
|
|
- /* start with the default mask */
|
|
|
- status = ucfg_mlme_get_wmm_uapsd_mask(hdd_ctx->psoc,
|
|
|
- &uapsdMask);
|
|
|
- if (!QDF_IS_STATUS_SUCCESS(status)) {
|
|
|
- hdd_err("Get uapsd_mask failed");
|
|
|
- return QDF_STATUS_E_FAILURE;
|
|
|
- }
|
|
|
-
|
|
|
- /* disable UAPSD for any ACs with a 0 Service Interval */
|
|
|
- status = ucfg_mlme_get_wmm_uapsd_vo_srv_intv(hdd_ctx->psoc,
|
|
|
- &uapsd_value);
|
|
|
- if (QDF_IS_STATUS_ERROR(status)) {
|
|
|
- hdd_err("Get uapsd_srv_intv failed");
|
|
|
- return QDF_STATUS_E_FAILURE;
|
|
|
- }
|
|
|
-
|
|
|
- if (uapsd_value == 0)
|
|
|
- uapsdMask &= ~HDD_AC_VO;
|
|
|
-
|
|
|
- status = ucfg_mlme_get_wmm_uapsd_vi_srv_intv(
|
|
|
- hdd_ctx->psoc, &uapsd_value);
|
|
|
- if (!QDF_IS_STATUS_SUCCESS(status)) {
|
|
|
- hdd_err("Get uapsd_vi_srv_intv failed");
|
|
|
- return QDF_STATUS_E_FAILURE;
|
|
|
- }
|
|
|
- if (uapsd_value == 0) {
|
|
|
- uapsdMask &= ~HDD_AC_VI;
|
|
|
- }
|
|
|
-
|
|
|
- status = ucfg_mlme_get_wmm_uapsd_bk_srv_intv(hdd_ctx->psoc,
|
|
|
- &uapsd_value);
|
|
|
- if (!QDF_IS_STATUS_SUCCESS(status)) {
|
|
|
- hdd_err("Get uapsd_bk_srv_intv failed");
|
|
|
- return QDF_STATUS_E_FAILURE;
|
|
|
- }
|
|
|
- if (uapsd_value == 0)
|
|
|
- uapsdMask &= ~HDD_AC_BK;
|
|
|
-
|
|
|
- status = ucfg_mlme_get_wmm_uapsd_be_srv_intv(hdd_ctx->psoc,
|
|
|
- &uapsd_value);
|
|
|
- if (!QDF_IS_STATUS_SUCCESS(status)) {
|
|
|
- hdd_err("Get uapsd_be_srv_intv failed");
|
|
|
- return QDF_STATUS_E_FAILURE;
|
|
|
- }
|
|
|
- if (uapsd_value == 0) {
|
|
|
- uapsdMask &= ~HDD_AC_BE;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- /* return calculated mask */
|
|
|
- *pUapsdMask = uapsdMask;
|
|
|
- return QDF_STATUS_SUCCESS;
|
|
|
-}
|
|
|
-
|
|
|
/**
|
|
|
* hdd_wmm_is_active() - Function which will determine if WMM is
|
|
|
* active on the current connection
|