Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5b08b9bc authored by Linux Build Service Account's avatar Linux Build Service Account
Browse files

Merge ddeb8d8c on remote branch

Change-Id: I58cc2b61de594d0cf300719e725fb6701c869261
parents 7bdec0ec ddeb8d8c
Loading
Loading
Loading
Loading
+14 −1
Original line number Diff line number Diff line
@@ -58,6 +58,17 @@ enum cdp_nac_param_cmd {
	CDP_NAC_PARAM_LIST,
};

#define CDP_DELBA_INTERVAL_MS 3000
/**
 * enum cdp_delba_rcode - CDP reason code for sending DELBA
 * @CDP_DELBA_REASON_NONE: None
 * @CDP_DELBA_2K_JUMP: Sending DELBA from 2k_jump_handle
 */
enum cdp_delba_rcode {
	CDP_DELBA_REASON_NONE = 0,
	CDP_DELBA_2K_JUMP,
};

/**
 * enum vdev_peer_protocol_enter_exit - whether ingress or egress
 * @CDP_VDEV_PEER_PROTOCOL_IS_INGRESS: ingress
@@ -1097,12 +1108,14 @@ struct ol_if_ops {
	 * @vdev_id: dp vdev id
	 * @peer_macaddr: Peer mac addr
	 * @tid: Tid number
	 * @reason_code: Reason code
	 * @cdp_rcode: CDP reason code for sending DELBA
	 *
	 * Return: 0 for success, non-zero for failure
	 */
	int (*send_delba)(struct cdp_ctrl_objmgr_psoc *psoc, uint8_t vdev_id,
			  uint8_t *peer_macaddr, uint8_t tid,
			  uint8_t reason_code);
			  uint8_t reason_code, uint8_t cdp_rcode);

	int
	(*peer_delete_multiple_wds_entries)(struct cdp_ctrl_objmgr_psoc *psoc,
+6 −3
Original line number Diff line number Diff line
@@ -3257,7 +3257,8 @@ static void dp_teardown_256_ba_sessions(struct dp_peer *peer)
							peer->vdev->pdev->soc->ctrl_psoc,
							peer->vdev->vdev_id,
							peer->mac_addr.raw,
							tid, delba_rcode);
							tid, delba_rcode,
							CDP_DELBA_REASON_NONE);
				} else {
					qdf_spin_unlock_bh(&rx_tid->tid_lock);
				}
@@ -3688,7 +3689,8 @@ int dp_delba_tx_completion_wifi3(struct cdp_soc_t *cdp_soc, uint8_t *peer_mac,
					peer->vdev->pdev->soc->ctrl_psoc,
					peer->vdev->vdev_id,
					peer->mac_addr.raw, tid,
					rx_tid->delba_rcode);
					rx_tid->delba_rcode,
					CDP_DELBA_REASON_NONE);
		}
		goto end;
	} else {
@@ -4075,7 +4077,8 @@ dp_rx_delba_ind_handler(void *soc_handle, uint16_t peer_id,
					peer->vdev->vdev_id,
					peer->mac_addr.raw,
					tid,
					rx_tid->delba_rcode);
					rx_tid->delba_rcode,
					CDP_DELBA_REASON_NONE);
		}
	} else {
		QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
+1 −1
Original line number Diff line number Diff line
@@ -2459,7 +2459,7 @@ uint32_t dp_rx_process(struct dp_intr *int_ctx, hal_ring_handle_t hal_ring_hdl,
					   ring_desc, rx_desc);
		if (QDF_IS_STATUS_ERROR(status)) {
			if (qdf_unlikely(rx_desc && rx_desc->nbuf)) {
				qdf_assert_always(rx_desc->unmapped);
				qdf_assert_always(!rx_desc->unmapped);
				dp_ipa_reo_ctx_buf_mapping_lock(
							soc,
							reo_ring_num);
+3 −2
Original line number Diff line number Diff line
@@ -981,7 +981,8 @@ dp_2k_jump_handle(struct dp_soc *soc,
					peer->vdev->vdev_id,
					peer->mac_addr.raw,
					tid,
					rx_tid->delba_rcode);
					rx_tid->delba_rcode,
					CDP_DELBA_2K_JUMP);
		}
	} else {
		qdf_spin_unlock_bh(&rx_tid->tid_lock);
@@ -1693,7 +1694,7 @@ static int dp_rx_err_handle_msdu_buf(struct dp_soc *soc,

	/* After this point the rx_desc and nbuf are valid */
	dp_ipa_rx_buf_smmu_mapping_lock(soc);
	qdf_assert_always(rx_desc->unmapped);
	qdf_assert_always(!rx_desc->unmapped);
	dp_ipa_handle_rx_buf_smmu_mapping(soc,
					  rx_desc->nbuf,
					  RX_DATA_BUFFER_SIZE,
+32 −0
Original line number Diff line number Diff line
@@ -1562,6 +1562,36 @@ dp_tx_hw_desc_update_evt(uint8_t *hal_tx_desc_cached,
}
#endif

#if defined(CLEAR_SW2TCL_CONSUMED_DESC)
/**
 * dp_tx_clear_consumed_hw_descs - Reset all the consumed Tx ring descs to 0
 *
 * @soc: DP soc handle
 * @hal_ring_hdl: Source ring pointer
 *
 * Return: void
 */
static inline
void dp_tx_clear_consumed_hw_descs(struct dp_soc *soc,
				   hal_ring_handle_t hal_ring_hdl)
{
	void *desc = hal_srng_src_get_next_consumed(soc->hal_soc, hal_ring_hdl);

	while (desc) {
		hal_tx_desc_clear(desc);
		desc = hal_srng_src_get_next_consumed(soc->hal_soc,
						      hal_ring_hdl);
	}
}

#else
static inline
void dp_tx_clear_consumed_hw_descs(struct dp_soc *soc,
				   hal_ring_handle_t hal_ring_hdl)
{
}
#endif /* CLEAR_SW2TCL_CONSUMED_DESC */

/**
 * dp_tx_hw_enqueue() - Enqueue to TCL HW for transmit
 * @soc: DP Soc Handle
@@ -1697,6 +1727,8 @@ dp_tx_hw_enqueue(struct dp_soc *soc, struct dp_vdev *vdev,
		return status;
	}

	dp_tx_clear_consumed_hw_descs(soc, hal_ring_hdl);

	/* Sync cached descriptor with HW */

	hal_tx_desc = hal_srng_src_get_next(soc->hal_soc, hal_ring_hdl);
Loading