|
@@ -2820,6 +2820,8 @@ static int brcmf_sdio_bus_txdata(struct device *dev, struct sk_buff *pkt)
|
|
|
struct brcmf_sdio *bus = sdiodev->bus;
|
|
|
|
|
|
brcmf_dbg(TRACE, "Enter: pkt: data %p len %d\n", pkt->data, pkt->len);
|
|
|
+ if (sdiodev->state != BRCMF_SDIOD_DATA)
|
|
|
+ return -EIO;
|
|
|
|
|
|
/* Add space for the header */
|
|
|
skb_push(pkt, bus->tx_hdrlen);
|
|
@@ -2948,6 +2950,8 @@ brcmf_sdio_bus_txctl(struct device *dev, unsigned char *msg, uint msglen)
|
|
|
int ret;
|
|
|
|
|
|
brcmf_dbg(TRACE, "Enter\n");
|
|
|
+ if (sdiodev->state != BRCMF_SDIOD_DATA)
|
|
|
+ return -EIO;
|
|
|
|
|
|
/* Send from dpc */
|
|
|
bus->ctrl_frame_buf = msg;
|
|
@@ -3238,6 +3242,8 @@ brcmf_sdio_bus_rxctl(struct device *dev, unsigned char *msg, uint msglen)
|
|
|
struct brcmf_sdio *bus = sdiodev->bus;
|
|
|
|
|
|
brcmf_dbg(TRACE, "Enter\n");
|
|
|
+ if (sdiodev->state != BRCMF_SDIOD_DATA)
|
|
|
+ return -EIO;
|
|
|
|
|
|
/* Wait until control frame is available */
|
|
|
timeleft = brcmf_sdio_dcmd_resp_wait(bus, &bus->rxlen, &pending);
|