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

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

Merge b270d228 on remote branch

Change-Id: Id036110f6ae8d602ab55dbef843558a18a9271fd
parents 2cba0346 b270d228
Loading
Loading
Loading
Loading
+21 −0
Original line number Original line Diff line number Diff line
@@ -566,6 +566,27 @@ static inline void cdp_pkt_log_con_service(ol_txrx_soc_handle soc,
	return;
	return;
}
}


/**
 * cdp_pkt_log_exit() - API to cleanup packet log info
 * @soc: data path soc handle
 * @pdev_id: id of data path pdev handle
 *
 * Return: void
 */
static inline void cdp_pkt_log_exit(ol_txrx_soc_handle soc, uint8_t pdev_id)
{
	if (!soc || !soc->ops || !soc->ops->misc_ops) {
		QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_FATAL,
			"%s invalid instance", __func__);
		return;
	}

	if (soc->ops->misc_ops->pkt_log_exit)
		return soc->ops->misc_ops->pkt_log_exit(soc, pdev_id);

	return;
}

/**
/**
 * cdp_get_num_rx_contexts() - API to get the number of RX contexts
 * cdp_get_num_rx_contexts() - API to get the number of RX contexts
 * @soc: soc handle
 * @soc: soc handle
+1 −0
Original line number Original line Diff line number Diff line
@@ -1265,6 +1265,7 @@ struct cdp_misc_ops {
			     void *scn);
			     void *scn);
	void (*pkt_log_con_service)(struct cdp_soc_t *soc_hdl,
	void (*pkt_log_con_service)(struct cdp_soc_t *soc_hdl,
				    uint8_t pdev_id, void *scn);
				    uint8_t pdev_id, void *scn);
	void (*pkt_log_exit)(struct cdp_soc_t *soc_hdl, uint8_t pdev_id);
	int (*get_num_rx_contexts)(struct cdp_soc_t *soc_hdl);
	int (*get_num_rx_contexts)(struct cdp_soc_t *soc_hdl);
	void (*register_pktdump_cb)(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
	void (*register_pktdump_cb)(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
				    ol_txrx_pktdump_cb tx_cb,
				    ol_txrx_pktdump_cb tx_cb,
+27 −0
Original line number Original line Diff line number Diff line
@@ -543,6 +543,28 @@ static void dp_pktlogmod_exit(struct dp_pdev *pdev)
	pktlogmod_exit(scn);
	pktlogmod_exit(scn);
	pdev->pkt_log_init = false;
	pdev->pkt_log_init = false;
}
}

/**
 * dp_pkt_log_exit() - Wrapper API to cleanup pktlog info
 * @soc_hdl: Datapath soc handle
 * @pdev_id: id of data path pdev handle
 *
 * Return: none
 */
static void dp_pkt_log_exit(struct cdp_soc_t *soc_hdl, uint8_t pdev_id)
{
	struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl);
	struct dp_pdev *pdev =
		dp_get_pdev_from_soc_pdev_id_wifi3(soc, pdev_id);

	if (!pdev) {
		dp_err("pdev handle is NULL");
		return;
	}

	dp_pktlogmod_exit(pdev);
}

#else
#else
static void dp_pkt_log_con_service(struct cdp_soc_t *soc_hdl,
static void dp_pkt_log_con_service(struct cdp_soc_t *soc_hdl,
				   uint8_t pdev_id, void *scn)
				   uint8_t pdev_id, void *scn)
@@ -550,6 +572,10 @@ static void dp_pkt_log_con_service(struct cdp_soc_t *soc_hdl,
}
}


static void dp_pktlogmod_exit(struct dp_pdev *handle) { }
static void dp_pktlogmod_exit(struct dp_pdev *handle) { }

static void dp_pkt_log_exit(struct cdp_soc_t *soc_hdl, uint8_t pdev_id)
{
}
#endif
#endif
/**
/**
 * dp_get_num_rx_contexts() - get number of RX contexts
 * dp_get_num_rx_contexts() - get number of RX contexts
@@ -11945,6 +11971,7 @@ static struct cdp_misc_ops dp_ops_misc = {
#endif /* FEATURE_RUNTIME_PM */
#endif /* FEATURE_RUNTIME_PM */
	.pkt_log_init = dp_pkt_log_init,
	.pkt_log_init = dp_pkt_log_init,
	.pkt_log_con_service = dp_pkt_log_con_service,
	.pkt_log_con_service = dp_pkt_log_con_service,
	.pkt_log_exit = dp_pkt_log_exit,
	.get_num_rx_contexts = dp_get_num_rx_contexts,
	.get_num_rx_contexts = dp_get_num_rx_contexts,
	.get_tx_ack_stats = dp_tx_get_success_ack_stats,
	.get_tx_ack_stats = dp_tx_get_success_ack_stats,
