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

Unverified Commit c2b8f4b2 authored by Michael Bestas's avatar Michael Bestas
Browse files

Merge tag 'LA.UM.9.14.r1-22400-LAHAINA.QSSI13.0' of...

Merge tag 'LA.UM.9.14.r1-22400-LAHAINA.QSSI13.0' of https://git.codelinaro.org/clo/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0 into android13-5.4-lahaina

"LA.UM.9.14.r1-22400-LAHAINA.QSSI13.0"

* tag 'LA.UM.9.14.r1-22400-LAHAINA.QSSI13.0' of https://git.codelinaro.org/clo/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0:
  Release 2.0.8.33M
  qcacld-3.0: Remove interface up dependency for usable channels
  Release 2.0.8.33L
  qcacld-3.0: Fix data rate for mgmt tx packets in packet capture mode
  Release 2.0.8.33K
  qcacld-3.0: Fix RSO state change in disconnected state
  Release 2.0.8.33J
  qcacld-3.0: Reset wait for hw mode change event
  Release 2.0.8.33I
  qcacld-3.0: Pause Tx when bus suspend in progress
  qcacld-3.0: Drop packets if suspend in progress
  Release 2.0.8.33H
  qcacld-3.0: Prefer power constraint over DTPC when both IE present
  qcacld-3.0: Fix low TPC power for vendor DTPC IE
  Release 2.0.8.33G
  qcacld-3.0: Add lock for multicast list update
  qcacld-3.0: Update NDP peer MC list
  Release 2.0.8.33F
  qcacld-3.0: add minimal UDP data length check for FISA

Change-Id: I1a99afdd89e0b540b3b0577426191e325812914b
parents 539e7be1 3131b518
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -1967,6 +1967,14 @@ QDF_STATUS policy_mgr_wait_for_connection_update(
 */
QDF_STATUS policy_mgr_reset_connection_update(struct wlan_objmgr_psoc *psoc);

/**
 * policy_mgr_reset_hw_mode_change() - Reset the hw mode change.
 * @psoc: Pointer to PSOC object
 *
 * Return: none
 */
void policy_mgr_reset_hw_mode_change(struct wlan_objmgr_psoc *psoc);

/**
 * policy_mgr_set_connection_update() - Set connection update
 * event
+8 −0
Original line number Diff line number Diff line
@@ -2609,6 +2609,14 @@ QDF_STATUS policy_mgr_reset_connection_update(struct wlan_objmgr_psoc *psoc)
	return QDF_STATUS_SUCCESS;
}

void policy_mgr_reset_hw_mode_change(struct wlan_objmgr_psoc *psoc)
{
	policy_mgr_err("Clear hw mode change and connection update evt");
	policy_mgr_set_hw_mode_change_in_progress(
			psoc, POLICY_MGR_HW_MODE_NOT_IN_PROGRESS);
	policy_mgr_reset_connection_update(psoc);
}

QDF_STATUS policy_mgr_set_connection_update(struct wlan_objmgr_psoc *psoc)
{
	QDF_STATUS status;
+3 −0
Original line number Diff line number Diff line
/*
 * Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
 * Copyright (c) 2023 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
@@ -788,6 +789,7 @@ struct nan_datapath_host_event {
 * @delete_peers_by_addr: LIM callback for deleting peer by MAC address
 * @update_ndi_conn: WMA callback to update NDI's connection info
 * @nan_concurrency_update: Callback to handle nan concurrency
 * @set_mc_list: HDD callback to set multicast peer list
 */
struct nan_callbacks {
	/* callback to os_if layer from umac */
@@ -813,6 +815,7 @@ struct nan_callbacks {
				      struct nan_datapath_channel_info
								    *chan_info);
	void (*nan_concurrency_update)(void);
	void (*set_mc_list)(struct wlan_objmgr_vdev *vdev);
};

/**
+39 −3
Original line number Diff line number Diff line
/*
 * Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
 * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
 * Copyright (c) 2021-2023 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
@@ -186,6 +186,37 @@ inline QDF_STATUS ucfg_nan_set_active_peers(struct wlan_objmgr_vdev *vdev,
	return QDF_STATUS_SUCCESS;
}

/**
 * ucfg_nan_update_mc_list() - update the multicast list
 * @vdev: Pointer to VDEV Object
 *
 * This function will update the multicast list for NDP peer
 */
static void ucfg_nan_update_mc_list(struct wlan_objmgr_vdev *vdev)
{
	struct nan_callbacks cb_obj;
	QDF_STATUS status;
	struct wlan_objmgr_psoc *psoc = wlan_vdev_get_psoc(vdev);

	if (!psoc) {
		nan_err("psoc is null");
		return;
	}

	status = ucfg_nan_get_callbacks(psoc, &cb_obj);
	if (QDF_IS_STATUS_ERROR(status)) {
		nan_err("Couldn't get callback object");
		return;
	}

	if (!cb_obj.set_mc_list) {
		nan_err("set_mc_list callback not registered");
		return;
	}

	cb_obj.set_mc_list(vdev);
}

inline void ucfg_nan_set_peer_mc_list(struct wlan_objmgr_vdev *vdev,
				      struct qdf_mac_addr peer_mac_addr)
{
@@ -215,7 +246,7 @@ inline void ucfg_nan_set_peer_mc_list(struct wlan_objmgr_vdev *vdev,
	}
	if (list_idx == max_ndp_sessions) {
		nan_err("Peer multicast address list is full");
		goto end;
		qdf_spin_unlock_bh(&priv_obj->lock);
	}
	/* Derive peer multicast addr */
	peer_mac_addr.bytes[0] = 0x33;
@@ -223,8 +254,9 @@ inline void ucfg_nan_set_peer_mc_list(struct wlan_objmgr_vdev *vdev,
	peer_mac_addr.bytes[2] = 0xff;
	priv_obj->peer_mc_addr_list[list_idx] = peer_mac_addr;

end:
	qdf_spin_unlock_bh(&priv_obj->lock);

	ucfg_nan_update_mc_list(vdev);
}

inline void ucfg_nan_get_peer_mc_list(
@@ -269,7 +301,10 @@ inline void ucfg_nan_clear_peer_mc_list(struct wlan_objmgr_psoc *psoc,
			break;
		}
	}

	qdf_spin_unlock_bh(&priv_obj->lock);

	ucfg_nan_update_mc_list(vdev);
}

inline uint32_t ucfg_nan_get_active_peers(struct wlan_objmgr_vdev *vdev)
@@ -623,6 +658,7 @@ int ucfg_nan_register_hdd_callbacks(struct wlan_objmgr_psoc *psoc,
				ucfg_nan_request_process_cb;
	psoc_obj->cb_obj.nan_concurrency_update =
				cb_obj->nan_concurrency_update;
	psoc_obj->cb_obj.set_mc_list = cb_obj->set_mc_list;

	return 0;
}
+8 −6
Original line number Diff line number Diff line
/*
 * Copyright (c) 2020, 2021 The Linux Foundation. All rights reserved.
 * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
 * Copyright (c) 2021-2023 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
@@ -362,6 +362,7 @@ pkt_capture_process_mgmt_tx_data(struct wlan_objmgr_pdev *pdev,
	struct wlan_objmgr_psoc *psoc;
	tpSirMacFrameCtl pfc = (tpSirMacFrameCtl)(qdf_nbuf_data(nbuf));
	struct ieee80211_frame *wh;
	uint16_t rate;

	psoc = wlan_pdev_get_psoc(pdev);
	if (!psoc) {
@@ -388,8 +389,6 @@ pkt_capture_process_mgmt_tx_data(struct wlan_objmgr_pdev *pdev,
	txrx_status.tsft = (u_int64_t)params->tsf_l32;
	txrx_status.chan_num = wlan_freq_to_chan(params->chan_freq);
	txrx_status.chan_freq = params->chan_freq;
	/* params->rate is in Kbps, convert into Mbps */
	txrx_status.rate = (params->rate_kbps / 1000);
	if (params->rssi == INVALID_RSSI_FOR_TX)
		/* RSSI -128 is invalid rssi for TX, make it 0 here,
		 * will be normalized during radiotap updation
@@ -400,15 +399,18 @@ pkt_capture_process_mgmt_tx_data(struct wlan_objmgr_pdev *pdev,

	txrx_status.rssi_comb = txrx_status.ant_signal_db;
	txrx_status.nr_ant = 1;
	rate = params->rate_kbps * 2;
	/* params->rate is in Kbps, convert into Mbps */
	txrx_status.rate = (uint8_t)(rate / 1000);

	txrx_status.rtap_flags |=
		((txrx_status.rate == 6 /* Mbps */) ? BIT(1) : 0);
		((txrx_status.rate == 12 /* Mbps */) ? BIT(1) : 0);

	if (txrx_status.rate == 6)
	if (txrx_status.rate == 12)
		txrx_status.ofdm_flag = 1;
	else
		txrx_status.cck_flag = 1;

	txrx_status.rate = ((txrx_status.rate == 6 /* Mbps */) ? 0x0c : 0x02);
	txrx_status.tx_status = status;
	txrx_status.tx_retry_cnt = params->tx_retry_cnt;
	txrx_status.add_rtap_ext = true;
Loading