brcmfmac: add parameter to brcmf_proto_hdrpush() for data offset
authorArend van Spriel <arend@broadcom.com>
Sun, 3 Mar 2013 11:45:32 +0000 (12:45 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 6 Mar 2013 21:28:50 +0000 (16:28 -0500)
The function brcmf_proto_hdrpush() increases the header space and
fills in the protocol header fields. One field is the data offset
which is currently fixed to zero meaning the data follows right
after the header. The parameter is added to determine the actual
start of data. This will be used for firmware signalling.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Hante Meuleman <meuleman@broadcom.com>
Reviewed-by: Piotr Haber <phaber@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/brcm80211/brcmfmac/dhd_cdc.c
drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c
drivers/net/wireless/brcm80211/brcmfmac/dhd_proto.h

index 8212d4384b1bf03db7a8dd568da907402fe90988..e224bcb900247a4557d2cd076c549cd4ca2a44ec 100644 (file)
@@ -272,7 +272,7 @@ static void pkt_set_sum_good(struct sk_buff *skb, bool x)
        skb->ip_summed = (x ? CHECKSUM_UNNECESSARY : CHECKSUM_NONE);
 }
 
-void brcmf_proto_hdrpush(struct brcmf_pub *drvr, int ifidx,
+void brcmf_proto_hdrpush(struct brcmf_pub *drvr, int ifidx, u8 offset,
                         struct sk_buff *pktbuf)
 {
        struct brcmf_proto_bdc_header *h;
@@ -280,7 +280,6 @@ void brcmf_proto_hdrpush(struct brcmf_pub *drvr, int ifidx,
        brcmf_dbg(CDC, "Enter\n");
 
        /* Push BDC header used to convey priority for buses that don't */
-
        skb_push(pktbuf, BDC_HEADER_LEN);
 
        h = (struct brcmf_proto_bdc_header *)(pktbuf->data);
@@ -291,7 +290,7 @@ void brcmf_proto_hdrpush(struct brcmf_pub *drvr, int ifidx,
 
        h->priority = (pktbuf->priority & BDC_PRIORITY_MASK);
        h->flags2 = 0;
-       h->data_offset = 0;
+       h->data_offset = offset;
        BDC_SET_IF_IDX(h, ifidx);
 }
 
index faf2092369756e996d402eebb7f20404d0f73152..fa5a2af04d462e11849320de8ab1ac23c29d5874 100644 (file)
@@ -231,7 +231,7 @@ static netdev_tx_t brcmf_netdev_start_xmit(struct sk_buff *skb,
                atomic_inc(&ifp->pend_8021x_cnt);
 
        /* If the protocol uses a data header, apply it */
-       brcmf_proto_hdrpush(drvr, ifp->ifidx, skb);
+       brcmf_proto_hdrpush(drvr, ifp->ifidx, 0, skb);
 
        /* Use bus module to send data frame */
        ret =  brcmf_bus_txdata(drvr->bus_if, skb);
index 48fa70302192d3f7e6c18f001f00b22dc176b009..ef9179883748f0aa9637900a6e7bab1b476cd937 100644 (file)
@@ -33,7 +33,7 @@ extern void brcmf_proto_stop(struct brcmf_pub *drvr);
 /* Add any protocol-specific data header.
  * Caller must reserve prot_hdrlen prepend space.
  */
-extern void brcmf_proto_hdrpush(struct brcmf_pub *, int ifidx,
+extern void brcmf_proto_hdrpush(struct brcmf_pub *, int ifidx, u8 offset,
                                struct sk_buff *txp);
 
 /* Sets dongle media info (drv_version, mac address). */