qcacld-3.0: Add support for QCA_WLAN_TWT_SET_PARAM command
Add support for QCA_WLAN_TWT_SET_PARAM command to configure QCA_WLAN_VENDOR_ATTR_TWT_SET_PARAM_AP_AC_VALUE attribute. This attribute provides access category value for WMI_PDEV_PARAM_TWT_AC_CONFIG. This is used by firmware to configure access category for TWT HW queue in TWT Responder mode(SAP). Change-Id: I5131967ff2061bf6afad7bc5f091a7eb5ee01b8a CRs-Fixed: 3168197
This commit is contained in:

committed by
Madan Koyyalamudi

parent
ad770886cb
commit
d75a1c786c
@@ -22,11 +22,11 @@
|
||||
#include <wlan_utility.h>
|
||||
#include <wlan_mlme_api.h>
|
||||
#include <wlan_mlme_main.h>
|
||||
#include "wlan_twt_main.h"
|
||||
#include "twt/core/src/wlan_twt_priv.h"
|
||||
#include "twt/core/src/wlan_twt_common.h"
|
||||
#include <wlan_twt_tgt_if_ext_tx_api.h>
|
||||
#include <wlan_serialization_api.h>
|
||||
#include "wlan_twt_main.h"
|
||||
|
||||
/**
|
||||
* wlan_twt_add_session() - Add TWT session entry in the TWT context
|
||||
@@ -1363,6 +1363,18 @@ QDF_STATUS wlan_twt_nudge_req(struct wlan_objmgr_psoc *psoc,
|
||||
return status;
|
||||
}
|
||||
|
||||
QDF_STATUS wlan_twt_ac_pdev_param_send(struct wlan_objmgr_psoc *psoc,
|
||||
enum twt_traffic_ac twt_ac)
|
||||
{
|
||||
QDF_STATUS status;
|
||||
|
||||
status = tgt_twt_ac_pdev_param_send(psoc, twt_ac);
|
||||
if (QDF_IS_STATUS_ERROR(status))
|
||||
twt_err("failed (status=%d)", status);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
/**
|
||||
* wlan_twt_sap_teardown_req() - sap TWT teardown request
|
||||
* @psoc: Pointer to psoc object
|
||||
|
@@ -116,6 +116,16 @@ wlan_twt_nudge_req(struct wlan_objmgr_psoc *psoc,
|
||||
struct twt_nudge_dialog_cmd_param *req,
|
||||
void *context);
|
||||
|
||||
/**
|
||||
* wlan_twt_ac_pdev_param_send() - pdev TWT param send
|
||||
* @psoc: Pointer to psoc object
|
||||
* @twt_ac: TWT access category
|
||||
*
|
||||
* Return: QDF Status
|
||||
*/
|
||||
QDF_STATUS wlan_twt_ac_pdev_param_send(struct wlan_objmgr_psoc *psoc,
|
||||
enum twt_traffic_ac twt_ac);
|
||||
|
||||
/**
|
||||
* wlan_twt_is_setup_in_progress() - Get if TWT setup command is in progress
|
||||
* for given dialog id
|
||||
|
@@ -78,4 +78,14 @@ QDF_STATUS
|
||||
tgt_twt_nudge_req_send(struct wlan_objmgr_psoc *psoc,
|
||||
struct twt_nudge_dialog_cmd_param *req);
|
||||
|
||||
/**
|
||||
* tgt_twt_ac_pdev_param_send() - pdev TWT param send
|
||||
* @psoc: Pointer to psoc object
|
||||
* @twt_ac: TWT access category
|
||||
*
|
||||
* Return: QDF Status
|
||||
*/
|
||||
QDF_STATUS
|
||||
tgt_twt_ac_pdev_param_send(struct wlan_objmgr_psoc *psoc,
|
||||
enum twt_traffic_ac twt_ac);
|
||||
#endif
|
||||
|
@@ -126,6 +126,17 @@ QDF_STATUS ucfg_twt_nudge_req(struct wlan_objmgr_psoc *psoc,
|
||||
struct twt_nudge_dialog_cmd_param *params,
|
||||
void *context);
|
||||
|
||||
/**
|
||||
* ucfg_twt_ac_pdev_param_send() - pdev TWT param send
|
||||
* @psoc: Pointer to psoc object
|
||||
* @twt_ac: TWT access category
|
||||
*
|
||||
* Return: QDF Status
|
||||
*/
|
||||
QDF_STATUS
|
||||
ucfg_twt_ac_pdev_param_send(struct wlan_objmgr_psoc *psoc,
|
||||
enum twt_traffic_ac twt_ac);
|
||||
|
||||
/**
|
||||
* ucfg_twt_is_max_sessions_reached() - Check if the maximum number of
|
||||
* TWT sessions reached or not excluding the given dialog_id
|
||||
|
@@ -173,3 +173,27 @@ tgt_twt_nudge_req_send(struct wlan_objmgr_psoc *psoc,
|
||||
return status;
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
tgt_twt_ac_pdev_param_send(struct wlan_objmgr_psoc *psoc,
|
||||
enum twt_traffic_ac twt_ac)
|
||||
{
|
||||
struct wlan_lmac_if_twt_tx_ops *tx_ops;
|
||||
QDF_STATUS status;
|
||||
|
||||
if (!psoc) {
|
||||
twt_err("psoc is null");
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
tx_ops = wlan_twt_get_tx_ops(psoc);
|
||||
if (!tx_ops || !tx_ops->set_ac_param) {
|
||||
twt_err("set_ac_param is null");
|
||||
status = QDF_STATUS_E_NULL_VALUE;
|
||||
return status;
|
||||
}
|
||||
|
||||
status = tx_ops->set_ac_param(psoc, twt_ac, 0);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
|
@@ -86,6 +86,13 @@ ucfg_twt_nudge_req(struct wlan_objmgr_psoc *psoc,
|
||||
return wlan_twt_nudge_req(psoc, params, context);
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
ucfg_twt_ac_pdev_param_send(struct wlan_objmgr_psoc *psoc,
|
||||
enum twt_traffic_ac twt_ac)
|
||||
{
|
||||
return wlan_twt_ac_pdev_param_send(psoc, twt_ac);
|
||||
}
|
||||
|
||||
bool ucfg_twt_is_max_sessions_reached(struct wlan_objmgr_psoc *psoc,
|
||||
struct qdf_mac_addr *peer_mac,
|
||||
uint8_t dialog_id)
|
||||
|
Reference in New Issue
Block a user