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

Commit 94b48fcc authored by Sunil Paidimarri's avatar Sunil Paidimarri
Browse files

ipa: Update Neutrino uC status



Update Neutrino offload status data structure
to keep in sync with uC.

CRs-Fixed: 2072531
Change-Id: Ie2589e58bfa5dd93362ee110243d22d46094194d
Signed-off-by: default avatarSunil Paidimarri <hisunil@codeaurora.org>
parent 13f80029
Loading
Loading
Loading
Loading
+30 −32
Original line number Diff line number Diff line
@@ -1151,8 +1151,6 @@ static ssize_t ipa3_read_ntn(struct file *file, char __user *ubuf,
	if (!ipa3_get_ntn_stats(&stats)) {
		nbytes = scnprintf(dbg_buff, IPA_MAX_MSG_LEN,
			"TX num_pkts_processed=%u\n"
			"TX tail_ptr_val=%u\n"
			"TX num_db_fired=%u\n"
			"TX ringFull=%u\n"
			"TX ringEmpty=%u\n"
			"TX ringUsageHigh=%u\n"
@@ -1164,27 +1162,25 @@ static ssize_t ipa3_read_ntn(struct file *file, char __user *ubuf,
			"TX bamFifoUsageLow=%u\n"
			"TX bamUtilCount=%u\n"
			"TX num_db=%u\n"
			"TX num_qmb_int_handled=%u\n",
			"TX num_qmb_int_handled=%u\n"
			"TX ipa_pipe_number=%u\n",
			TX_STATS(num_pkts_processed),
			TX_STATS(tail_ptr_val),
			TX_STATS(num_db_fired),
			TX_STATS(tx_comp_ring_stats.ringFull),
			TX_STATS(tx_comp_ring_stats.ringEmpty),
			TX_STATS(tx_comp_ring_stats.ringUsageHigh),
			TX_STATS(tx_comp_ring_stats.ringUsageLow),
			TX_STATS(tx_comp_ring_stats.RingUtilCount),
			TX_STATS(bam_stats.bamFifoFull),
			TX_STATS(bam_stats.bamFifoEmpty),
			TX_STATS(bam_stats.bamFifoUsageHigh),
			TX_STATS(bam_stats.bamFifoUsageLow),
			TX_STATS(bam_stats.bamUtilCount),
			TX_STATS(ring_stats.ringFull),
			TX_STATS(ring_stats.ringEmpty),
			TX_STATS(ring_stats.ringUsageHigh),
			TX_STATS(ring_stats.ringUsageLow),
			TX_STATS(ring_stats.RingUtilCount),
			TX_STATS(gsi_stats.bamFifoFull),
			TX_STATS(gsi_stats.bamFifoEmpty),
			TX_STATS(gsi_stats.bamFifoUsageHigh),
			TX_STATS(gsi_stats.bamFifoUsageLow),
			TX_STATS(gsi_stats.bamUtilCount),
			TX_STATS(num_db),
			TX_STATS(num_qmb_int_handled));
			TX_STATS(num_qmb_int_handled),
			TX_STATS(ipa_pipe_number));
		cnt += nbytes;
		nbytes = scnprintf(dbg_buff + cnt, IPA_MAX_MSG_LEN - cnt,
			"RX max_outstanding_pkts=%u\n"
			"RX num_pkts_processed=%u\n"
			"RX rx_ring_rp_value=%u\n"
			"RX ringFull=%u\n"
			"RX ringEmpty=%u\n"
			"RX ringUsageHigh=%u\n"
@@ -1195,21 +1191,23 @@ static ssize_t ipa3_read_ntn(struct file *file, char __user *ubuf,
			"RX bamFifoUsageHigh=%u\n"
			"RX bamFifoUsageLow=%u\n"
			"RX bamUtilCount=%u\n"
			"RX num_db=%u\n",
			RX_STATS(max_outstanding_pkts),
			"RX num_db=%u\n"
			"RX num_qmb_int_handled=%u\n"
			"RX ipa_pipe_number=%u\n",
			RX_STATS(num_pkts_processed),
			RX_STATS(rx_ring_rp_value),
			RX_STATS(rx_ind_ring_stats.ringFull),
			RX_STATS(rx_ind_ring_stats.ringEmpty),
			RX_STATS(rx_ind_ring_stats.ringUsageHigh),
			RX_STATS(rx_ind_ring_stats.ringUsageLow),
			RX_STATS(rx_ind_ring_stats.RingUtilCount),
			RX_STATS(bam_stats.bamFifoFull),
			RX_STATS(bam_stats.bamFifoEmpty),
			RX_STATS(bam_stats.bamFifoUsageHigh),
			RX_STATS(bam_stats.bamFifoUsageLow),
			RX_STATS(bam_stats.bamUtilCount),
			RX_STATS(num_db));
			RX_STATS(ring_stats.ringFull),
			RX_STATS(ring_stats.ringEmpty),
			RX_STATS(ring_stats.ringUsageHigh),
			RX_STATS(ring_stats.ringUsageLow),
			RX_STATS(ring_stats.RingUtilCount),
			RX_STATS(gsi_stats.bamFifoFull),
			RX_STATS(gsi_stats.bamFifoEmpty),
			RX_STATS(gsi_stats.bamFifoUsageHigh),
			RX_STATS(gsi_stats.bamFifoUsageLow),
			RX_STATS(gsi_stats.bamUtilCount),
			RX_STATS(num_db),
			RX_STATS(num_qmb_int_handled),
			RX_STATS(ipa_pipe_number));
		cnt += nbytes;
	} else {
		nbytes = scnprintf(dbg_buff, IPA_MAX_MSG_LEN,
+23 −24
Original line number Diff line number Diff line
@@ -104,35 +104,34 @@ int ipa3_get_ntn_stats(struct Ipa3HwStatsNTNInfoData_t *stats)
	IPA_ACTIVE_CLIENTS_INC_SIMPLE();

	TX_STATS(num_pkts_processed);
	TX_STATS(tail_ptr_val);
	TX_STATS(num_db_fired);
	TX_STATS(tx_comp_ring_stats.ringFull);
	TX_STATS(tx_comp_ring_stats.ringEmpty);
	TX_STATS(tx_comp_ring_stats.ringUsageHigh);
	TX_STATS(tx_comp_ring_stats.ringUsageLow);
	TX_STATS(tx_comp_ring_stats.RingUtilCount);
	TX_STATS(bam_stats.bamFifoFull);
	TX_STATS(bam_stats.bamFifoEmpty);
	TX_STATS(bam_stats.bamFifoUsageHigh);
	TX_STATS(bam_stats.bamFifoUsageLow);
	TX_STATS(bam_stats.bamUtilCount);
	TX_STATS(ring_stats.ringFull);
	TX_STATS(ring_stats.ringEmpty);
	TX_STATS(ring_stats.ringUsageHigh);
	TX_STATS(ring_stats.ringUsageLow);
	TX_STATS(ring_stats.RingUtilCount);
	TX_STATS(gsi_stats.bamFifoFull);
	TX_STATS(gsi_stats.bamFifoEmpty);
	TX_STATS(gsi_stats.bamFifoUsageHigh);
	TX_STATS(gsi_stats.bamFifoUsageLow);
	TX_STATS(gsi_stats.bamUtilCount);
	TX_STATS(num_db);
	TX_STATS(num_qmb_int_handled);
	TX_STATS(ipa_pipe_number);

	RX_STATS(max_outstanding_pkts);
	RX_STATS(num_pkts_processed);
	RX_STATS(rx_ring_rp_value);
	RX_STATS(rx_ind_ring_stats.ringFull);
	RX_STATS(rx_ind_ring_stats.ringEmpty);
	RX_STATS(rx_ind_ring_stats.ringUsageHigh);
	RX_STATS(rx_ind_ring_stats.ringUsageLow);
	RX_STATS(rx_ind_ring_stats.RingUtilCount);
	RX_STATS(bam_stats.bamFifoFull);
	RX_STATS(bam_stats.bamFifoEmpty);
	RX_STATS(bam_stats.bamFifoUsageHigh);
	RX_STATS(bam_stats.bamFifoUsageLow);
	RX_STATS(bam_stats.bamUtilCount);
	RX_STATS(ring_stats.ringFull);
	RX_STATS(ring_stats.ringEmpty);
	RX_STATS(ring_stats.ringUsageHigh);
	RX_STATS(ring_stats.ringUsageLow);
	RX_STATS(ring_stats.RingUtilCount);
	RX_STATS(gsi_stats.bamFifoFull);
	RX_STATS(gsi_stats.bamFifoEmpty);
	RX_STATS(gsi_stats.bamFifoUsageHigh);
	RX_STATS(gsi_stats.bamFifoUsageLow);
	RX_STATS(gsi_stats.bamUtilCount);
	RX_STATS(num_db);
	RX_STATS(num_qmb_int_handled);
	RX_STATS(ipa_pipe_number);

	IPA_ACTIVE_CLIENTS_DEC_SIMPLE();

+14 −16
Original line number Diff line number Diff line
@@ -380,22 +380,21 @@ union Ipa3HwNTNErrorEventData_t {
 * struct NTN3RxInfoData_t - NTN Structure holding the Rx pipe
 * information
 *
 *@max_outstanding_pkts: Number of outstanding packets in Rx
 *		Ring
 *@num_pkts_processed: Number of packets processed - cumulative
 *@rx_ring_rp_value: Read pointer last advertized to the WLAN FW
 *
 *@rx_ind_ring_stats:
 *@bam_stats:
 *@ring_stats:
 *@gsi_stats:
 *@num_db: Number of times the doorbell was rung
 *@num_qmb_int_handled: Number of QMB interrupts handled
 *@ipa_pipe_number: The IPA Rx/Tx pipe number.
 */
struct NTN3RxInfoData_t {
	u32  max_outstanding_pkts;
	u32  num_pkts_processed;
	u32  rx_ring_rp_value;
	struct IpaHwRingStats_t rx_ind_ring_stats;
	struct IpaHwBamStats_t bam_stats;
	struct IpaHwRingStats_t ring_stats;
	struct IpaHwBamStats_t gsi_stats;
	u32 num_db;
	u32 num_qmb_int_handled;
	u32 ipa_pipe_number;
} __packed;


@@ -414,12 +413,11 @@ struct NTN3RxInfoData_t {
 */
struct NTN3TxInfoData_t {
	u32  num_pkts_processed;
	u32  tail_ptr_val;
	u32  num_db_fired;
	struct IpaHwRingStats_t tx_comp_ring_stats;
	struct IpaHwBamStats_t bam_stats;
	struct IpaHwRingStats_t ring_stats;
	struct IpaHwBamStats_t gsi_stats;
	u32 num_db;
	u32 num_qmb_int_handled;
	u32 ipa_pipe_number;
} __packed;