Commit c8bf3484 authored by Franky Lin's avatar Franky Lin Committed by John W. Linville
Browse files

brcm80211: fmac: move tx flow ctrl flag to bus layer



txoff is the flow control flag for transmit used in sdio layer.
Move it to bus layer data structure brcmf_sdio. Also flag
management code is moved out of brcmf_txflowcontrol(). This is
part of the fullmac bus interface refactoring.

Reviewed-by: default avatarPieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: default avatarArend van Spriel <arend@broadcom.com>
Reviewed-by: default avatarAlwin Beukers <alwin@broadcom.com>
Signed-off-by: default avatarFranky Lin <frankyl@broadcom.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 9c1a043a
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -597,7 +597,6 @@ struct brcmf_pub {
	struct device *dev;		/* fullmac dongle device pointer */

	/* Internal brcmf items */
	bool txoff;		/* Transmit flow-controlled */
	uint hdrlen;		/* Total BRCMF header length (proto + bus) */
	uint rxsz;		/* Rx buffer size bus module should use */
	u8 wme_dp;		/* wme discard priority */
+0 −1
Original line number Diff line number Diff line
@@ -356,7 +356,6 @@ void brcmf_txflowcontrol(struct device *dev, int ifidx, bool state)

	brcmf_dbg(TRACE, "Enter\n");

	drvr->txoff = state;
	ndev = drvr->iflist[ifidx]->ndev;
	if (state == ON)
		netif_stop_queue(ndev);
+8 −2
Original line number Diff line number Diff line
@@ -575,6 +575,8 @@ struct brcmf_sdio {

	const struct firmware *firmware;
	u32 fw_ptr;

	bool txoff;		/* Transmit flow-controlled */
};

/* clkstate */
@@ -2297,8 +2299,10 @@ static uint brcmf_sdbrcm_sendfromq(struct brcmf_sdio *bus, uint maxframes)
	/* Deflow-control stack if needed */
	if (drvr->bus_if->drvr_up &&
	    (drvr->bus_if->state == BRCMF_BUS_DATA) &&
	    drvr->txoff && (pktq_len(&bus->txq) < TXLOW))
	    bus->txoff && (pktq_len(&bus->txq) < TXLOW)) {
		bus->txoff = OFF;
		brcmf_txflowcontrol(bus->sdiodev->dev, 0, OFF);
	}

	return cnt;
}
@@ -2611,8 +2615,10 @@ int brcmf_sdbrcm_bus_txdata(struct device *dev, struct sk_buff *pkt)
	}
	spin_unlock_bh(&bus->txqlock);

	if (pktq_len(&bus->txq) >= TXHI)
	if (pktq_len(&bus->txq) >= TXHI) {
		bus->txoff = ON;
		brcmf_txflowcontrol(bus->sdiodev->dev, 0, ON);
	}

#ifdef BCMDBG
	if (pktq_plen(&bus->txq, prec) > qcount[prec])