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

Commit 5314cf06 authored by Linux Build Service Account's avatar Linux Build Service Account
Browse files

Merge ba98d887 on remote branch

Change-Id: Ia5a13e4b53fd969176ba36210dbda2ab2b61d7ca
parents 5e3b9a77 ba98d887
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
/*
 * Copyright (c) 2016-2020 The Linux Foundation. All rights reserved.
 * Copyright (c) 2016-2021 The Linux Foundation. All rights reserved.
 * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
 *
 * Permission to use, copy, modify, and/or distribute this software for
 * any purpose with or without fee is hereby granted, provided that the
@@ -104,8 +105,9 @@ enum netif_action_type {
	WLAN_NETIF_VI_QUEUE_ON = 14,
	WLAN_NETIF_VI_QUEUE_OFF = 15,
	WLAN_NETIF_BE_BK_QUEUE_OFF = 16,
	WLAN_WAKE_NON_PRIORITY_QUEUE = 17,
	WLAN_STOP_NON_PRIORITY_QUEUE = 18,
	WLAN_NETIF_BE_BK_QUEUE_ON = 17,
	WLAN_WAKE_NON_PRIORITY_QUEUE = 18,
	WLAN_STOP_NON_PRIORITY_QUEUE = 19,
	WLAN_NETIF_ACTION_TYPE_MAX,
};

@@ -128,6 +130,10 @@ enum netif_reason_type {
	WLAN_PEER_UNAUTHORISED,
	WLAN_THERMAL_MITIGATION,
	WLAN_DATA_FLOW_CONTROL_PRIORITY,
	WLAN_DATA_FLOW_CTRL_BE_BK,
	WLAN_DATA_FLOW_CTRL_VI,
	WLAN_DATA_FLOW_CTRL_VO,
	WLAN_DATA_FLOW_CTRL_PRI,
	WLAN_REASON_TYPE_MAX,
};

+2 −0
Original line number Diff line number Diff line
@@ -1024,6 +1024,8 @@ struct cdp_tx_stats {
	uint32_t num_ppdu_cookie_valid;
	uint32_t no_ack_count[QDF_PROTO_SUBTYPE_MAX];
	struct cdp_pkt_info tx_success_twt;
	/* mpdu retry count in case of successful transmission */
	uint32_t mpdu_success_with_retries;
};

/* struct cdp_rx_stats - rx Level Stats
+2 −0
Original line number Diff line number Diff line
@@ -871,6 +871,8 @@ static inline void dp_update_vdev_stats(struct dp_soc *soc,
	tgtobj->tx.dropped.fw_reason3 +=
			srcobj->stats.tx.dropped.fw_reason3;
	tgtobj->tx.dropped.age_out += srcobj->stats.tx.dropped.age_out;
	tgtobj->tx.mpdu_success_with_retries +=
			srcobj->stats.tx.mpdu_success_with_retries;
	tgtobj->rx.err.mic_err += srcobj->stats.rx.err.mic_err;
	if (srcobj->stats.rx.rssi != 0)
		tgtobj->rx.rssi = srcobj->stats.rx.rssi;
+2 −1
Original line number Diff line number Diff line
@@ -5787,7 +5787,8 @@ static QDF_STATUS dp_vdev_attach_wifi3(struct cdp_soc_t *cdp_soc,
	dp_vdev_pdev_list_add(soc, pdev, vdev);
	pdev->vdev_count++;

	if (wlan_op_mode_sta != vdev->opmode)
	if (wlan_op_mode_sta != vdev->opmode &&
	    wlan_op_mode_ndi != vdev->opmode)
		vdev->ap_bridge_enabled = true;
	else
		vdev->ap_bridge_enabled = false;
+15 −6
Original line number Diff line number Diff line
@@ -1760,9 +1760,6 @@ dp_rx_defrag_store_fragment(struct dp_soc *soc,
		goto discard_frag;
	}

	pdev = peer->vdev->pdev;
	rx_tid = &peer->rx_tid[tid];

	mpdu_sequence_control_valid =
		hal_rx_get_mpdu_sequence_control_valid(soc->hal_soc,
						       rx_desc->rx_buf_start);
@@ -1797,10 +1794,15 @@ dp_rx_defrag_store_fragment(struct dp_soc *soc,
	 */
	fragno = dp_rx_frag_get_mpdu_frag_number(rx_desc->rx_buf_start);

	pdev = peer->vdev->pdev;
	rx_tid = &peer->rx_tid[tid];

	qdf_spin_lock_bh(&rx_tid->tid_lock);
	rx_reorder_array_elem = peer->rx_tid[tid].array;
	if (!rx_reorder_array_elem) {
		dp_err_rl("Rcvd Fragmented pkt before tid setup for peer %pK",
			  peer);
		qdf_spin_unlock_bh(&rx_tid->tid_lock);
		goto discard_frag;
	}

@@ -1818,6 +1820,7 @@ dp_rx_defrag_store_fragment(struct dp_soc *soc,
		QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR,
			"Rcvd unfragmented pkt on REO Err srng, dropping");

		qdf_spin_unlock_bh(&rx_tid->tid_lock);
		qdf_assert(0);
		goto discard_frag;
	}
@@ -1845,6 +1848,13 @@ dp_rx_defrag_store_fragment(struct dp_soc *soc,
			rx_tid->curr_seq_num = rxseq;
		}
	} else {
		/* Check if we are processing first fragment if it is
		 * not first fragment discard fragment.
		 */
		if (fragno) {
			qdf_spin_unlock_bh(&rx_tid->tid_lock);
			goto discard_frag;
		}
		dp_debug("cur rxseq %d\n", rxseq);
		/* Start of a new sequence */
		dp_rx_defrag_cleanup(peer, tid);
@@ -1856,11 +1866,9 @@ dp_rx_defrag_store_fragment(struct dp_soc *soc,
	 * If the earlier sequence was dropped, this will be the fresh start.
	 * Else, continue with next fragment in a given sequence
	 */
	qdf_spin_lock_bh(&rx_tid->tid_lock);
	status = dp_rx_defrag_fraglist_insert(peer, tid, &rx_reorder_array_elem->head,
			&rx_reorder_array_elem->tail, frag,
			&all_frag_present);
	qdf_spin_unlock_bh(&rx_tid->tid_lock);

	/*
	 * Currently, we can have only 6 MSDUs per-MPDU, if the current
@@ -1878,6 +1886,7 @@ dp_rx_defrag_store_fragment(struct dp_soc *soc,
		if (status != QDF_STATUS_SUCCESS) {
			QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
				"%s: Unable to store ring desc !", __func__);
			qdf_spin_unlock_bh(&rx_tid->tid_lock);
			goto discard_frag;
		}
	} else {
@@ -1906,6 +1915,7 @@ dp_rx_defrag_store_fragment(struct dp_soc *soc,

		dp_rx_defrag_waitlist_add(peer, tid);
		dp_peer_unref_delete(peer, DP_MOD_ID_RX_ERR);
		qdf_spin_unlock_bh(&rx_tid->tid_lock);

		return QDF_STATUS_SUCCESS;
	}
@@ -1914,7 +1924,6 @@ dp_rx_defrag_store_fragment(struct dp_soc *soc,
		  "All fragments received for sequence: %d", rxseq);

	/* Process the fragments */
	qdf_spin_lock_bh(&rx_tid->tid_lock);
	status = dp_rx_defrag(peer, tid, rx_reorder_array_elem->head,
		rx_reorder_array_elem->tail);
	if (QDF_IS_STATUS_ERROR(status)) {
Loading