mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-14 16:46:15 -04:00
qcacmn: Extract Hw mode Id and band info
Extract/Save the Hw mode ID and Mac0 band info to hw mode list. This helps to identify the 2x2 5G + 1x1 2G and 2x2 2G + 1x1 5G. Change-Id: I0682337b1a80c1b502c3307e0847aaa99479d2d3 CRs-Fixed: 2256152
This commit is contained in:
parent
afa4e1b224
commit
e57b6b7417
5 changed files with 78 additions and 37 deletions
|
|
@ -855,8 +855,9 @@ struct policy_mgr_conc_connection_info {
|
|||
* @mac1_rx_ss: MAC1 Rx spatial stream
|
||||
* @mac0_bw: MAC0 bandwidth
|
||||
* @mac1_bw: MAC1 bandwidth
|
||||
* @dbs_cap: DBS capabality
|
||||
* @agile_dfs_cap: Agile DFS capabality
|
||||
* @mac0_band_cap: mac0 band (5g/2g) capability
|
||||
* @dbs_cap: DBS capability
|
||||
* @agile_dfs_cap: Agile DFS capability
|
||||
*/
|
||||
struct policy_mgr_hw_mode_params {
|
||||
uint8_t mac0_tx_ss;
|
||||
|
|
@ -865,6 +866,7 @@ struct policy_mgr_hw_mode_params {
|
|||
uint8_t mac1_rx_ss;
|
||||
uint8_t mac0_bw;
|
||||
uint8_t mac1_bw;
|
||||
uint8_t mac0_band_cap;
|
||||
uint8_t dbs_cap;
|
||||
uint8_t agile_dfs_cap;
|
||||
uint8_t sbs_cap;
|
||||
|
|
|
|||
|
|
@ -72,12 +72,15 @@ void policy_mgr_hw_mode_transition_cb(uint32_t old_hw_mode_index,
|
|||
return;
|
||||
}
|
||||
|
||||
policy_mgr_debug("MAC0: TxSS:%d, RxSS:%d, Bw:%d",
|
||||
hw_mode.mac0_tx_ss, hw_mode.mac0_rx_ss, hw_mode.mac0_bw);
|
||||
policy_mgr_debug("MAC0: TxSS:%d, RxSS:%d, Bw:%d band_cap:%d",
|
||||
hw_mode.mac0_tx_ss, hw_mode.mac0_rx_ss,
|
||||
hw_mode.mac0_bw, hw_mode.mac0_band_cap);
|
||||
policy_mgr_debug("MAC1: TxSS:%d, RxSS:%d, Bw:%d",
|
||||
hw_mode.mac1_tx_ss, hw_mode.mac1_rx_ss, hw_mode.mac1_bw);
|
||||
hw_mode.mac1_tx_ss, hw_mode.mac1_rx_ss,
|
||||
hw_mode.mac1_bw);
|
||||
policy_mgr_debug("DBS:%d, Agile DFS:%d, SBS:%d",
|
||||
hw_mode.dbs_cap, hw_mode.agile_dfs_cap, hw_mode.sbs_cap);
|
||||
hw_mode.dbs_cap, hw_mode.agile_dfs_cap,
|
||||
hw_mode.sbs_cap);
|
||||
|
||||
/* update pm_conc_connection_list */
|
||||
policy_mgr_update_hw_mode_conn_info(context, num_vdev_mac_entries,
|
||||
|
|
|
|||
|
|
@ -477,6 +477,7 @@ QDF_STATUS policy_mgr_get_hw_mode_from_idx(
|
|||
hw_mode->mac1_tx_ss = POLICY_MGR_HW_MODE_MAC1_TX_STREAMS_GET(param);
|
||||
hw_mode->mac1_rx_ss = POLICY_MGR_HW_MODE_MAC1_RX_STREAMS_GET(param);
|
||||
hw_mode->mac1_bw = POLICY_MGR_HW_MODE_MAC1_BANDWIDTH_GET(param);
|
||||
hw_mode->mac0_band_cap = POLICY_MGR_HW_MODE_MAC0_BAND_GET(param);
|
||||
hw_mode->dbs_cap = POLICY_MGR_HW_MODE_DBS_MODE_GET(param);
|
||||
hw_mode->agile_dfs_cap = POLICY_MGR_HW_MODE_AGILE_DFS_GET(param);
|
||||
hw_mode->sbs_cap = POLICY_MGR_HW_MODE_SBS_MODE_GET(param);
|
||||
|
|
@ -815,12 +816,15 @@ void policy_mgr_pdev_set_hw_mode_cb(uint32_t status,
|
|||
return;
|
||||
}
|
||||
|
||||
policy_mgr_debug("MAC0: TxSS:%d, RxSS:%d, Bw:%d",
|
||||
hw_mode.mac0_tx_ss, hw_mode.mac0_rx_ss, hw_mode.mac0_bw);
|
||||
policy_mgr_debug("MAC0: TxSS:%d, RxSS:%d, Bw:%d, band_cap %d",
|
||||
hw_mode.mac0_tx_ss, hw_mode.mac0_rx_ss,
|
||||
hw_mode.mac0_bw, hw_mode.mac0_band_cap);
|
||||
policy_mgr_debug("MAC1: TxSS:%d, RxSS:%d, Bw:%d",
|
||||
hw_mode.mac1_tx_ss, hw_mode.mac1_rx_ss, hw_mode.mac1_bw);
|
||||
hw_mode.mac1_tx_ss, hw_mode.mac1_rx_ss,
|
||||
hw_mode.mac1_bw);
|
||||
policy_mgr_debug("DBS:%d, Agile DFS:%d, SBS:%d",
|
||||
hw_mode.dbs_cap, hw_mode.agile_dfs_cap, hw_mode.sbs_cap);
|
||||
hw_mode.dbs_cap, hw_mode.agile_dfs_cap,
|
||||
hw_mode.sbs_cap);
|
||||
|
||||
/* update pm_conc_connection_list */
|
||||
policy_mgr_update_hw_mode_conn_info(context, num_vdev_mac_entries,
|
||||
|
|
|
|||
|
|
@ -154,6 +154,7 @@ static void policy_mgr_get_hw_mode_params(
|
|||
info->mac_bw = policy_mgr_map_wmi_channel_width_to_hw_mode_bw(
|
||||
QDF_MAX(caps->max_bw_supported_2G,
|
||||
caps->max_bw_supported_5G));
|
||||
info->mac_band_cap = caps->supported_bands;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -162,7 +163,8 @@ static void policy_mgr_get_hw_mode_params(
|
|||
* @wma_handle: pointer to wma global structure
|
||||
* @mac0_ss_bw_info: TX-RX streams, BW for MAC0
|
||||
* @mac1_ss_bw_info: TX-RX streams, BW for MAC1
|
||||
* @pos: refers to hw_mode_index
|
||||
* @pos: refers to hw_mode_list array index
|
||||
* @hw_mode_id: hw mode id value used by firmware
|
||||
* @dbs_mode: dbs_mode for the dbs_hw_mode
|
||||
* @sbs_mode: sbs_mode for the sbs_hw_mode
|
||||
*
|
||||
|
|
@ -174,7 +176,7 @@ static void policy_mgr_get_hw_mode_params(
|
|||
static void policy_mgr_set_hw_mode_params(struct wlan_objmgr_psoc *psoc,
|
||||
struct policy_mgr_mac_ss_bw_info mac0_ss_bw_info,
|
||||
struct policy_mgr_mac_ss_bw_info mac1_ss_bw_info,
|
||||
uint32_t pos, uint32_t dbs_mode,
|
||||
uint32_t pos, uint32_t hw_mode_id, uint32_t dbs_mode,
|
||||
uint32_t sbs_mode)
|
||||
{
|
||||
struct policy_mgr_psoc_priv_obj *pm_ctx;
|
||||
|
|
@ -212,6 +214,12 @@ static void policy_mgr_set_hw_mode_params(struct wlan_objmgr_psoc *psoc,
|
|||
POLICY_MGR_HW_MODE_SBS_MODE_SET(
|
||||
pm_ctx->hw_mode.hw_mode_list[pos],
|
||||
sbs_mode);
|
||||
POLICY_MGR_HW_MODE_MAC0_BAND_SET(
|
||||
pm_ctx->hw_mode.hw_mode_list[pos],
|
||||
mac0_ss_bw_info.mac_band_cap);
|
||||
POLICY_MGR_HW_MODE_ID_SET(
|
||||
pm_ctx->hw_mode.hw_mode_list[pos],
|
||||
hw_mode_id);
|
||||
}
|
||||
|
||||
QDF_STATUS policy_mgr_update_hw_mode_list(struct wlan_objmgr_psoc *psoc,
|
||||
|
|
@ -287,7 +295,8 @@ QDF_STATUS policy_mgr_update_hw_mode_list(struct wlan_objmgr_psoc *psoc,
|
|||
|
||||
/* Updating HW mode list */
|
||||
policy_mgr_set_hw_mode_params(psoc, mac0_ss_bw_info,
|
||||
mac1_ss_bw_info, i, dbs_mode, sbs_mode);
|
||||
mac1_ss_bw_info, i, tmp->hw_mode_id, dbs_mode,
|
||||
sbs_mode);
|
||||
}
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
|
@ -331,19 +340,21 @@ void policy_mgr_dump_dbs_hw_mode(struct wlan_objmgr_psoc *psoc)
|
|||
|
||||
for (i = 0; i < pm_ctx->num_dbs_hw_modes; i++) {
|
||||
param = pm_ctx->hw_mode.hw_mode_list[i];
|
||||
policy_mgr_debug("[%d]-MAC0: tx_ss:%d rx_ss:%d bw_idx:%d",
|
||||
i,
|
||||
POLICY_MGR_HW_MODE_MAC0_TX_STREAMS_GET(param),
|
||||
POLICY_MGR_HW_MODE_MAC0_RX_STREAMS_GET(param),
|
||||
POLICY_MGR_HW_MODE_MAC0_BANDWIDTH_GET(param));
|
||||
policy_mgr_debug("[%d]-MAC0: tx_ss:%d rx_ss:%d bw_idx:%d band_cap:%d",
|
||||
i,
|
||||
POLICY_MGR_HW_MODE_MAC0_TX_STREAMS_GET(param),
|
||||
POLICY_MGR_HW_MODE_MAC0_RX_STREAMS_GET(param),
|
||||
POLICY_MGR_HW_MODE_MAC0_BANDWIDTH_GET(param),
|
||||
POLICY_MGR_HW_MODE_MAC0_BAND_GET(param));
|
||||
policy_mgr_debug("[%d]-MAC1: tx_ss:%d rx_ss:%d bw_idx:%d",
|
||||
i,
|
||||
POLICY_MGR_HW_MODE_MAC1_TX_STREAMS_GET(param),
|
||||
POLICY_MGR_HW_MODE_MAC1_RX_STREAMS_GET(param),
|
||||
POLICY_MGR_HW_MODE_MAC1_BANDWIDTH_GET(param));
|
||||
policy_mgr_debug("[%d] DBS:%d SBS:%d", i,
|
||||
POLICY_MGR_HW_MODE_DBS_MODE_GET(param),
|
||||
POLICY_MGR_HW_MODE_SBS_MODE_GET(param));
|
||||
i,
|
||||
POLICY_MGR_HW_MODE_MAC1_TX_STREAMS_GET(param),
|
||||
POLICY_MGR_HW_MODE_MAC1_RX_STREAMS_GET(param),
|
||||
POLICY_MGR_HW_MODE_MAC1_BANDWIDTH_GET(param));
|
||||
policy_mgr_debug("[%d] DBS:%d SBS:%d hw_mode_id:%d", i,
|
||||
POLICY_MGR_HW_MODE_DBS_MODE_GET(param),
|
||||
POLICY_MGR_HW_MODE_SBS_MODE_GET(param),
|
||||
POLICY_MGR_HW_MODE_ID_GET(param));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -57,6 +57,8 @@
|
|||
#define POLICY_MGR_HW_MODE_DBS_MODE_BITPOS (7)
|
||||
#define POLICY_MGR_HW_MODE_AGILE_DFS_MODE_BITPOS (6)
|
||||
#define POLICY_MGR_HW_MODE_SBS_MODE_BITPOS (5)
|
||||
#define POLICY_MGR_HW_MODE_MAC0_BAND_BITPOS (3)
|
||||
#define POLICY_MGR_HW_MODE_ID_BITPOS (0)
|
||||
|
||||
#define POLICY_MGR_HW_MODE_MAC0_TX_STREAMS_MASK \
|
||||
(0xf << POLICY_MGR_HW_MODE_MAC0_TX_STREAMS_BITPOS)
|
||||
|
|
@ -76,6 +78,10 @@
|
|||
(0x1 << POLICY_MGR_HW_MODE_AGILE_DFS_MODE_BITPOS)
|
||||
#define POLICY_MGR_HW_MODE_SBS_MODE_MASK \
|
||||
(0x1 << POLICY_MGR_HW_MODE_SBS_MODE_BITPOS)
|
||||
#define POLICY_MGR_HW_MODE_MAC0_BAND_MASK \
|
||||
(0x3 << POLICY_MGR_HW_MODE_MAC0_BAND_BITPOS)
|
||||
#define POLICY_MGR_HW_MODE_ID_MASK \
|
||||
(0x7 << POLICY_MGR_HW_MODE_ID_BITPOS)
|
||||
|
||||
#define POLICY_MGR_HW_MODE_MAC0_TX_STREAMS_SET(hw_mode, value) \
|
||||
WMI_SET_BITS(hw_mode, POLICY_MGR_HW_MODE_MAC0_TX_STREAMS_BITPOS,\
|
||||
|
|
@ -104,34 +110,46 @@
|
|||
#define POLICY_MGR_HW_MODE_SBS_MODE_SET(hw_mode, value) \
|
||||
WMI_SET_BITS(hw_mode, POLICY_MGR_HW_MODE_SBS_MODE_BITPOS,\
|
||||
1, value)
|
||||
#define POLICY_MGR_HW_MODE_MAC0_BAND_SET(hw_mode, value) \
|
||||
WMI_SET_BITS(hw_mode, POLICY_MGR_HW_MODE_MAC0_BAND_BITPOS,\
|
||||
2, value)
|
||||
#define POLICY_MGR_HW_MODE_ID_SET(hw_mode, value) \
|
||||
WMI_SET_BITS(hw_mode, POLICY_MGR_HW_MODE_ID_BITPOS,\
|
||||
3, value)
|
||||
|
||||
#define POLICY_MGR_HW_MODE_MAC0_TX_STREAMS_GET(hw_mode) \
|
||||
((hw_mode & POLICY_MGR_HW_MODE_MAC0_TX_STREAMS_MASK) >> \
|
||||
(((hw_mode) & POLICY_MGR_HW_MODE_MAC0_TX_STREAMS_MASK) >> \
|
||||
POLICY_MGR_HW_MODE_MAC0_TX_STREAMS_BITPOS)
|
||||
#define POLICY_MGR_HW_MODE_MAC0_RX_STREAMS_GET(hw_mode) \
|
||||
((hw_mode & POLICY_MGR_HW_MODE_MAC0_RX_STREAMS_MASK) >> \
|
||||
(((hw_mode) & POLICY_MGR_HW_MODE_MAC0_RX_STREAMS_MASK) >> \
|
||||
POLICY_MGR_HW_MODE_MAC0_RX_STREAMS_BITPOS)
|
||||
#define POLICY_MGR_HW_MODE_MAC1_TX_STREAMS_GET(hw_mode) \
|
||||
((hw_mode & POLICY_MGR_HW_MODE_MAC1_TX_STREAMS_MASK) >> \
|
||||
(((hw_mode) & POLICY_MGR_HW_MODE_MAC1_TX_STREAMS_MASK) >> \
|
||||
POLICY_MGR_HW_MODE_MAC1_TX_STREAMS_BITPOS)
|
||||
#define POLICY_MGR_HW_MODE_MAC1_RX_STREAMS_GET(hw_mode) \
|
||||
((hw_mode & POLICY_MGR_HW_MODE_MAC1_RX_STREAMS_MASK) >> \
|
||||
(((hw_mode) & POLICY_MGR_HW_MODE_MAC1_RX_STREAMS_MASK) >> \
|
||||
POLICY_MGR_HW_MODE_MAC1_RX_STREAMS_BITPOS)
|
||||
#define POLICY_MGR_HW_MODE_MAC0_BANDWIDTH_GET(hw_mode) \
|
||||
((hw_mode & POLICY_MGR_HW_MODE_MAC0_BANDWIDTH_MASK) >> \
|
||||
(((hw_mode) & POLICY_MGR_HW_MODE_MAC0_BANDWIDTH_MASK) >> \
|
||||
POLICY_MGR_HW_MODE_MAC0_BANDWIDTH_BITPOS)
|
||||
#define POLICY_MGR_HW_MODE_MAC1_BANDWIDTH_GET(hw_mode) \
|
||||
((hw_mode & POLICY_MGR_HW_MODE_MAC1_BANDWIDTH_MASK) >> \
|
||||
(((hw_mode) & POLICY_MGR_HW_MODE_MAC1_BANDWIDTH_MASK) >> \
|
||||
POLICY_MGR_HW_MODE_MAC1_BANDWIDTH_BITPOS)
|
||||
#define POLICY_MGR_HW_MODE_DBS_MODE_GET(hw_mode) \
|
||||
((hw_mode & POLICY_MGR_HW_MODE_DBS_MODE_MASK) >> \
|
||||
(((hw_mode) & POLICY_MGR_HW_MODE_DBS_MODE_MASK) >> \
|
||||
POLICY_MGR_HW_MODE_DBS_MODE_BITPOS)
|
||||
#define POLICY_MGR_HW_MODE_AGILE_DFS_GET(hw_mode) \
|
||||
((hw_mode & POLICY_MGR_HW_MODE_AGILE_DFS_MODE_MASK) >> \
|
||||
(((hw_mode) & POLICY_MGR_HW_MODE_AGILE_DFS_MODE_MASK) >> \
|
||||
POLICY_MGR_HW_MODE_AGILE_DFS_MODE_BITPOS)
|
||||
#define POLICY_MGR_HW_MODE_SBS_MODE_GET(hw_mode) \
|
||||
((hw_mode & POLICY_MGR_HW_MODE_SBS_MODE_MASK) >> \
|
||||
(((hw_mode) & POLICY_MGR_HW_MODE_SBS_MODE_MASK) >> \
|
||||
POLICY_MGR_HW_MODE_SBS_MODE_BITPOS)
|
||||
#define POLICY_MGR_HW_MODE_MAC0_BAND_GET(hw_mode) \
|
||||
(((hw_mode) & POLICY_MGR_HW_MODE_MAC0_BAND_MASK) >> \
|
||||
POLICY_MGR_HW_MODE_MAC0_BAND_BITPOS)
|
||||
#define POLICY_MGR_HW_MODE_ID_GET(hw_mode) \
|
||||
(((hw_mode) & POLICY_MGR_HW_MODE_ID_MASK) >> \
|
||||
POLICY_MGR_HW_MODE_ID_BITPOS)
|
||||
|
||||
#define POLICY_MGR_DEFAULT_HW_MODE_INDEX 0xFFFF
|
||||
|
||||
|
|
@ -273,14 +291,17 @@ struct policy_mgr_psoc_priv_obj {
|
|||
|
||||
/**
|
||||
* struct policy_mgr_mac_ss_bw_info - hw_mode_list PHY/MAC params for each MAC
|
||||
* @mac_tx_stream: Max TX stream
|
||||
* @mac_rx_stream: Max RX stream
|
||||
* @mac_bw: Max bandwidth
|
||||
* @mac_tx_stream: Max TX stream number supported on MAC
|
||||
* @mac_rx_stream: Max RX stream number supported on MAC
|
||||
* @mac_bw: Max bandwidth(wmi_channel_width enum type)
|
||||
* @mac_band_cap: supported Band bit map(WLAN_2G_CAPABILITY = 0x1,
|
||||
* WLAN_5G_CAPABILITY = 0x2)
|
||||
*/
|
||||
struct policy_mgr_mac_ss_bw_info {
|
||||
uint32_t mac_tx_stream;
|
||||
uint32_t mac_rx_stream;
|
||||
uint32_t mac_bw;
|
||||
uint32_t mac_band_cap;
|
||||
};
|
||||
|
||||
struct policy_mgr_psoc_priv_obj *policy_mgr_get_context(
|
||||
|
|
|
|||
Loading…
Reference in a new issue