|
@@ -1183,11 +1183,13 @@ static void dp_soc_txrx_peer_setup_be(struct dp_soc *soc, uint8_t vdev_id,
|
|
{
|
|
{
|
|
struct dp_vdev_be *be_vdev;
|
|
struct dp_vdev_be *be_vdev;
|
|
QDF_STATUS qdf_status = QDF_STATUS_SUCCESS;
|
|
QDF_STATUS qdf_status = QDF_STATUS_SUCCESS;
|
|
- struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
|
|
|
|
|
|
+ struct dp_soc_be *be_soc;
|
|
struct cdp_ds_vp_params vp_params = {0};
|
|
struct cdp_ds_vp_params vp_params = {0};
|
|
- struct cdp_soc_t *cdp_soc = &soc->cdp_soc;
|
|
|
|
|
|
+ struct cdp_soc_t *cdp_soc;
|
|
enum wlan_op_mode vdev_opmode;
|
|
enum wlan_op_mode vdev_opmode;
|
|
struct dp_peer *peer;
|
|
struct dp_peer *peer;
|
|
|
|
+ struct dp_peer *tgt_peer = NULL;
|
|
|
|
+ struct dp_soc *tgt_soc = NULL;
|
|
|
|
|
|
peer = dp_peer_find_hash_find(soc, peer_mac, 0, vdev_id, DP_MOD_ID_CDP);
|
|
peer = dp_peer_find_hash_find(soc, peer_mac, 0, vdev_id, DP_MOD_ID_CDP);
|
|
if (!peer)
|
|
if (!peer)
|
|
@@ -1200,7 +1202,12 @@ static void dp_soc_txrx_peer_setup_be(struct dp_soc *soc, uint8_t vdev_id,
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
- be_vdev = dp_get_be_vdev_from_dp_vdev(peer->vdev);
|
|
|
|
|
|
+ tgt_peer = dp_get_tgt_peer_from_peer(peer);
|
|
|
|
+ tgt_soc = tgt_peer->vdev->pdev->soc;
|
|
|
|
+ be_soc = dp_get_be_soc_from_dp_soc(tgt_soc);
|
|
|
|
+ cdp_soc = &tgt_soc->cdp_soc;
|
|
|
|
+
|
|
|
|
+ be_vdev = dp_get_be_vdev_from_dp_vdev(tgt_peer->vdev);
|
|
if (!be_vdev) {
|
|
if (!be_vdev) {
|
|
qdf_err("BE vap is null");
|
|
qdf_err("BE vap is null");
|
|
qdf_status = QDF_STATUS_E_NULL_VALUE;
|
|
qdf_status = QDF_STATUS_E_NULL_VALUE;
|
|
@@ -1219,9 +1226,10 @@ static void dp_soc_txrx_peer_setup_be(struct dp_soc *soc, uint8_t vdev_id,
|
|
/*
|
|
/*
|
|
* Check if PPE DS routing is enabled on the associated vap.
|
|
* Check if PPE DS routing is enabled on the associated vap.
|
|
*/
|
|
*/
|
|
- qdf_status = cdp_soc->ol_ops->get_ppeds_profile_info_for_vap(soc->ctrl_psoc,
|
|
|
|
- peer->vdev->vdev_id,
|
|
|
|
- &vp_params);
|
|
|
|
|
|
+ qdf_status =
|
|
|
|
+ cdp_soc->ol_ops->get_ppeds_profile_info_for_vap(tgt_soc->ctrl_psoc,
|
|
|
|
+ tgt_peer->vdev->vdev_id,
|
|
|
|
+ &vp_params);
|
|
if (qdf_status == QDF_STATUS_E_NULL_VALUE) {
|
|
if (qdf_status == QDF_STATUS_E_NULL_VALUE) {
|
|
dp_err("%pK: Could not find ppeds profile info vdev\n", be_vdev);
|
|
dp_err("%pK: Could not find ppeds profile info vdev\n", be_vdev);
|
|
qdf_status = QDF_STATUS_E_NULL_VALUE;
|
|
qdf_status = QDF_STATUS_E_NULL_VALUE;
|
|
@@ -1229,7 +1237,7 @@ static void dp_soc_txrx_peer_setup_be(struct dp_soc *soc, uint8_t vdev_id,
|
|
}
|
|
}
|
|
|
|
|
|
if (vp_params.ppe_vp_type == PPE_VP_USER_TYPE_DS) {
|
|
if (vp_params.ppe_vp_type == PPE_VP_USER_TYPE_DS) {
|
|
- qdf_status = dp_peer_setup_ppeds_be(soc, peer, be_vdev,
|
|
|
|
|
|
+ qdf_status = dp_peer_setup_ppeds_be(tgt_soc, tgt_peer, be_vdev,
|
|
(void *)&be_soc->ppe_vp_profile[vp_params.ppe_vp_profile_idx]);
|
|
(void *)&be_soc->ppe_vp_profile[vp_params.ppe_vp_profile_idx]);
|
|
}
|
|
}
|
|
|
|
|