#ifdef WLAN_SUPPORT_DATA_STALL
#ifdef WLAN_SUPPORT_DATA_STALL
+8 −0
Original line number Original line Diff line number Diff line
@@ -1483,6 +1483,9 @@ static QDF_STATUS dp_rx_defrag(struct dp_peer *peer, unsigned tid,
	struct dp_soc *soc = vdev->pdev->soc;
	struct dp_soc *soc = vdev->pdev->soc;
	uint8_t status = 0;
	uint8_t status = 0;


	if (!cur)
		return QDF_STATUS_E_DEFRAG_ERROR;

	hdr_space = dp_rx_defrag_hdrsize(soc, cur);
	hdr_space = dp_rx_defrag_hdrsize(soc, cur);
	index = hal_rx_msdu_is_wlan_mcast(cur) ?
	index = hal_rx_msdu_is_wlan_mcast(cur) ?
		dp_sec_mcast : dp_sec_ucast;
		dp_sec_mcast : dp_sec_ucast;
@@ -1853,9 +1856,11 @@ dp_rx_defrag_store_fragment(struct dp_soc *soc,
	 * If the earlier sequence was dropped, this will be the fresh start.
	 * If the earlier sequence was dropped, this will be the fresh start.
	 * Else, continue with next fragment in a given sequence
	 * 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,
	status = dp_rx_defrag_fraglist_insert(peer, tid, &rx_reorder_array_elem->head,
			&rx_reorder_array_elem->tail, frag,
			&rx_reorder_array_elem->tail, frag,
			&all_frag_present);
			&all_frag_present);
	qdf_spin_unlock_bh(&rx_tid->tid_lock);


	/*
	/*
	 * Currently, we can have only 6 MSDUs per-MPDU, if the current
	 * Currently, we can have only 6 MSDUs per-MPDU, if the current
@@ -1909,6 +1914,7 @@ dp_rx_defrag_store_fragment(struct dp_soc *soc,
		  "All fragments received for sequence: %d", rxseq);
		  "All fragments received for sequence: %d", rxseq);


	/* Process the fragments */
	/* Process the fragments */
	qdf_spin_lock_bh(&rx_tid->tid_lock);
	status = dp_rx_defrag(peer, tid, rx_reorder_array_elem->head,
	status = dp_rx_defrag(peer, tid, rx_reorder_array_elem->head,
		rx_reorder_array_elem->tail);
		rx_reorder_array_elem->tail);
	if (QDF_IS_STATUS_ERROR(status)) {
	if (QDF_IS_STATUS_ERROR(status)) {
@@ -1927,12 +1933,14 @@ dp_rx_defrag_store_fragment(struct dp_soc *soc,
					"%s: Failed to return link desc",
					"%s: Failed to return link desc",
					__func__);
					__func__);
		dp_rx_defrag_cleanup(peer, tid);
		dp_rx_defrag_cleanup(peer, tid);
		qdf_spin_unlock_bh(&rx_tid->tid_lock);
		goto end;
		goto end;
	}
	}


	/* Re-inject the fragments back to REO for further processing */
	/* Re-inject the fragments back to REO for further processing */
	status = dp_rx_defrag_reo_reinject(peer, tid,
	status = dp_rx_defrag_reo_reinject(peer, tid,
			rx_reorder_array_elem->head);
			rx_reorder_array_elem->head);
	qdf_spin_unlock_bh(&rx_tid->tid_lock);
	if (QDF_IS_STATUS_SUCCESS(status)) {
	if (QDF_IS_STATUS_SUCCESS(status)) {
		rx_reorder_array_elem->head = NULL;
		rx_reorder_array_elem->head = NULL;
		rx_reorder_array_elem->tail = NULL;
		rx_reorder_array_elem->tail = NULL;
+36 −0
Original line number Original line Diff line number Diff line
@@ -8640,6 +8640,34 @@ enum qca_wlan_twt_setup_state {
 * This parameter is used for
 * This parameter is used for
 * 1. TWT SET Request and Response
 * 1. TWT SET Request and Response
 * 2. TWT GET Response
 * 2. TWT GET Response
 *
 * @QCA_WLAN_VENDOR_ATTR_TWT_SETUP_BCAST_ID: Optional (u8)
 * This attribute is used to configure Broadcast TWT ID.
 * The Broadcast TWT ID indicates a specific Broadcast TWT for which the
 * transmitting STA is providing TWT parameters. The allowed values are 0 to 31.
 * This parameter is used for
 * 1. TWT SET Request
 * 2. TWT TERMINATE Request
 *
 * @QCA_WLAN_VENDOR_ATTR_TWT_SETUP_BCAST_RECOMMENDATION: Optional (u8)
 * This attribute is used to configure Broadcast TWT recommendation.
 * The Broadcast TWT Recommendation subfield contains a value that indicates
 * recommendations on the types of frames that are transmitted by TWT
 * scheduled STAs and scheduling AP during the broadcast TWT SP.
 * The allowed values are 0 - 3.
 * This parameter is used for
 * 1. TWT SET Request
 *
 * @QCA_WLAN_VENDOR_ATTR_TWT_SETUP_BCAST_PERSISTENCE: Optional (u8)
 * This attribute is used to configure Broadcast TWT Persistence.
 * The Broadcast TWT Persistence subfield indicates the number of
 * TBTTs during which the Broadcast TWT SPs corresponding to this
 * broadcast TWT Parameter set are present. The number of beacon intervals
 * during which the Broadcast TWT SPs are present is equal to the value in the
 * Broadcast TWT Persistence subfield plus 1 except that the value 255
 * indicates that the Broadcast TWT SPs are present until explicitly terminated.
 * This parameter is used for
 * 1. TWT SET Request
 */
 */
enum qca_wlan_vendor_attr_twt_setup {
enum qca_wlan_vendor_attr_twt_setup {
	QCA_WLAN_VENDOR_ATTR_TWT_SETUP_INVALID = 0,
	QCA_WLAN_VENDOR_ATTR_TWT_SETUP_INVALID = 0,
@@ -8669,6 +8697,10 @@ enum qca_wlan_vendor_attr_twt_setup {
	QCA_WLAN_VENDOR_ATTR_TWT_SETUP_STATE = 20,
	QCA_WLAN_VENDOR_ATTR_TWT_SETUP_STATE = 20,
	QCA_WLAN_VENDOR_ATTR_TWT_SETUP_WAKE_INTVL2_MANTISSA = 21,
	QCA_WLAN_VENDOR_ATTR_TWT_SETUP_WAKE_INTVL2_MANTISSA = 21,


	QCA_WLAN_VENDOR_ATTR_TWT_SETUP_BCAST_ID = 22,
	QCA_WLAN_VENDOR_ATTR_TWT_SETUP_BCAST_RECOMMENDATION = 23,
	QCA_WLAN_VENDOR_ATTR_TWT_SETUP_BCAST_PERSISTENCE = 24,

	/* keep last */
	/* keep last */
	QCA_WLAN_VENDOR_ATTR_TWT_SETUP_AFTER_LAST,
	QCA_WLAN_VENDOR_ATTR_TWT_SETUP_AFTER_LAST,
	QCA_WLAN_VENDOR_ATTR_TWT_SETUP_MAX =
	QCA_WLAN_VENDOR_ATTR_TWT_SETUP_MAX =
@@ -8716,6 +8748,9 @@ enum qca_wlan_vendor_attr_twt_setup {
 * setup request due to channel switch in progress.
 * setup request due to channel switch in progress.
 * @QCA_WLAN_VENDOR_TWT_STATUS_SCAN_IN_PROGRESS: FW rejected the TWT setup
 * @QCA_WLAN_VENDOR_TWT_STATUS_SCAN_IN_PROGRESS: FW rejected the TWT setup
 * request due to scan in progress.
 * request due to scan in progress.
 * QCA_WLAN_VENDOR_TWT_STATUS_POWER_SAVE_EXIT_TERMINATE: The driver requested to
 * terminate an existing TWT session on power save exit request from userspace.
 * Used on the TWT_TERMINATE notification from the driver/firmware.
 */
 */
enum qca_wlan_vendor_twt_status {
enum qca_wlan_vendor_twt_status {
	QCA_WLAN_VENDOR_TWT_STATUS_OK = 0,
	QCA_WLAN_VENDOR_TWT_STATUS_OK = 0,
@@ -8740,6 +8775,7 @@ enum qca_wlan_vendor_twt_status {
	QCA_WLAN_VENDOR_TWT_STATUS_ROAMING_IN_PROGRESS = 19,
	QCA_WLAN_VENDOR_TWT_STATUS_ROAMING_IN_PROGRESS = 19,
	QCA_WLAN_VENDOR_TWT_STATUS_CHANNEL_SWITCH_IN_PROGRESS = 20,
	QCA_WLAN_VENDOR_TWT_STATUS_CHANNEL_SWITCH_IN_PROGRESS = 20,
	QCA_WLAN_VENDOR_TWT_STATUS_SCAN_IN_PROGRESS = 21,
	QCA_WLAN_VENDOR_TWT_STATUS_SCAN_IN_PROGRESS = 21,
	QCA_WLAN_VENDOR_TWT_STATUS_POWER_SAVE_EXIT_TERMINATE = 22,
};
};


/**
/**
Loading