|
@@ -2078,6 +2078,7 @@ ol_txrx_vdev_attach(struct cdp_pdev *ppdev,
|
|
|
sizeof(union ol_txrx_align_mac_addr_t));
|
|
|
qdf_spinlock_create(&vdev->flow_control_lock);
|
|
|
vdev->osif_flow_control_cb = NULL;
|
|
|
+ vdev->osif_flow_control_is_pause = NULL;
|
|
|
vdev->osif_fc_ctx = NULL;
|
|
|
|
|
|
/* Default MAX Q depth for every VDEV */
|
|
@@ -2264,6 +2265,7 @@ ol_txrx_vdev_detach(struct cdp_vdev *pvdev,
|
|
|
|
|
|
qdf_spin_lock_bh(&vdev->flow_control_lock);
|
|
|
vdev->osif_flow_control_cb = NULL;
|
|
|
+ vdev->osif_flow_control_is_pause = NULL;
|
|
|
vdev->osif_fc_ctx = NULL;
|
|
|
qdf_spin_unlock_bh(&vdev->flow_control_lock);
|
|
|
qdf_spinlock_destroy(&vdev->flow_control_lock);
|
|
@@ -4404,12 +4406,13 @@ static ol_txrx_vdev_handle ol_txrx_get_vdev_from_sta_id(uint8_t sta_id)
|
|
|
* @vdev_id: vdev_id
|
|
|
* @flowControl: flow control callback
|
|
|
* @osif_fc_ctx: callback context
|
|
|
+ * @flow_control_is_pause: is vdev paused by flow control
|
|
|
*
|
|
|
* Return: 0 for sucess or error code
|
|
|
*/
|
|
|
static int ol_txrx_register_tx_flow_control(uint8_t vdev_id,
|
|
|
- ol_txrx_tx_flow_control_fp flowControl,
|
|
|
- void *osif_fc_ctx)
|
|
|
+ ol_txrx_tx_flow_control_fp flowControl, void *osif_fc_ctx,
|
|
|
+ ol_txrx_tx_flow_control_is_pause_fp flow_control_is_pause)
|
|
|
{
|
|
|
struct ol_txrx_vdev_t *vdev =
|
|
|
(struct ol_txrx_vdev_t *)ol_txrx_get_vdev_from_vdev_id(vdev_id);
|
|
@@ -4422,6 +4425,7 @@ static int ol_txrx_register_tx_flow_control(uint8_t vdev_id,
|
|
|
|
|
|
qdf_spin_lock_bh(&vdev->flow_control_lock);
|
|
|
vdev->osif_flow_control_cb = flowControl;
|
|
|
+ vdev->osif_flow_control_is_pause = flow_control_is_pause;
|
|
|
vdev->osif_fc_ctx = osif_fc_ctx;
|
|
|
qdf_spin_unlock_bh(&vdev->flow_control_lock);
|
|
|
return 0;
|
|
@@ -4447,6 +4451,7 @@ static int ol_txrx_deregister_tx_flow_control_cb(uint8_t vdev_id)
|
|
|
|
|
|
qdf_spin_lock_bh(&vdev->flow_control_lock);
|
|
|
vdev->osif_flow_control_cb = NULL;
|
|
|
+ vdev->osif_flow_control_is_pause = NULL;
|
|
|
vdev->osif_fc_ctx = NULL;
|
|
|
qdf_spin_unlock_bh(&vdev->flow_control_lock);
|
|
|
return 0;
|