forked from Minki/linux
brcm80211: fmac: move maxctl to struct brcmf_bus
maxctl is the max size of rxctl request from protocol layer to bus layer. Move it to bus interface structure brcmf_bus. This is part of the fullmac bus interface refactoring. Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> Reviewed-by: Arend van Spriel <arend@broadcom.com> Reviewed-by: Alwin Beukers <alwin@broadcom.com> Signed-off-by: Franky Lin <frankyl@broadcom.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
28a1a3bdaf
commit
b01a6b3ca7
@ -576,6 +576,7 @@ struct brcmf_bus {
|
||||
void *bus_priv; /* pointer to bus private structure */
|
||||
void *drvr; /* pointer to driver pub structure brcmf_pub */
|
||||
enum brcmf_bus_state state;
|
||||
uint maxctl; /* Max size rxctl request from proto to bus */
|
||||
};
|
||||
|
||||
/* Forward decls for struct brcmf_pub (see below) */
|
||||
@ -596,7 +597,6 @@ struct brcmf_pub {
|
||||
bool up; /* Driver up/down (to OS) */
|
||||
bool txoff; /* Transmit flow-controlled */
|
||||
uint hdrlen; /* Total BRCMF header length (proto + bus) */
|
||||
uint maxctl; /* Max size rxctl request from proto to bus */
|
||||
uint rxsz; /* Rx buffer size bus module should use */
|
||||
u8 wme_dp; /* wme discard priority */
|
||||
|
||||
|
@ -437,7 +437,7 @@ int brcmf_proto_attach(struct brcmf_pub *drvr)
|
||||
|
||||
drvr->prot = cdc;
|
||||
drvr->hdrlen += BDC_HEADER_LEN;
|
||||
drvr->maxctl = BRCMF_DCMD_MAXLEN +
|
||||
drvr->bus_if->maxctl = BRCMF_DCMD_MAXLEN +
|
||||
sizeof(struct brcmf_proto_cdc_dcmd) + ROUND_UP_MARGIN;
|
||||
return 0;
|
||||
|
||||
|
@ -1534,7 +1534,7 @@ brcmf_sdbrcm_read_control(struct brcmf_sdio *bus, u8 *hdr, uint len, uint doff)
|
||||
if (bus->roundup && bus->blocksize && (rdlen > bus->blocksize)) {
|
||||
pad = bus->blocksize - (rdlen % bus->blocksize);
|
||||
if ((pad <= bus->roundup) && (pad < bus->blocksize) &&
|
||||
((len + pad) < bus->drvr->maxctl))
|
||||
((len + pad) < bus->sdiodev->bus_if->maxctl))
|
||||
rdlen += pad;
|
||||
} else if (rdlen % BRCMF_SDALIGN) {
|
||||
rdlen += BRCMF_SDALIGN - (rdlen % BRCMF_SDALIGN);
|
||||
@ -1545,17 +1545,17 @@ brcmf_sdbrcm_read_control(struct brcmf_sdio *bus, u8 *hdr, uint len, uint doff)
|
||||
rdlen = roundup(rdlen, ALIGNMENT);
|
||||
|
||||
/* Drop if the read is too big or it exceeds our maximum */
|
||||
if ((rdlen + BRCMF_FIRSTREAD) > bus->drvr->maxctl) {
|
||||
if ((rdlen + BRCMF_FIRSTREAD) > bus->sdiodev->bus_if->maxctl) {
|
||||
brcmf_dbg(ERROR, "%d-byte control read exceeds %d-byte buffer\n",
|
||||
rdlen, bus->drvr->maxctl);
|
||||
rdlen, bus->sdiodev->bus_if->maxctl);
|
||||
bus->drvr->rx_errors++;
|
||||
brcmf_sdbrcm_rxfail(bus, false, false);
|
||||
goto done;
|
||||
}
|
||||
|
||||
if ((len - doff) > bus->drvr->maxctl) {
|
||||
if ((len - doff) > bus->sdiodev->bus_if->maxctl) {
|
||||
brcmf_dbg(ERROR, "%d-byte ctl frame (%d-byte ctl data) exceeds %d-byte limit\n",
|
||||
len, len - doff, bus->drvr->maxctl);
|
||||
len, len - doff, bus->sdiodev->bus_if->maxctl);
|
||||
bus->drvr->rx_errors++;
|
||||
bus->rx_toolong++;
|
||||
brcmf_sdbrcm_rxfail(bus, false, false);
|
||||
@ -3666,9 +3666,9 @@ static bool brcmf_sdbrcm_probe_malloc(struct brcmf_sdio *bus)
|
||||
{
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
|
||||
if (bus->drvr->maxctl) {
|
||||
if (bus->sdiodev->bus_if->maxctl) {
|
||||
bus->rxblen =
|
||||
roundup((bus->drvr->maxctl + SDPCM_HDRLEN),
|
||||
roundup((bus->sdiodev->bus_if->maxctl + SDPCM_HDRLEN),
|
||||
ALIGNMENT) + BRCMF_SDALIGN;
|
||||
bus->rxbuf = kmalloc(bus->rxblen, GFP_ATOMIC);
|
||||
if (!(bus->rxbuf))
|
||||
|
Loading…
Reference in New Issue
Block a user