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

Commit 84bcc0c3 authored by Arend van Spriel's avatar Arend van Spriel Committed by John W. Linville
Browse files

brcmfmac: enable sk_buff queueing when credits deplete



Firmware provides the driver with credits used to transmit packets
to the firmware. When credits run out the packets should be queued
and dequeued when receiving creditback signals from the firmware.

Reviewed-by: default avatarPieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: default avatarHante Meuleman <meuleman@broadcom.com>
Signed-off-by: default avatarArend van Spriel <arend@broadcom.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 290fb763
Loading
Loading
Loading
Loading
+17 −3
Original line number Diff line number Diff line
@@ -130,7 +130,7 @@ ssize_t brcmf_debugfs_fws_stats_read(struct file *f, char __user *data,
				     size_t count, loff_t *ppos)
{
	struct brcmf_fws_stats *fwstats = f->private_data;
	char buf[100];
	char buf[650];
	int res;

	/* only allow read from start */
@@ -145,12 +145,17 @@ ssize_t brcmf_debugfs_fws_stats_read(struct file *f, char __user *data,
			"mac_update_fails:  %u\n"
			"pkt2bus:           %u\n"
			"generic_error:     %u\n"
			"rollback_success:  %u\n"
			"rollback_failed:   %u\n"
			"delayq_full:       %u\n"
			"supprq_full:       %u\n"
			"txs_indicate:      %u\n"
			"txs_discard:       %u\n"
			"txs_suppr_core:    %u\n"
			"txs_suppr_ps:      %u\n"
			"txs_tossed:        %u\n"
			"send_pkts:         BK:%u BE:%u VO:%u VI:%u BCMC:%u\n",
			"send_pkts:         BK:%u BE:%u VO:%u VI:%u BCMC:%u\n"
			"fifo_credits_sent: BK:%u BE:%u VO:%u VI:%u BCMC:%u\n",
			fwstats->header_pulls,
			fwstats->header_only_pkt,
			fwstats->tlv_parse_failed,
@@ -158,6 +163,10 @@ ssize_t brcmf_debugfs_fws_stats_read(struct file *f, char __user *data,
			fwstats->mac_update_failed,
			fwstats->pkt2bus,
			fwstats->generic_error,
			fwstats->rollback_success,
			fwstats->rollback_failed,
			fwstats->delayq_full_error,
			fwstats->supprq_full_error,
			fwstats->txs_indicate,
			fwstats->txs_discard,
			fwstats->txs_supp_core,
@@ -165,7 +174,12 @@ ssize_t brcmf_debugfs_fws_stats_read(struct file *f, char __user *data,
			fwstats->txs_tossed,
			fwstats->send_pkts[0], fwstats->send_pkts[1],
			fwstats->send_pkts[2], fwstats->send_pkts[3],
			fwstats->send_pkts[4]);
			fwstats->send_pkts[4],
			fwstats->fifo_credits_sent[0],
			fwstats->fifo_credits_sent[1],
			fwstats->fifo_credits_sent[2],
			fwstats->fifo_credits_sent[3],
			fwstats->fifo_credits_sent[4]);

	return simple_read_from_buffer(data, count, ppos, buf, res);
}
+6 −0
Original line number Diff line number Diff line
@@ -140,8 +140,14 @@ struct brcmf_fws_stats {
	u32 header_pulls;
	u32 pkt2bus;
	u32 send_pkts[5];
	u32 fifo_credits_sent[5];
	u32 fifo_credits_back[6];
	u32 generic_error;
	u32 mac_update_failed;
	u32 rollback_success;
	u32 rollback_failed;
	u32 delayq_full_error;
	u32 supprq_full_error;
	u32 txs_indicate;
	u32 txs_discard;
	u32 txs_supp_core;
+604 −57

File changed.

Preview size limit exceeded, changes collapsed.