brcm80211: fmac: abstract bus_txdata interface function pointer
authorFranky Lin <frankyl@broadcom.com>
Sat, 17 Dec 2011 02:37:15 +0000 (18:37 -0800)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 19 Dec 2011 19:40:47 +0000 (14:40 -0500)
Abstract bus layer brcmf_bus_txdata function pointer for common
layer. This patch 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>
drivers/net/wireless/brcm80211/brcmfmac/dhd_bus.h
drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c
drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c

index 5d5f2afed1ffae539b320e56b430f35a2eea52df..d5e0ec36d202d4c2bd10473827cef8471d5ea060 100644 (file)
@@ -53,6 +53,8 @@ struct brcmf_bus {
        void (*brcmf_bus_stop)(struct device *);
        /* Initialize bus module: prepare for communication w/dongle */
        int (*brcmf_bus_init)(struct device *);
+       /* Send a data frame to the dongle.  Callee disposes of txp. */
+       int (*brcmf_bus_txdata)(struct device *, struct sk_buff *);
 };
 
 /*
@@ -99,9 +101,6 @@ extern int brcmf_add_if(struct device *dev, int ifidx,
 /*
  * Exported from brcmf bus module (brcmf_usb, brcmf_sdio)
  */
-/* Send a data frame to the dongle.  Callee disposes of txp. */
-extern int brcmf_sdbrcm_bus_txdata(struct device *dev, struct sk_buff *txp);
-
 /* Send/receive a control message to/from the dongle.
  * Expects caller to enforce a single outstanding transaction.
  */
index 62b457545ac6170448d34227f3af81b4dc85016e..72bee2c049574d2a914baa9ffd6ea0c365ea6949 100644 (file)
@@ -291,7 +291,7 @@ int brcmf_sendpkt(struct brcmf_pub *drvr, int ifidx, struct sk_buff *pktbuf)
        brcmf_proto_hdrpush(drvr, ifidx, pktbuf);
 
        /* Use bus module to send data frame */
-       return brcmf_sdbrcm_bus_txdata(drvr->dev, pktbuf);
+       return drvr->bus_if->brcmf_bus_txdata(drvr->dev, pktbuf);
 }
 
 static int brcmf_netdev_start_xmit(struct sk_buff *skb, struct net_device *ndev)
index 5089b6444bec1d9ef50e6fee0a42127fd550906a..6a3095038dd652e6e8dd48150caeecf15206512a 100644 (file)
@@ -2655,7 +2655,7 @@ static int brcmf_sdbrcm_dpc_thread(void *data)
        return 0;
 }
 
-int brcmf_sdbrcm_bus_txdata(struct device *dev, struct sk_buff *pkt)
+static int brcmf_sdbrcm_bus_txdata(struct device *dev, struct sk_buff *pkt)
 {
        int ret = -EBADE;
        uint datalen, prec;
@@ -3955,6 +3955,7 @@ void *brcmf_sdbrcm_probe(u32 regsva, struct brcmf_sdio_dev *sdiodev)
        /* Assign bus interface call back */
        bus->sdiodev->bus_if->brcmf_bus_stop = brcmf_sdbrcm_bus_stop;
        bus->sdiodev->bus_if->brcmf_bus_init = brcmf_sdbrcm_bus_init;
+       bus->sdiodev->bus_if->brcmf_bus_txdata = brcmf_sdbrcm_bus_txdata;
        /* Attach to the brcmf/OS/network interface */
        ret = brcmf_attach(SDPCM_RESERVE, bus->sdiodev->dev);
        if (ret != 0) {