Commit bee1b848 authored by Arend van Spriel's avatar Arend van Spriel Committed by John W. Linville

brcmfmac: increase required skbuff headroom for firmware signalling

In preparation of firmware signalling feature additional headroom is
needed to accommodate signalling protocol data between host and
firmware.
Reviewed-by: default avatarHante Meuleman <meuleman@broadcom.com>
Reviewed-by: default avatarPieter-Paul Giesberts <pieterpg@broadcom.com>
Signed-off-by: default avatarArend van Spriel <arend@broadcom.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent dc7bdbf1
...@@ -71,13 +71,26 @@ struct brcmf_proto_cdc_dcmd { ...@@ -71,13 +71,26 @@ struct brcmf_proto_cdc_dcmd {
((hdr)->flags2 = (((hdr)->flags2 & ~BDC_FLAG2_IF_MASK) | \ ((hdr)->flags2 = (((hdr)->flags2 & ~BDC_FLAG2_IF_MASK) | \
((idx) << BDC_FLAG2_IF_SHIFT))) ((idx) << BDC_FLAG2_IF_SHIFT)))
/**
* struct brcmf_proto_bdc_header - BDC header format
*
* @flags: flags contain protocol and checksum info.
* @priority: 802.1d priority and USB flow control info (bit 4:7).
* @flags2: additional flags containing dongle interface index.
* @data_offset: start of packet data. header is following by firmware signals.
*/
struct brcmf_proto_bdc_header { struct brcmf_proto_bdc_header {
u8 flags; u8 flags;
u8 priority; /* 802.1d Priority, 4:7 flow control info for usb */ u8 priority;
u8 flags2; u8 flags2;
u8 data_offset; u8 data_offset;
}; };
/*
* maximum length of firmware signal data between
* the BDC header and packet data in the tx path.
*/
#define BRCMF_PROT_FW_SIGNAL_MAX_TXBYTES 12
#define RETRIES 2 /* # of retries to retrieve matching dcmd response */ #define RETRIES 2 /* # of retries to retrieve matching dcmd response */
#define BUS_HEADER_LEN (16+64) /* Must be atleast SDPCM_RESERVE #define BUS_HEADER_LEN (16+64) /* Must be atleast SDPCM_RESERVE
...@@ -350,7 +363,7 @@ int brcmf_proto_attach(struct brcmf_pub *drvr) ...@@ -350,7 +363,7 @@ int brcmf_proto_attach(struct brcmf_pub *drvr)
} }
drvr->prot = cdc; drvr->prot = cdc;
drvr->hdrlen += BDC_HEADER_LEN; drvr->hdrlen += BDC_HEADER_LEN + BRCMF_PROT_FW_SIGNAL_MAX_TXBYTES;
drvr->bus_if->maxctl = BRCMF_DCMD_MAXLEN + drvr->bus_if->maxctl = BRCMF_DCMD_MAXLEN +
sizeof(struct brcmf_proto_cdc_dcmd) + ROUND_UP_MARGIN; sizeof(struct brcmf_proto_cdc_dcmd) + ROUND_UP_MARGIN;
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment