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

Unverified Commit 66939b95 authored by Michael Bestas's avatar Michael Bestas
Browse files

Merge tag 'LA.UM.9.14.r1-20500.01-LAHAINA.QSSI12.0' of...

Merge tag 'LA.UM.9.14.r1-20500.01-LAHAINA.QSSI12.0' of https://git.codelinaro.org/clo/la/platform/vendor/qcom-opensource/wlan/qca-wifi-host-cmn into android12-5.4-lahaina

"LA.UM.9.14.r1-20500.01-LAHAINA.QSSI12.0"

* tag 'LA.UM.9.14.r1-20500.01-LAHAINA.QSSI12.0' of https://git.codelinaro.org/clo/la/platform/vendor/qcom-opensource/wlan/qca-wifi-host-cmn:
  qcacmn: Update dp_get_pdev_param for Channel and frequency
  qcacmn: Initialize wlan config structure
  qcacmn: Fix buffer overflow written in the dp_soc_interrupt_detach
  qcacmn: Update preauth candidate entry to scan table
  qcacmn: Add ini to set priority for TC ingress filter
  qcacmn: Set BA status to active when receiving ADDBA event
  qcacmn: Increase status size for HTT WBM completion v3
  qcacmn: Skip STA scan on 6Ghz and 5ghz indoor chan if SAP is up
  qcacmn: Allow rx UDP packets during roaming before peer map is received
  qcacmn: Add support for lower span active and passive dwell time
  qcacmn: Add mode based flags to channels in PNO request
  qcacmn: Reduce logging in get 6G power type for country API
  qcacmn: Replace kmsg logs to debug logs
  qcacmn: Allow STA in LPI mode if AP ctry US and advertises LPI
  qcacmn: Allow scan/connection if RF test mode/Safe mode enabled
  qcacmn: Add support to calculate uplink delay
  qcacmn: Get buffer_timestamp from wbm release ring
  qcacmn: Extend QCA vendor command for TSF to enable and disable auto report
  qcacmn: Add channel load percentage attribute into QCA vendor command
  qcacmn: Add uplink delay attribute in QCA vendor command get_sta_info responses

Change-Id: Ic0a676916af9818d8a45b79a1a22d97a5856aac1
parents f7866a8e d87ecba2
Loading
Loading
Loading
Loading
+28 −0
Original line number Diff line number Diff line
/*
 * Copyright (c) 2011-2020 The Linux Foundation. All rights reserved.
 * Copyright (c) 2022 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
@@ -694,6 +695,33 @@ cdp_peer_delete(ol_txrx_soc_handle soc, uint8_t vdev_id,
	soc->ops->cmn_drv_ops->txrx_peer_delete(soc, vdev_id, peer_mac, bitmap);
}

#ifdef DP_RX_UDP_OVER_PEER_ROAM
static inline void
cdp_update_roaming_peer_in_vdev(ol_txrx_soc_handle soc, uint8_t vdev_id,
				uint8_t *peer_mac, uint32_t auth_status)
{
	if (!soc || !soc->ops) {
		QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
				"%s: Invalid Instance:", __func__);
		QDF_BUG(0);
		return;
	}

	if (!soc->ops->cmn_drv_ops ||
	    !soc->ops->cmn_drv_ops->txrx_update_roaming_peer)
		return;

	soc->ops->cmn_drv_ops->txrx_update_roaming_peer(soc, vdev_id,
							peer_mac, auth_status);
}
#else
static inline void
cdp_update_roaming_peer_in_vdev(ol_txrx_soc_handle soc, uint8_t vdev_id,
				uint8_t *peer_mac, uint32_t auth_status)
{
}
#endif

/**
 * cdp_peer_detach_sync() - peer detach sync callback
 * @soc: datapath soc handle
+4 −2
Original line number Diff line number Diff line
@@ -2333,7 +2333,8 @@ struct cdp_monitor_filter {
 * @cfg_dp_tso_enable: get TSO enable config
 * @cfg_dp_lro_enable: get LRO enable config
 * @cfg_dp_gro_enable: get GRP enable config
 * @cfg_dp_force_gro_enable: get Force GRP enable config
 * @cfg_dp_tc_based_dyn_gro_enable: get TC based dynamic gro enable config
 * @cfg_dp_tc_ingress_prio: priority value to be checked for tc filters
 * @cfg_dp_tx_flow_start_queue_offset: get DP TX flow start queue offset
 * @cfg_dp_tx_flow_stop_queue_threshold: get DP TX flow stop queue threshold
 * @cfg_dp_ipa_uc_tx_buf_size: get IPA TX buf size config
@@ -2356,7 +2357,8 @@ enum cdp_dp_cfg {
	cfg_dp_tso_enable,
	cfg_dp_lro_enable,
	cfg_dp_gro_enable,
	cfg_dp_force_gro_enable,
	cfg_dp_tc_based_dyn_gro_enable,
	cfg_dp_tc_ingress_prio,
	cfg_dp_tx_flow_start_queue_offset,
	cfg_dp_tx_flow_stop_queue_threshold,
	cfg_dp_ipa_uc_tx_buf_size,
+83 −0
Original line number Diff line number Diff line
/*
 * Copyright (c) 2016-2020 The Linux Foundation. All rights reserved.
 * Copyright (c) 2022 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
@@ -1217,4 +1218,86 @@ cdp_dump_rx_flow_tag_stats(ol_txrx_soc_handle soc, uint8_t pdev_id,
								flow_info);
}
#endif /* WLAN_SUPPORT_RX_FLOW_TAG */

#ifdef WLAN_FEATURE_TSF_UPLINK_DELAY
/**
 * cdp_set_delta_tsf() - wrapper function to set delta_tsf
 * @soc: SOC TXRX handle
 * @vdev_id: vdev id
 * @delta_tsf: difference between TSF clock and qtimer
 *
 * Return: None
 */
static inline void cdp_set_delta_tsf(ol_txrx_soc_handle soc, uint8_t vdev_id,
				     uint32_t delta_tsf)
{
	if (!soc || !soc->ops) {
		dp_cdp_err("Invalid instance");
		QDF_BUG(0);
		return;
	}

	if (!soc->ops->ctrl_ops ||
	    !soc->ops->ctrl_ops->txrx_set_delta_tsf)
		return;

	soc->ops->ctrl_ops->txrx_set_delta_tsf(soc, vdev_id, delta_tsf);
}

/**
 * cdp_set_tsf_ul_delay_report() - Enable or disable reporting uplink delay
 * @soc: SOC TXRX handle
 * @vdev_id: vdev id
 * @enable: true to enable and false to disable
 *
 * Return: QDF_STATUS
 */
static inline QDF_STATUS cdp_set_tsf_ul_delay_report(ol_txrx_soc_handle soc,
						     uint8_t vdev_id,
						     bool enable)
{
	if (!soc || !soc->ops) {
		dp_cdp_err("Invalid SOC instance");
		QDF_BUG(0);
		return QDF_STATUS_E_FAILURE;
	}

	if (!soc->ops->ctrl_ops ||
	    !soc->ops->ctrl_ops->txrx_set_tsf_ul_delay_report)
		return QDF_STATUS_E_FAILURE;

	return soc->ops->ctrl_ops->txrx_set_tsf_ul_delay_report(soc, vdev_id,
								enable);
}

/**
 * cdp_get_uplink_delay() - Get uplink delay value
 * @soc: SOC TXRX handle
 * @vdev_id: vdev id
 * @val: pointer to save uplink delay value
 *
 * Return: QDF_STATUS
 */
static inline QDF_STATUS cdp_get_uplink_delay(ol_txrx_soc_handle soc,
					      uint32_t vdev_id, uint32_t *val)
{
	if (!soc || !soc->ops) {
		dp_cdp_err("Invalid SOC instance");
		QDF_BUG(0);
		return QDF_STATUS_E_FAILURE;
	}

	if (!val) {
		dp_cdp_err("Invalid params val");
		return QDF_STATUS_E_FAILURE;
	}

	if (!soc->ops->ctrl_ops ||
	    !soc->ops->ctrl_ops->txrx_get_uplink_delay)
		return QDF_STATUS_E_FAILURE;

	return soc->ops->ctrl_ops->txrx_get_uplink_delay(soc, vdev_id, val);
}
#endif /* WLAN_FEATURE_TSF_UPLINK_DELAY */

