qcacmn: Avoid exchanging dp handles with non dp modules
Corresponding changes in datapath for avoiding storage of dp handles in umac objects. Change-Id: I61ba9cca9a10cc7e3d618c7f1ec384dda2e85132
This commit is contained in:

committed by
nshrivas

parent
75d112497b
commit
61ec40476d
@@ -127,7 +127,7 @@ cdp_soc_attach_target(ol_txrx_soc_handle soc)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline struct cdp_vdev *
|
static inline QDF_STATUS
|
||||||
cdp_vdev_attach(ol_txrx_soc_handle soc, uint8_t pdev_id,
|
cdp_vdev_attach(ol_txrx_soc_handle soc, uint8_t pdev_id,
|
||||||
uint8_t *vdev_mac_addr, uint8_t vdev_id,
|
uint8_t *vdev_mac_addr, uint8_t vdev_id,
|
||||||
enum wlan_op_mode op_mode, enum wlan_op_subtype subtype)
|
enum wlan_op_mode op_mode, enum wlan_op_subtype subtype)
|
||||||
@@ -136,12 +136,12 @@ cdp_vdev_attach(ol_txrx_soc_handle soc, uint8_t pdev_id,
|
|||||||
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
||||||
"%s: Invalid Instance:", __func__);
|
"%s: Invalid Instance:", __func__);
|
||||||
QDF_BUG(0);
|
QDF_BUG(0);
|
||||||
return NULL;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!soc->ops->cmn_drv_ops ||
|
if (!soc->ops->cmn_drv_ops ||
|
||||||
!soc->ops->cmn_drv_ops->txrx_vdev_attach)
|
!soc->ops->cmn_drv_ops->txrx_vdev_attach)
|
||||||
return NULL;
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
|
||||||
return soc->ops->cmn_drv_ops->txrx_vdev_attach(soc, pdev_id,
|
return soc->ops->cmn_drv_ops->txrx_vdev_attach(soc, pdev_id,
|
||||||
vdev_mac_addr, vdev_id,
|
vdev_mac_addr, vdev_id,
|
||||||
@@ -242,7 +242,7 @@ cdp_pdev_attach_target(ol_txrx_soc_handle soc, uint8_t pdev_id)
|
|||||||
return soc->ops->cmn_drv_ops->txrx_pdev_attach_target(soc, pdev_id);
|
return soc->ops->cmn_drv_ops->txrx_pdev_attach_target(soc, pdev_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline struct cdp_pdev *cdp_pdev_attach
|
static inline QDF_STATUS cdp_pdev_attach
|
||||||
(ol_txrx_soc_handle soc, HTC_HANDLE htc_pdev, qdf_device_t osdev,
|
(ol_txrx_soc_handle soc, HTC_HANDLE htc_pdev, qdf_device_t osdev,
|
||||||
uint8_t pdev_id)
|
uint8_t pdev_id)
|
||||||
{
|
{
|
||||||
@@ -250,12 +250,12 @@ static inline struct cdp_pdev *cdp_pdev_attach
|
|||||||
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
||||||
"%s: Invalid Instance:", __func__);
|
"%s: Invalid Instance:", __func__);
|
||||||
QDF_BUG(0);
|
QDF_BUG(0);
|
||||||
return NULL;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!soc->ops->cmn_drv_ops ||
|
if (!soc->ops->cmn_drv_ops ||
|
||||||
!soc->ops->cmn_drv_ops->txrx_pdev_attach)
|
!soc->ops->cmn_drv_ops->txrx_pdev_attach)
|
||||||
return NULL;
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
|
||||||
return soc->ops->cmn_drv_ops->txrx_pdev_attach(soc, htc_pdev, osdev,
|
return soc->ops->cmn_drv_ops->txrx_pdev_attach(soc, htc_pdev, osdev,
|
||||||
pdev_id);
|
pdev_id);
|
||||||
@@ -351,7 +351,7 @@ cdp_pdev_deinit(ol_txrx_soc_handle soc, uint8_t pdev_id, int force)
|
|||||||
soc->ops->cmn_drv_ops->txrx_pdev_deinit(soc, pdev_id, force);
|
soc->ops->cmn_drv_ops->txrx_pdev_deinit(soc, pdev_id, force);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void *cdp_peer_create
|
static inline QDF_STATUS cdp_peer_create
|
||||||
(ol_txrx_soc_handle soc, uint8_t vdev_id,
|
(ol_txrx_soc_handle soc, uint8_t vdev_id,
|
||||||
uint8_t *peer_mac_addr)
|
uint8_t *peer_mac_addr)
|
||||||
{
|
{
|
||||||
@@ -359,12 +359,12 @@ static inline void *cdp_peer_create
|
|||||||
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
|
||||||
"%s: Invalid Instance:", __func__);
|
"%s: Invalid Instance:", __func__);
|
||||||
QDF_BUG(0);
|
QDF_BUG(0);
|
||||||
return NULL;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!soc->ops->cmn_drv_ops ||
|
if (!soc->ops->cmn_drv_ops ||
|
||||||
!soc->ops->cmn_drv_ops->txrx_peer_create)
|
!soc->ops->cmn_drv_ops->txrx_peer_create)
|
||||||
return NULL;
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
|
||||||
return soc->ops->cmn_drv_ops->txrx_peer_create(soc, vdev_id,
|
return soc->ops->cmn_drv_ops->txrx_peer_create(soc, vdev_id,
|
||||||
peer_mac_addr);
|
peer_mac_addr);
|
||||||
|
@@ -69,7 +69,7 @@ struct cdp_cmn_ops {
|
|||||||
|
|
||||||
int (*txrx_pdev_attach_target)(ol_txrx_soc_handle soc, uint8_t pdev_id);
|
int (*txrx_pdev_attach_target)(ol_txrx_soc_handle soc, uint8_t pdev_id);
|
||||||
|
|
||||||
struct cdp_vdev *(*txrx_vdev_attach)
|
QDF_STATUS (*txrx_vdev_attach)
|
||||||
(struct cdp_soc_t *soc, uint8_t pdev_id, uint8_t *mac,
|
(struct cdp_soc_t *soc, uint8_t pdev_id, uint8_t *mac,
|
||||||
uint8_t vdev_id, enum wlan_op_mode op_mode,
|
uint8_t vdev_id, enum wlan_op_mode op_mode,
|
||||||
enum wlan_op_subtype subtype);
|
enum wlan_op_subtype subtype);
|
||||||
@@ -79,7 +79,7 @@ struct cdp_cmn_ops {
|
|||||||
ol_txrx_vdev_delete_cb callback,
|
ol_txrx_vdev_delete_cb callback,
|
||||||
void *cb_context);
|
void *cb_context);
|
||||||
|
|
||||||
struct cdp_pdev *(*txrx_pdev_attach)
|
QDF_STATUS (*txrx_pdev_attach)
|
||||||
(ol_txrx_soc_handle soc, HTC_HANDLE htc_pdev,
|
(ol_txrx_soc_handle soc, HTC_HANDLE htc_pdev,
|
||||||
qdf_device_t osdev, uint8_t pdev_id);
|
qdf_device_t osdev, uint8_t pdev_id);
|
||||||
|
|
||||||
@@ -105,7 +105,8 @@ struct cdp_cmn_ops {
|
|||||||
(*txrx_pdev_deinit)(struct cdp_soc_t *soc, uint8_t pdev_id,
|
(*txrx_pdev_deinit)(struct cdp_soc_t *soc, uint8_t pdev_id,
|
||||||
int force);
|
int force);
|
||||||
|
|
||||||
void *(*txrx_peer_create)
|
QDF_STATUS
|
||||||
|
(*txrx_peer_create)
|
||||||
(ol_txrx_soc_handle soc, uint8_t vdev_id,
|
(ol_txrx_soc_handle soc, uint8_t vdev_id,
|
||||||
uint8_t *peer_mac_addr);
|
uint8_t *peer_mac_addr);
|
||||||
|
|
||||||
|
@@ -146,9 +146,9 @@ dp_soc_attach(struct cdp_ctrl_objmgr_psoc *ctrl_psoc, HTC_HANDLE htc_handle,
|
|||||||
qdf_device_t qdf_osdev,
|
qdf_device_t qdf_osdev,
|
||||||
struct ol_if_ops *ol_ops, uint16_t device_id);
|
struct ol_if_ops *ol_ops, uint16_t device_id);
|
||||||
static void dp_pktlogmod_exit(struct dp_pdev *handle);
|
static void dp_pktlogmod_exit(struct dp_pdev *handle);
|
||||||
static inline void *dp_peer_create_wifi3(struct cdp_soc_t *soc_hdl,
|
static inline QDF_STATUS dp_peer_create_wifi3(struct cdp_soc_t *soc_hdl,
|
||||||
uint8_t vdev_id,
|
uint8_t vdev_id,
|
||||||
uint8_t *peer_mac_addr);
|
uint8_t *peer_mac_addr);
|
||||||
static QDF_STATUS dp_peer_delete_wifi3(struct cdp_soc_t *soc, uint8_t vdev_id,
|
static QDF_STATUS dp_peer_delete_wifi3(struct cdp_soc_t *soc, uint8_t vdev_id,
|
||||||
uint8_t *peer_mac, uint32_t bitmap);
|
uint8_t *peer_mac, uint32_t bitmap);
|
||||||
static void dp_ppdu_ring_reset(struct dp_pdev *pdev);
|
static void dp_ppdu_ring_reset(struct dp_pdev *pdev);
|
||||||
@@ -3521,10 +3521,12 @@ static QDF_STATUS dp_htt_ppdu_stats_attach(struct dp_pdev *pdev)
|
|||||||
* @qdf_osdev: QDF OS device
|
* @qdf_osdev: QDF OS device
|
||||||
* @pdev_id: PDEV ID
|
* @pdev_id: PDEV ID
|
||||||
*
|
*
|
||||||
* Return: DP PDEV handle on success, NULL on failure
|
* Return: QDF_STATUS
|
||||||
*/
|
*/
|
||||||
static struct cdp_pdev *dp_pdev_attach_wifi3(struct cdp_soc_t *txrx_soc,
|
static inline QDF_STATUS dp_pdev_attach_wifi3(struct cdp_soc_t *txrx_soc,
|
||||||
HTC_HANDLE htc_handle, qdf_device_t qdf_osdev, uint8_t pdev_id)
|
HTC_HANDLE htc_handle,
|
||||||
|
qdf_device_t qdf_osdev,
|
||||||
|
uint8_t pdev_id)
|
||||||
{
|
{
|
||||||
int ring_size;
|
int ring_size;
|
||||||
int entries;
|
int entries;
|
||||||
@@ -3533,6 +3535,7 @@ static struct cdp_pdev *dp_pdev_attach_wifi3(struct cdp_soc_t *txrx_soc,
|
|||||||
void *sojourn_buf;
|
void *sojourn_buf;
|
||||||
struct dp_soc *soc = (struct dp_soc *)txrx_soc;
|
struct dp_soc *soc = (struct dp_soc *)txrx_soc;
|
||||||
struct dp_pdev *pdev = NULL;
|
struct dp_pdev *pdev = NULL;
|
||||||
|
QDF_STATUS ret;
|
||||||
|
|
||||||
if (dp_is_soc_reinit(soc)) {
|
if (dp_is_soc_reinit(soc)) {
|
||||||
pdev = soc->pdev_list[pdev_id];
|
pdev = soc->pdev_list[pdev_id];
|
||||||
@@ -3544,6 +3547,7 @@ static struct cdp_pdev *dp_pdev_attach_wifi3(struct cdp_soc_t *txrx_soc,
|
|||||||
if (!pdev) {
|
if (!pdev) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
||||||
FL("DP PDEV memory allocation failed"));
|
FL("DP PDEV memory allocation failed"));
|
||||||
|
ret = QDF_STATUS_E_NOMEM;
|
||||||
goto fail0;
|
goto fail0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3558,6 +3562,7 @@ static struct cdp_pdev *dp_pdev_attach_wifi3(struct cdp_soc_t *txrx_soc,
|
|||||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
||||||
FL("Invalid peer memory allocation failed"));
|
FL("Invalid peer memory allocation failed"));
|
||||||
qdf_mem_free(pdev);
|
qdf_mem_free(pdev);
|
||||||
|
ret = QDF_STATUS_E_NOMEM;
|
||||||
goto fail0;
|
goto fail0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3570,6 +3575,7 @@ static struct cdp_pdev *dp_pdev_attach_wifi3(struct cdp_soc_t *txrx_soc,
|
|||||||
|
|
||||||
qdf_mem_free(pdev->invalid_peer);
|
qdf_mem_free(pdev->invalid_peer);
|
||||||
qdf_mem_free(pdev);
|
qdf_mem_free(pdev);
|
||||||
|
ret = QDF_STATUS_E_FAILURE;
|
||||||
goto fail0;
|
goto fail0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3600,6 +3606,7 @@ static struct cdp_pdev *dp_pdev_attach_wifi3(struct cdp_soc_t *txrx_soc,
|
|||||||
if (dp_soc_cmn_setup(soc)) {
|
if (dp_soc_cmn_setup(soc)) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
||||||
FL("dp_soc_cmn_setup failed"));
|
FL("dp_soc_cmn_setup failed"));
|
||||||
|
ret = QDF_STATUS_E_FAILURE;
|
||||||
goto fail1;
|
goto fail1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3612,6 +3619,7 @@ static struct cdp_pdev *dp_pdev_attach_wifi3(struct cdp_soc_t *txrx_soc,
|
|||||||
pdev_id, pdev_id, ring_size, 0)) {
|
pdev_id, pdev_id, ring_size, 0)) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
||||||
FL("dp_srng_setup failed for tcl_data_ring"));
|
FL("dp_srng_setup failed for tcl_data_ring"));
|
||||||
|
ret = QDF_STATUS_E_FAILURE;
|
||||||
goto fail1;
|
goto fail1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3623,6 +3631,7 @@ static struct cdp_pdev *dp_pdev_attach_wifi3(struct cdp_soc_t *txrx_soc,
|
|||||||
ring_size, 0)) {
|
ring_size, 0)) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
||||||
FL("dp_srng_setup failed for tx_comp_ring"));
|
FL("dp_srng_setup failed for tx_comp_ring"));
|
||||||
|
ret = QDF_STATUS_E_FAILURE;
|
||||||
goto fail1;
|
goto fail1;
|
||||||
}
|
}
|
||||||
soc->num_tcl_data_rings++;
|
soc->num_tcl_data_rings++;
|
||||||
@@ -3632,6 +3641,7 @@ static struct cdp_pdev *dp_pdev_attach_wifi3(struct cdp_soc_t *txrx_soc,
|
|||||||
if (dp_tx_pdev_attach(pdev)) {
|
if (dp_tx_pdev_attach(pdev)) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
||||||
FL("dp_tx_pdev_attach failed"));
|
FL("dp_tx_pdev_attach failed"));
|
||||||
|
ret = QDF_STATUS_E_FAILURE;
|
||||||
goto fail1;
|
goto fail1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3642,6 +3652,7 @@ static struct cdp_pdev *dp_pdev_attach_wifi3(struct cdp_soc_t *txrx_soc,
|
|||||||
pdev_id, pdev_id, ring_size, 0)) {
|
pdev_id, pdev_id, ring_size, 0)) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
||||||
FL("dp_srng_setup failed for reo_dest_ringn"));
|
FL("dp_srng_setup failed for reo_dest_ringn"));
|
||||||
|
ret = QDF_STATUS_E_FAILURE;
|
||||||
goto fail1;
|
goto fail1;
|
||||||
}
|
}
|
||||||
soc->num_reo_dest_rings++;
|
soc->num_reo_dest_rings++;
|
||||||
@@ -3654,18 +3665,21 @@ static struct cdp_pdev *dp_pdev_attach_wifi3(struct cdp_soc_t *txrx_soc,
|
|||||||
RXDMA_BUF, 0, pdev->lmac_id, ring_size, 0)) {
|
RXDMA_BUF, 0, pdev->lmac_id, ring_size, 0)) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
||||||
FL("dp_srng_setup failed rx refill ring"));
|
FL("dp_srng_setup failed rx refill ring"));
|
||||||
|
ret = QDF_STATUS_E_FAILURE;
|
||||||
goto fail1;
|
goto fail1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dp_rxdma_ring_setup(soc, pdev)) {
|
if (dp_rxdma_ring_setup(soc, pdev)) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
||||||
FL("RXDMA ring config failed"));
|
FL("RXDMA ring config failed"));
|
||||||
|
ret = QDF_STATUS_E_FAILURE;
|
||||||
goto fail1;
|
goto fail1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dp_mon_rings_setup(soc, pdev)) {
|
if (dp_mon_rings_setup(soc, pdev)) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
||||||
FL("MONITOR rings setup failed"));
|
FL("MONITOR rings setup failed"));
|
||||||
|
ret = QDF_STATUS_E_FAILURE;
|
||||||
goto fail1;
|
goto fail1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3677,19 +3691,25 @@ static struct cdp_pdev *dp_pdev_attach_wifi3(struct cdp_soc_t *txrx_soc,
|
|||||||
0, pdev->lmac_id, entries, 0)) {
|
0, pdev->lmac_id, entries, 0)) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
||||||
FL(RNG_ERR "rxdma_err_dst_ring"));
|
FL(RNG_ERR "rxdma_err_dst_ring"));
|
||||||
|
ret = QDF_STATUS_E_FAILURE;
|
||||||
goto fail1;
|
goto fail1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dp_setup_ipa_rx_refill_buf_ring(soc, pdev))
|
if (dp_setup_ipa_rx_refill_buf_ring(soc, pdev)) {
|
||||||
|
ret = QDF_STATUS_E_FAILURE;
|
||||||
goto fail1;
|
goto fail1;
|
||||||
|
}
|
||||||
|
|
||||||
if (dp_ipa_ring_resource_setup(soc, pdev))
|
if (dp_ipa_ring_resource_setup(soc, pdev)) {
|
||||||
|
ret = QDF_STATUS_E_FAILURE;
|
||||||
goto fail1;
|
goto fail1;
|
||||||
|
}
|
||||||
|
|
||||||
if (dp_ipa_uc_attach(soc, pdev) != QDF_STATUS_SUCCESS) {
|
if (dp_ipa_uc_attach(soc, pdev) != QDF_STATUS_SUCCESS) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
||||||
FL("dp_ipa_uc_attach failed"));
|
FL("dp_ipa_uc_attach failed"));
|
||||||
|
ret = QDF_STATUS_E_FAILURE;
|
||||||
goto fail1;
|
goto fail1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3697,6 +3717,7 @@ static struct cdp_pdev *dp_pdev_attach_wifi3(struct cdp_soc_t *txrx_soc,
|
|||||||
if (dp_rx_pdev_attach(pdev)) {
|
if (dp_rx_pdev_attach(pdev)) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
||||||
FL("dp_rx_pdev_attach failed"));
|
FL("dp_rx_pdev_attach failed"));
|
||||||
|
ret = QDF_STATUS_E_FAILURE;
|
||||||
goto fail2;
|
goto fail2;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3720,12 +3741,14 @@ static struct cdp_pdev *dp_pdev_attach_wifi3(struct cdp_soc_t *txrx_soc,
|
|||||||
if (dp_rx_pdev_mon_attach(pdev)) {
|
if (dp_rx_pdev_mon_attach(pdev)) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR,
|
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR,
|
||||||
"dp_rx_pdev_mon_attach failed");
|
"dp_rx_pdev_mon_attach failed");
|
||||||
|
ret = QDF_STATUS_E_FAILURE;
|
||||||
goto fail2;
|
goto fail2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dp_wdi_event_attach(pdev)) {
|
if (dp_wdi_event_attach(pdev)) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR,
|
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR,
|
||||||
"dp_wdi_evet_attach failed");
|
"dp_wdi_evet_attach failed");
|
||||||
|
ret = QDF_STATUS_E_FAILURE;
|
||||||
goto wdi_attach_fail;
|
goto wdi_attach_fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3760,12 +3783,14 @@ static struct cdp_pdev *dp_pdev_attach_wifi3(struct cdp_soc_t *txrx_soc,
|
|||||||
|
|
||||||
dp_init_tso_stats(pdev);
|
dp_init_tso_stats(pdev);
|
||||||
|
|
||||||
if (dp_htt_ppdu_stats_attach(pdev) != QDF_STATUS_SUCCESS)
|
if (dp_htt_ppdu_stats_attach(pdev) != QDF_STATUS_SUCCESS) {
|
||||||
|
ret = QDF_STATUS_E_FAILURE;
|
||||||
goto fail1;
|
goto fail1;
|
||||||
|
}
|
||||||
|
|
||||||
dp_tx_ppdu_stats_attach(pdev);
|
dp_tx_ppdu_stats_attach(pdev);
|
||||||
|
|
||||||
return (struct cdp_pdev *)pdev;
|
return QDF_STATUS_SUCCESS;
|
||||||
|
|
||||||
wdi_attach_fail:
|
wdi_attach_fail:
|
||||||
/*
|
/*
|
||||||
@@ -3783,7 +3808,7 @@ fail1:
|
|||||||
dp_pdev_detach((struct cdp_pdev *)pdev, 0);
|
dp_pdev_detach((struct cdp_pdev *)pdev, 0);
|
||||||
|
|
||||||
fail0:
|
fail0:
|
||||||
return NULL;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -4889,14 +4914,14 @@ dp_soc_attach_target_wifi3(struct cdp_soc_t *cdp_soc)
|
|||||||
* @wlan_op_mode: VDEV operating mode
|
* @wlan_op_mode: VDEV operating mode
|
||||||
* @subtype: VDEV operating subtype
|
* @subtype: VDEV operating subtype
|
||||||
*
|
*
|
||||||
* Return: DP VDEV handle on success, NULL on failure
|
* Return: status
|
||||||
*/
|
*/
|
||||||
static struct cdp_vdev *dp_vdev_attach_wifi3(struct cdp_soc_t *cdp_soc,
|
static QDF_STATUS dp_vdev_attach_wifi3(struct cdp_soc_t *cdp_soc,
|
||||||
uint8_t pdev_id,
|
uint8_t pdev_id,
|
||||||
uint8_t *vdev_mac_addr,
|
uint8_t *vdev_mac_addr,
|
||||||
uint8_t vdev_id,
|
uint8_t vdev_id,
|
||||||
enum wlan_op_mode op_mode,
|
enum wlan_op_mode op_mode,
|
||||||
enum wlan_op_subtype subtype)
|
enum wlan_op_subtype subtype)
|
||||||
{
|
{
|
||||||
struct dp_soc *soc = (struct dp_soc *)cdp_soc;
|
struct dp_soc *soc = (struct dp_soc *)cdp_soc;
|
||||||
struct dp_pdev *pdev =
|
struct dp_pdev *pdev =
|
||||||
@@ -4960,7 +4985,7 @@ static struct cdp_vdev *dp_vdev_attach_wifi3(struct cdp_soc_t *cdp_soc,
|
|||||||
|
|
||||||
if (wlan_op_mode_monitor == vdev->opmode) {
|
if (wlan_op_mode_monitor == vdev->opmode) {
|
||||||
pdev->monitor_vdev = vdev;
|
pdev->monitor_vdev = vdev;
|
||||||
return (struct cdp_vdev *)vdev;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
vdev->tx_encap_type = wlan_cfg_pkt_type(soc->wlan_cfg_ctx);
|
vdev->tx_encap_type = wlan_cfg_pkt_type(soc->wlan_cfg_ctx);
|
||||||
@@ -4997,10 +5022,10 @@ static struct cdp_vdev *dp_vdev_attach_wifi3(struct cdp_soc_t *cdp_soc,
|
|||||||
dp_peer_create_wifi3((struct cdp_soc_t *)soc, vdev_id,
|
dp_peer_create_wifi3((struct cdp_soc_t *)soc, vdev_id,
|
||||||
vdev->mac_addr.raw);
|
vdev->mac_addr.raw);
|
||||||
|
|
||||||
return (struct cdp_vdev *)vdev;
|
return QDF_STATUS_SUCCESS;
|
||||||
|
|
||||||
fail0:
|
fail0:
|
||||||
return NULL;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -5404,10 +5429,11 @@ static inline void dp_set_ignore_reo_status_cb(struct dp_soc *soc,
|
|||||||
* @vdev_id: id of vdev
|
* @vdev_id: id of vdev
|
||||||
* @peer_mac_addr: Peer MAC address
|
* @peer_mac_addr: Peer MAC address
|
||||||
*
|
*
|
||||||
* Return: DP peeer handle on success, NULL on failure
|
* Return: 0 on success, -1 on failure
|
||||||
*/
|
*/
|
||||||
static void *dp_peer_create_wifi3(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
|
static QDF_STATUS
|
||||||
uint8_t *peer_mac_addr)
|
dp_peer_create_wifi3(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
|
||||||
|
uint8_t *peer_mac_addr)
|
||||||
{
|
{
|
||||||
struct dp_peer *peer;
|
struct dp_peer *peer;
|
||||||
int i;
|
int i;
|
||||||
@@ -5418,7 +5444,7 @@ static void *dp_peer_create_wifi3(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
|
|||||||
struct dp_vdev *vdev = dp_get_vdev_from_soc_vdev_id_wifi3(soc, vdev_id);
|
struct dp_vdev *vdev = dp_get_vdev_from_soc_vdev_id_wifi3(soc, vdev_id);
|
||||||
|
|
||||||
if (!vdev || !peer_mac_addr)
|
if (!vdev || !peer_mac_addr)
|
||||||
return NULL;
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
|
||||||
pdev = vdev->pdev;
|
pdev = vdev->pdev;
|
||||||
soc = pdev->soc;
|
soc = pdev->soc;
|
||||||
@@ -5467,7 +5493,7 @@ static void *dp_peer_create_wifi3(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
|
|||||||
DP_STATS_INIT(peer);
|
DP_STATS_INIT(peer);
|
||||||
DP_STATS_UPD(peer, rx.avg_rssi, INVALID_RSSI);
|
DP_STATS_UPD(peer, rx.avg_rssi, INVALID_RSSI);
|
||||||
|
|
||||||
return (void *)peer;
|
return QDF_STATUS_SUCCESS;
|
||||||
} else {
|
} else {
|
||||||
/*
|
/*
|
||||||
* When a STA roams from RPTR AP to ROOT AP and vice versa, we
|
* When a STA roams from RPTR AP to ROOT AP and vice versa, we
|
||||||
@@ -5487,7 +5513,7 @@ static void *dp_peer_create_wifi3(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (!peer)
|
if (!peer)
|
||||||
return NULL; /* failure */
|
return QDF_STATUS_E_FAILURE; /* failure */
|
||||||
|
|
||||||
qdf_mem_zero(peer, sizeof(struct dp_peer));
|
qdf_mem_zero(peer, sizeof(struct dp_peer));
|
||||||
|
|
||||||
@@ -5587,7 +5613,7 @@ static void *dp_peer_create_wifi3(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
|
|||||||
peer_cookie.ctx;
|
peer_cookie.ctx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return (void *)peer;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Reference in New Issue
Block a user