Merge "qcacmn: Add original vdev info for NSS update API"

This commit is contained in:
Linux Build Service Account 2018-10-22 22:03:17 -07:00 • committed by Gerrit - the friendly Code Review server
commit ea8c5466eb
4 changed files with 32 additions and 15 deletions

View file

@ -1021,6 +1021,7 @@ typedef void (*policy_mgr_pdev_set_hw_mode_cback)(uint32_t status,
* @next_action: next action to happen at policy mgr after
* beacon update
* @reason: Reason for nss update
* @original_vdev_id: original request hwmode change vdev id
*
* This function is the callback registered with SME at nss
* update request time
@ -1031,7 +1032,8 @@ typedef void (*policy_mgr_nss_update_cback)(struct wlan_objmgr_psoc *psoc,
uint8_t tx_status,
uint8_t vdev_id,
uint8_t next_action,
enum policy_mgr_conn_update_reason reason);
enum policy_mgr_conn_update_reason reason,
uint32_t original_vdev_id);
/**
* struct policy_mgr_sme_cbacks - SME Callbacks to be invoked
@ -1055,9 +1057,10 @@ struct policy_mgr_sme_cbacks {
QDF_STATUS (*sme_pdev_set_hw_mode)(struct policy_mgr_hw_mode msg);
QDF_STATUS (*sme_pdev_set_pcl)(struct policy_mgr_pcl_list *msg);
QDF_STATUS (*sme_nss_update_request)(uint32_t vdev_id,
uint8_t new_nss, policy_mgr_nss_update_cback cback,
uint8_t new_nss, policy_mgr_nss_update_cback cback,
uint8_t next_action, struct wlan_objmgr_psoc *psoc,
enum policy_mgr_conn_update_reason reason);
enum policy_mgr_conn_update_reason reason,
uint32_t original_vdev_id);
QDF_STATUS (*sme_change_mcc_beacon_interval)(uint8_t session_id);
QDF_STATUS (*sme_get_ap_channel_from_scan)(
void *roam_profile,

View file

@ -1066,7 +1066,8 @@ QDF_STATUS policy_mgr_next_actions(
* intially. If yes, update the beacon template & notify FW.
*/
status = policy_mgr_nss_update(psoc, POLICY_MGR_RX_NSS_1,
PM_NOP, POLICY_MGR_ANY, reason);
PM_NOP, POLICY_MGR_ANY, reason,
session_id);
break;
case PM_UPGRADE:
/*
@ -1074,7 +1075,8 @@ QDF_STATUS policy_mgr_next_actions(
* intially. If yes, update the beacon template & notify FW.
*/
status = policy_mgr_nss_update(psoc, POLICY_MGR_RX_NSS_2,
PM_NOP, POLICY_MGR_ANY, reason);
PM_NOP, POLICY_MGR_ANY, reason,
session_id);
break;
case PM_DBS1_DOWNGRADE:
status = policy_mgr_complete_action(psoc, POLICY_MGR_RX_NSS_1,
@ -1133,12 +1135,14 @@ QDF_STATUS policy_mgr_next_actions(
case PM_UPGRADE_5G:
status = policy_mgr_nss_update(
psoc, POLICY_MGR_RX_NSS_2,
PM_NOP, POLICY_MGR_BAND_5, reason);
PM_NOP, POLICY_MGR_BAND_5, reason,
session_id);
break;
case PM_UPGRADE_2G:
status = policy_mgr_nss_update(
psoc, POLICY_MGR_RX_NSS_2,
PM_NOP, POLICY_MGR_BAND_24, reason);
PM_NOP, POLICY_MGR_BAND_24, reason,
session_id);
break;
default:
policy_mgr_err("unexpected action value %d", action);

View file

