brcm80211: fmac: abstract bus_txdata interface function pointer
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>
This commit is contained in:
committed by
John W. Linville
parent
99a0b8ff91
commit
b9692d17e8
@@ -53,6 +53,8 @@ struct brcmf_bus {
|
|||||||
void (*brcmf_bus_stop)(struct device *);
|
void (*brcmf_bus_stop)(struct device *);
|
||||||
/* Initialize bus module: prepare for communication w/dongle */
|
/* Initialize bus module: prepare for communication w/dongle */
|
||||||
int (*brcmf_bus_init)(struct device *);
|
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)
|
* 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.
|
/* Send/receive a control message to/from the dongle.
|
||||||
* Expects caller to enforce a single outstanding transaction.
|
* Expects caller to enforce a single outstanding transaction.
|
||||||
*/
|
*/
|
||||||
|
@@ -291,7 +291,7 @@ int brcmf_sendpkt(struct brcmf_pub *drvr, int ifidx, struct sk_buff *pktbuf)
|
|||||||
brcmf_proto_hdrpush(drvr, ifidx, pktbuf);
|
brcmf_proto_hdrpush(drvr, ifidx, pktbuf);
|
||||||
|
|
||||||
/* Use bus module to send data frame */
|
/* 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)
|
static int brcmf_netdev_start_xmit(struct sk_buff *skb, struct net_device *ndev)
|
||||||
|
@@ -2655,7 +2655,7 @@ static int brcmf_sdbrcm_dpc_thread(void *data)
|
|||||||
return 0;
|
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;
|
int ret = -EBADE;
|
||||||
uint datalen, prec;
|
uint datalen, prec;
|
||||||
@@ -3955,6 +3955,7 @@ void *brcmf_sdbrcm_probe(u32 regsva, struct brcmf_sdio_dev *sdiodev)
|
|||||||
/* Assign bus interface call back */
|
/* Assign bus interface call back */
|
||||||
bus->sdiodev->bus_if->brcmf_bus_stop = brcmf_sdbrcm_bus_stop;
|
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_init = brcmf_sdbrcm_bus_init;
|
||||||
|
bus->sdiodev->bus_if->brcmf_bus_txdata = brcmf_sdbrcm_bus_txdata;
|
||||||
/* Attach to the brcmf/OS/network interface */
|
/* Attach to the brcmf/OS/network interface */
|
||||||
ret = brcmf_attach(SDPCM_RESERVE, bus->sdiodev->dev);
|
ret = brcmf_attach(SDPCM_RESERVE, bus->sdiodev->dev);
|
||||||
if (ret != 0) {
|
if (ret != 0) {
|
||||||
|
Reference in New Issue
Block a user