qcacmn: Add support to update peer freq

Add support to update peer freq info and
add changes to map link ID to band

Change-Id: I1115573c70d73ff83df415bb5732b8ff4109a787
CRs-Fixed: 3589666
このコミットが含まれているのは:
Amit Mehta
2023-08-16 14:46:53 +05:30
committed by Rahul Choudhary
コミット 3a860c18df
5個のファイルの変更142行の追加1行の削除

ファイルの表示

@@ -7993,6 +7993,61 @@ static QDF_STATUS dp_get_peer_param(struct cdp_soc_t *cdp_soc, uint8_t vdev_id,
return QDF_STATUS_SUCCESS;
}
#if defined(WLAN_FEATURE_11BE_MLO) && defined(DP_MLO_LINK_STATS_SUPPORT)
static inline void
dp_check_map_link_id_band(struct dp_peer *peer)
{
if (peer->link_id_valid)
dp_map_link_id_band(peer);
}
#else
static inline void
dp_check_map_link_id_band(struct dp_peer *peer)
{
}
#endif
/**
* dp_set_peer_freq() - Set peer frequency
* @cdp_soc: DP soc handle
* @vdev_id: id of vdev handle
* @peer_mac: peer mac address
* @param: parameter type to be set
* @val: value of parameter to be set
*
* Return: QDF_STATUS_SUCCESS for success. error code for failure.
*/
static inline QDF_STATUS
dp_set_peer_freq(struct cdp_soc_t *cdp_soc, uint8_t vdev_id,
uint8_t *peer_mac, enum cdp_peer_param_type param,
cdp_config_param_type val)
{
struct dp_peer *peer = NULL;
struct cdp_peer_info peer_info = { 0 };
DP_PEER_INFO_PARAMS_INIT(&peer_info, vdev_id, peer_mac,
false, CDP_LINK_PEER_TYPE);
peer = dp_peer_hash_find_wrapper((struct dp_soc *)cdp_soc,
&peer_info, DP_MOD_ID_CDP);
if (!peer) {
dp_err("peer NULL,MAC " QDF_MAC_ADDR_FMT ", vdev_id %u",
QDF_MAC_ADDR_REF(peer_mac), vdev_id);
return QDF_STATUS_E_FAILURE;
}
peer->freq = val.cdp_peer_param_freq;
dp_check_map_link_id_band(peer);
dp_peer_unref_delete(peer, DP_MOD_ID_CDP);
dp_info("Peer " QDF_MAC_ADDR_FMT " vdev_id %u, frequency %u",
QDF_MAC_ADDR_REF(peer_mac), vdev_id,
peer->freq);
return QDF_STATUS_SUCCESS;
}
/**
* dp_set_peer_param: function to set parameters in peer
* @cdp_soc: DP soc handle
@@ -8036,6 +8091,10 @@ static QDF_STATUS dp_set_peer_param(struct cdp_soc_t *cdp_soc, uint8_t vdev_id,
case CDP_CONFIG_IN_TWT:
txrx_peer->in_twt = !!(val.cdp_peer_param_in_twt);
break;
case CDP_CONFIG_PEER_FREQ:
return dp_set_peer_freq(cdp_soc, vdev_id,
peer_mac, param, val);
break;
default:
break;
}