brcmfmac: remove brcmf_sdio_disconnect() function
Instead of calling brcmf_sdio_disconnect() expose brcmf_sdio_remove() and call it directly. Reviewed-by: Franky Lin <frankyl@broadcom.com> Reviewed-by: Hante Meuleman <meuleman@broadcom.com> Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
82d7f3c10c
commit
9fbe2a6dc7
|
@ -901,7 +901,7 @@ static int brcmf_sdiod_remove(struct brcmf_sdio_dev *sdiodev)
|
|||
sdiodev->bus_if->state = BRCMF_BUS_DOWN;
|
||||
|
||||
if (sdiodev->bus) {
|
||||
brcmf_sdio_disconnect(sdiodev->bus);
|
||||
brcmf_sdio_remove(sdiodev->bus);
|
||||
sdiodev->bus = NULL;
|
||||
}
|
||||
|
||||
|
|
|
@ -3973,33 +3973,6 @@ static void brcmf_sdio_release_dongle(struct brcmf_sdio *bus)
|
|||
brcmf_dbg(TRACE, "Disconnected\n");
|
||||
}
|
||||
|
||||
/* Detach and free everything */
|
||||
static void brcmf_sdio_release(struct brcmf_sdio *bus)
|
||||
{
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
|
||||
if (bus) {
|
||||
/* De-register interrupt handler */
|
||||
brcmf_sdiod_intr_unregister(bus->sdiodev);
|
||||
|
||||
cancel_work_sync(&bus->datawork);
|
||||
if (bus->brcmf_wq)
|
||||
destroy_workqueue(bus->brcmf_wq);
|
||||
|
||||
if (bus->sdiodev->bus_if->drvr) {
|
||||
brcmf_detach(bus->sdiodev->dev);
|
||||
brcmf_sdio_release_dongle(bus);
|
||||
}
|
||||
|
||||
brcmu_pkt_buf_free_skb(bus->txglom_sgpad);
|
||||
brcmf_sdio_release_malloc(bus);
|
||||
kfree(bus->hdrbuf);
|
||||
kfree(bus);
|
||||
}
|
||||
|
||||
brcmf_dbg(TRACE, "Disconnected\n");
|
||||
}
|
||||
|
||||
static struct brcmf_bus_ops brcmf_sdio_bus_ops = {
|
||||
.stop = brcmf_sdio_bus_stop,
|
||||
.preinit = brcmf_sdio_bus_preinit,
|
||||
|
@ -4116,15 +4089,33 @@ struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev)
|
|||
return bus;
|
||||
|
||||
fail:
|
||||
brcmf_sdio_release(bus);
|
||||
brcmf_sdio_remove(bus);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void brcmf_sdio_disconnect(struct brcmf_sdio *bus)
|
||||
/* Detach and free everything */
|
||||
void brcmf_sdio_remove(struct brcmf_sdio *bus)
|
||||
{
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
|
||||
brcmf_sdio_release(bus);
|
||||
if (bus) {
|
||||
/* De-register interrupt handler */
|
||||
brcmf_sdiod_intr_unregister(bus->sdiodev);
|
||||
|
||||
cancel_work_sync(&bus->datawork);
|
||||
if (bus->brcmf_wq)
|
||||
destroy_workqueue(bus->brcmf_wq);
|
||||
|
||||
if (bus->sdiodev->bus_if->drvr) {
|
||||
brcmf_detach(bus->sdiodev->dev);
|
||||
brcmf_sdio_release_dongle(bus);
|
||||
}
|
||||
|
||||
brcmu_pkt_buf_free_skb(bus->txglom_sgpad);
|
||||
brcmf_sdio_release_malloc(bus);
|
||||
kfree(bus->hdrbuf);
|
||||
kfree(bus);
|
||||
}
|
||||
|
||||
brcmf_dbg(TRACE, "Disconnected\n");
|
||||
}
|
||||
|
|
|
@ -236,7 +236,7 @@ int brcmf_sdiod_ramrw(struct brcmf_sdio_dev *sdiodev, bool write, u32 address,
|
|||
int brcmf_sdiod_abort(struct brcmf_sdio_dev *sdiodev, uint fn);
|
||||
|
||||
struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev);
|
||||
void brcmf_sdio_disconnect(struct brcmf_sdio *bus);
|
||||
void brcmf_sdio_remove(struct brcmf_sdio *bus);
|
||||
void brcmf_sdio_isr(struct brcmf_sdio *bus);
|
||||
|
||||
void brcmf_sdio_wd_timer(struct brcmf_sdio *bus, uint wdtick);
|
||||
|
|
Loading…
Reference in New Issue