qcacld-3.0: Update UMAC vdev objmgr handle to DP vdev
At DP vdev registration update UMAC vdev objmgr handle to the DP vdev structure. Change-Id: I438cac1cc952ee8e1a4a372320e686d610b6c071 CRs-Fixed: 2236430
这个提交包含在:
@@ -2447,6 +2447,7 @@ ol_txrx_vdev_attach(struct cdp_pdev *ppdev,
|
||||
*
|
||||
* @txrx_vdev: the virtual device's data object
|
||||
* @osif_vdev: the virtual device's OS shim object
|
||||
* @ctrl_vdev: UMAC vdev objmgr handle
|
||||
* @txrx_ops: (pointers to)functions used for tx and rx data xfer
|
||||
*
|
||||
* The data object for a virtual device is created by the
|
||||
@@ -2460,9 +2461,9 @@ ol_txrx_vdev_attach(struct cdp_pdev *ppdev,
|
||||
* vdev objects, so the data SW can use the OS shim vdev handle
|
||||
* when passing rx data received by a vdev up to the OS shim.
|
||||
*/
|
||||
static void ol_txrx_vdev_register(struct cdp_vdev *pvdev,
|
||||
void *osif_vdev,
|
||||
struct ol_txrx_ops *txrx_ops)
|
||||
static void ol_txrx_vdev_register(struct cdp_vdev *pvdev, void *osif_vdev,
|
||||
struct cdp_ctrl_objmgr_vdev *ctrl_vdev,
|
||||
struct ol_txrx_ops *txrx_ops)
|
||||
{
|
||||
struct ol_txrx_vdev_t *vdev = (struct ol_txrx_vdev_t *)pvdev;
|
||||
|
||||
@@ -2473,6 +2474,7 @@ static void ol_txrx_vdev_register(struct cdp_vdev *pvdev,
|
||||
}
|
||||
|
||||
vdev->osif_dev = osif_vdev;
|
||||
vdev->ctrl_vdev = ctrl_vdev;
|
||||
vdev->rx = txrx_ops->rx.rx;
|
||||
vdev->stats_rx = txrx_ops->rx.stats_rx;
|
||||
vdev->tx_comp = txrx_ops->tx.tx_comp;
|
||||
|
@@ -1048,6 +1048,9 @@ struct ol_txrx_vdev_t {
|
||||
* to the target
|
||||
*/
|
||||
void *osif_dev;
|
||||
|
||||
void *ctrl_vdev; /* vdev objmgr handle */
|
||||
|
||||
union ol_txrx_align_mac_addr_t mac_addr; /* MAC address */
|
||||
/* tx paused - NO LONGER NEEDED? */
|
||||
TAILQ_ENTRY(ol_txrx_vdev_t) vdev_list_elem; /* node in the pdev's list
|
||||
|
@@ -2088,7 +2088,8 @@ QDF_STATUS hdd_roam_register_sta(struct hdd_adapter *adapter,
|
||||
|
||||
txrx_ops.tx.tx = NULL;
|
||||
cdp_vdev_register(soc,
|
||||
(struct cdp_vdev *)adapter->txrx_vdev, adapter, &txrx_ops);
|
||||
(struct cdp_vdev *)adapter->txrx_vdev, adapter,
|
||||
(struct cdp_ctrl_objmgr_vdev *)adapter->hdd_vdev, &txrx_ops);
|
||||
if (!txrx_ops.tx.tx) {
|
||||
hdd_err("%s vdev register fail", __func__);
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
@@ -3931,9 +3932,10 @@ QDF_STATUS hdd_roam_register_tdlssta(struct hdd_adapter *adapter,
|
||||
qdf_mem_zero(&txrx_ops, sizeof(txrx_ops));
|
||||
txrx_ops.rx.rx = hdd_rx_packet_cbk;
|
||||
cdp_vdev_register(soc,
|
||||
(struct cdp_vdev *)cdp_get_vdev_from_vdev_id(soc,
|
||||
(struct cdp_pdev *)pdev, adapter->session_id),
|
||||
adapter, &txrx_ops);
|
||||
(struct cdp_vdev *)cdp_get_vdev_from_vdev_id(soc,
|
||||
(struct cdp_pdev *)pdev, adapter->session_id),
|
||||
adapter, (struct cdp_ctrl_objmgr_vdev *)adapter->hdd_vdev,
|
||||
&txrx_ops);
|
||||
adapter->tx_fn = txrx_ops.tx.tx;
|
||||
txrx_ops.rx.stats_rx = hdd_tx_rx_collect_connectivity_stats_info;
|
||||
|
||||
|
@@ -256,7 +256,7 @@ static int hdd_ocb_register_sta(struct hdd_adapter *adapter)
|
||||
cdp_vdev_register(soc,
|
||||
(struct cdp_vdev *)cdp_get_vdev_from_vdev_id(soc,
|
||||
(struct cdp_pdev *)pdev, adapter->session_id),
|
||||
adapter, &txrx_ops);
|
||||
adapter, adapter->hdd_vdev, &txrx_ops);
|
||||
txrx_ops.rx.stats_rx = hdd_tx_rx_collect_connectivity_stats_info;
|
||||
adapter->tx_fn = txrx_ops.tx.tx;
|
||||
|
||||
|
@@ -1039,7 +1039,8 @@ QDF_STATUS hdd_softap_register_sta(struct hdd_adapter *adapter,
|
||||
cdp_vdev_register(soc,
|
||||
(struct cdp_vdev *)cdp_get_vdev_from_vdev_id(soc,
|
||||
(struct cdp_pdev *)pdev, adapter->session_id),
|
||||
adapter, &txrx_ops);
|
||||
adapter, (struct cdp_ctrl_objmgr_vdev *)adapter->hdd_vdev,
|
||||
&txrx_ops);
|
||||
adapter->txrx_vdev = (void *)cdp_get_vdev_from_vdev_id(soc,
|
||||
(struct cdp_pdev *)pdev,
|
||||
adapter->session_id);
|
||||
|
@@ -2409,7 +2409,8 @@ int hdd_set_mon_rx_cb(struct net_device *dev)
|
||||
cdp_vdev_register(soc,
|
||||
(struct cdp_vdev *)cdp_get_vdev_from_vdev_id(soc,
|
||||
(struct cdp_pdev *)pdev, adapter->session_id),
|
||||
adapter, &txrx_ops);
|
||||
adapter, (struct cdp_ctrl_objmgr_vdev *)adapter->hdd_vdev,
|
||||
&txrx_ops);
|
||||
/* peer is created wma_vdev_attach->wma_create_peer */
|
||||
qdf_status = cdp_peer_register(soc,
|
||||
(struct cdp_pdev *)pdev, &sta_desc);
|
||||
|
在新工单中引用
屏蔽一个用户