@ -2517,6 +2517,7 @@ bool policy_mgr_is_5g_channel_allowed(struct wlan_objmgr_psoc *psoc,
* @next_action: next action to happen at policy mgr after
* beacon update
* @reason: Reason for nss update
* @original_vdev_id: original request hwmode change vdev id
*
* This function is the callback registered with SME at nss
* update request time
@ -2527,7 +2528,8 @@ static void policy_mgr_nss_update_cb(struct wlan_objmgr_psoc *psoc,
uint8_t tx_status,
uint8_t vdev_id,
uint8_t next_action,
enum policy_mgr_conn_update_reason reason)
enum policy_mgr_conn_update_reason reason,
uint32_t original_vdev_id)
{
uint32_t conn_index = 0;
QDF_STATUS ret;
@ -2545,9 +2547,11 @@ static void policy_mgr_nss_update_cb(struct wlan_objmgr_psoc *psoc,
return;
}
policy_mgr_debug("nss update successful for vdev:%d", vdev_id);
policy_mgr_debug("nss update successful for vdev:%d ori %d reason %d",
vdev_id, original_vdev_id, reason);
if (PM_NOP != next_action)
policy_mgr_next_actions(psoc, vdev_id, next_action, reason);
policy_mgr_next_actions(psoc, original_vdev_id, next_action,
reason);
else {
policy_mgr_debug("No action needed right now");
ret = policy_mgr_set_opportunistic_update(psoc);
@ -2561,7 +2565,8 @@ static void policy_mgr_nss_update_cb(struct wlan_objmgr_psoc *psoc,
QDF_STATUS policy_mgr_nss_update(struct wlan_objmgr_psoc *psoc,
uint8_t new_nss, uint8_t next_action,
enum policy_mgr_band band,
enum policy_mgr_conn_update_reason reason)
enum policy_mgr_conn_update_reason reason,
uint32_t original_vdev_id)
{
QDF_STATUS status = QDF_STATUS_E_FAILURE;
uint32_t index, count;
@ -2604,7 +2609,8 @@ QDF_STATUS policy_mgr_nss_update(struct wlan_objmgr_psoc *psoc,
status = pm_ctx->sme_cbacks.sme_nss_update_request(
vdev_id, new_nss,
policy_mgr_nss_update_cb,
next_action, psoc, reason);
next_action, psoc, reason,
original_vdev_id);
if (!QDF_IS_STATUS_SUCCESS(status)) {
policy_mgr_err("sme_nss_update_request() failed for vdev %d",
vdev_id);
@ -2637,7 +2643,8 @@ QDF_STATUS policy_mgr_nss_update(struct wlan_objmgr_psoc *psoc,
status = pm_ctx->sme_cbacks.sme_nss_update_request(
vdev_id, new_nss,
policy_mgr_nss_update_cb,
next_action, psoc, reason);
next_action, psoc, reason,
original_vdev_id);
if (!QDF_IS_STATUS_SUCCESS(status)) {
policy_mgr_err("sme_nss_update_request() failed for vdev %d",
vdev_id);
@ -2690,7 +2697,8 @@ QDF_STATUS policy_mgr_complete_action(struct wlan_objmgr_psoc *psoc,
downgrade_band = POLICY_MGR_ANY;
status = policy_mgr_nss_update(psoc, new_nss, next_action,
downgrade_band, reason);
downgrade_band, reason,
session_id);
if (!QDF_IS_STATUS_SUCCESS(status))
status = policy_mgr_next_actions(psoc, session_id,
next_action, reason);

View file

@ -534,6 +534,7 @@ void policy_mgr_reg_chan_change_callback(struct wlan_objmgr_psoc *psoc,
* @next_action: Next action after nss update
* @band: update AP vdev on the Band.
* @reason: action reason
* @original_vdev_id: original request hwmode change vdev id
*
* The function will update AP vdevs on specific band.
* eg. band = POLICY_MGR_ANY will request to update all band (2g and 5g)
@ -543,7 +544,8 @@ void policy_mgr_reg_chan_change_callback(struct wlan_objmgr_psoc *psoc,
QDF_STATUS policy_mgr_nss_update(struct wlan_objmgr_psoc *psoc,
uint8_t new_nss, uint8_t next_action,
enum policy_mgr_band band,
enum policy_mgr_conn_update_reason reason);
enum policy_mgr_conn_update_reason reason,
uint32_t original_vdev_id);
/**
* policy_mgr_is_concurrency_allowed() - Check for allowed