#endif /* _CDP_TXRX_CTRL_H_ */
+19 −1
Original line number Diff line number Diff line
/*
 * Copyright (c) 2017-2020 The Linux Foundation. All rights reserved.
 *
 * Copyright (c) 2022 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
@@ -558,6 +558,13 @@ struct cdp_cmn_ops {
	QDF_STATUS (*set_vdev_pcp_tid_map)(struct cdp_soc_t *soc,
					   uint8_t vdev_id,
					   uint8_t pcp, uint8_t tid);
#ifdef DP_RX_UDP_OVER_PEER_ROAM
	QDF_STATUS (*txrx_update_roaming_peer)(struct cdp_soc_t *soc,
					       uint8_t vdev_id,
					       uint8_t *peer_mac,
					       uint32_t auth_status);
#endif

#ifdef QCA_MULTIPASS_SUPPORT
	QDF_STATUS (*set_vlan_groupkey)(struct cdp_soc_t *soc, uint8_t vdev_id,
					uint16_t vlan_id, uint16_t group_key);
@@ -794,6 +801,17 @@ struct cdp_ctrl_ops {
						int8_t vdev_id);

#endif

#ifdef WLAN_FEATURE_TSF_UPLINK_DELAY
	void (*txrx_set_delta_tsf)(struct cdp_soc_t *soc, uint8_t vdev_id,
				   uint32_t delta_tsf);
	QDF_STATUS (*txrx_set_tsf_ul_delay_report)(struct cdp_soc_t *soc,
						   uint8_t vdev_id,
						   bool enable);
	QDF_STATUS (*txrx_get_uplink_delay)(struct cdp_soc_t *soc,
					    uint8_t vdev_id,
					    uint32_t *val);
#endif
};

struct cdp_me_ops {
+9 −2
Original line number Diff line number Diff line
/*
 * Copyright (c) 2016-2020 The Linux Foundation. All rights reserved.
 * Copyright (c) 2022 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
@@ -4584,7 +4585,7 @@ static void dp_htt_t2h_msg_handler(void *context, HTC_PACKET *pkt)
				(u_int8_t *) (msg_word+1),
				&mac_addr_deswizzle_buf[0]);
			QDF_TRACE(QDF_MODULE_ID_TXRX,
				QDF_TRACE_LEVEL_INFO,
				QDF_TRACE_LEVEL_DEBUG,
				"HTT_T2H_MSG_TYPE_PEER_MAP msg for peer id %d vdev id %d n",
				peer_id, vdev_id);

@@ -4708,6 +4709,12 @@ static void dp_htt_t2h_msg_handler(void *context, HTC_PACKET *pkt)
					peer->mac_addr.raw, peer->vdev->vdev_id,
					0, tid, 0, win_sz + 1, 0xffff);

				dp_addba_resp_tx_completion_wifi3(
					(struct cdp_soc_t *)soc->dp_soc,
					peer->mac_addr.raw, peer->vdev->vdev_id,
					tid,
					status);

				/*
				 * If PEER_LOCK_REF_PROTECT enbled dec ref
				 * which is inc by dp_peer_get_ref_by_id
@@ -4792,7 +4799,7 @@ static void dp_htt_t2h_msg_handler(void *context, HTC_PACKET *pkt)
			HTT_RX_PEER_MAP_V2_TID_VALID_HI_PRI_GET(*(msg_word + 5));

			QDF_TRACE(QDF_MODULE_ID_TXRX,
				  QDF_TRACE_LEVEL_INFO,
				  QDF_TRACE_LEVEL_DEBUG,
				  "HTT_T2H_MSG_TYPE_PEER_MAP msg for peer id %d vdev id %d n",
				  peer_id, vdev_id);

Loading