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

Commit 0284b048 authored by Linux Build Service Account's avatar Linux Build Service Account
Browse files

Merge c8e095d9 on remote branch

Change-Id: I70e959ea1374851eabda52e4313dfccca29dc0b8
parents 470247df c8e095d9
Loading
Loading
Loading
Loading
+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)) {
+3 −1
Original line number Diff line number Diff line
@@ -2548,7 +2548,6 @@ qdf_nbuf_t dp_tx_send_msdu_multiple(struct dp_vdev *vdev, qdf_nbuf_t nbuf,
				    tid_tx_stats[tx_q->ring_id][msdu_info->tid];
			tid_stats->swdrop_cnt[TX_HW_ENQUEUE]++;

			dp_tx_desc_release(tx_desc, tx_q->desc_pool_id);
			if (msdu_info->frm_type == dp_tx_frm_me) {
				hw_enq_fail++;
				if (hw_enq_fail == msdu_info->num_seg) {
@@ -2574,6 +2573,7 @@ qdf_nbuf_t dp_tx_send_msdu_multiple(struct dp_vdev *vdev, qdf_nbuf_t nbuf,
						msdu_info->u.sg_info
						.curr_seg->next;
				i++;
				dp_tx_desc_release(tx_desc, tx_q->desc_pool_id);
				continue;
			}

@@ -2590,9 +2590,11 @@ qdf_nbuf_t dp_tx_send_msdu_multiple(struct dp_vdev *vdev, qdf_nbuf_t nbuf,
				 */
				dp_tx_comp_free_buf(soc, tx_desc);
				i++;
				dp_tx_desc_release(tx_desc, tx_q->desc_pool_id);
				continue;
			}

			dp_tx_desc_release(tx_desc, tx_q->desc_pool_id);
			goto done;
		}

+11 −1
Original line number Diff line number Diff line
@@ -716,8 +716,18 @@ bool scm_filter_match(struct wlan_objmgr_psoc *psoc,
		}
	}

	if (!match && filter->num_of_channels)
	if (!match && filter->num_of_channels) {
		/*
		 * Do not print if bssid/ssid is not present in filter to avoid
		 * excessive prints (e.g RRM case where only freq list is
		 * provided to get AP's in specific frequencies)
		 */
		if (filter->num_of_bssid || filter->num_of_ssid)
			scm_debug(QDF_MAC_ADDR_FMT" : Ignore as AP's freq %d is not in freq list",
				  QDF_MAC_ADDR_REF(db_entry->bssid.bytes),
				  db_entry->channel.chan_freq);
		return false;
	}

	if (filter->rrm_measurement_filter)
		return true;
+4 −1
Original line number Diff line number Diff line
/*
 * Copyright (c) 2013-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
@@ -366,6 +367,7 @@ static inline int wmi_process_qmi_fw_event(void *wmi_cb_ctx, void *buf, int len)
 * @buf: wmi command buffer
 * @buflen: wmi command buffer length
 * @cmd_id: WMI cmd id
 * @is_qmi_send_support:send by qmi is supported
 *
 * Note, it is NOT safe to access buf after calling this function!
 *
@@ -373,7 +375,8 @@ static inline int wmi_process_qmi_fw_event(void *wmi_cb_ctx, void *buf, int len)
 */
QDF_STATUS wmi_unified_cmd_send_pm_chk(struct wmi_unified *wmi_handle,
				       wmi_buf_t buf, uint32_t buflen,
				       uint32_t cmd_id);
				       uint32_t cmd_id,
				       bool is_qmi_send_support);

/**
 * wmi_unified_register_event() - WMI event handler
Loading