提交 bfad4a04 编写于 作者: A Arend van Spriel 提交者: John W. Linville

brcmfmac: cleanup helper functions in sdio remove path

Two helper functions in the sdio remove path were very thin and
only used once. So its code is moved to the calling function.
Reviewed-by: NHante Meuleman <meuleman@broadcom.com>
Signed-off-by: NArend van Spriel <arend@broadcom.com>
Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
上级 d4533992
...@@ -3750,15 +3750,6 @@ static void brcmf_sdio_dataworker(struct work_struct *work) ...@@ -3750,15 +3750,6 @@ static void brcmf_sdio_dataworker(struct work_struct *work)
} }
} }
static void brcmf_sdio_release_malloc(struct brcmf_sdio *bus)
{
brcmf_dbg(TRACE, "Enter\n");
kfree(bus->rxbuf);
bus->rxctl = bus->rxbuf = NULL;
bus->rxlen = 0;
}
static bool brcmf_sdio_probe_malloc(struct brcmf_sdio *bus) static bool brcmf_sdio_probe_malloc(struct brcmf_sdio *bus)
{ {
brcmf_dbg(TRACE, "Enter\n"); brcmf_dbg(TRACE, "Enter\n");
...@@ -3955,24 +3946,6 @@ brcmf_sdio_watchdog(unsigned long data) ...@@ -3955,24 +3946,6 @@ brcmf_sdio_watchdog(unsigned long data)
} }
} }
static void brcmf_sdio_release_dongle(struct brcmf_sdio *bus)
{
brcmf_dbg(TRACE, "Enter\n");
if (bus->ci) {
sdio_claim_host(bus->sdiodev->func[1]);
brcmf_sdio_clkctl(bus, CLK_AVAIL, false);
brcmf_sdio_clkctl(bus, CLK_NONE, false);
sdio_release_host(bus->sdiodev->func[1]);
brcmf_sdio_chip_detach(&bus->ci);
if (bus->vars && bus->varsz)
kfree(bus->vars);
bus->vars = NULL;
}
brcmf_dbg(TRACE, "Disconnected\n");
}
static struct brcmf_bus_ops brcmf_sdio_bus_ops = { static struct brcmf_bus_ops brcmf_sdio_bus_ops = {
.stop = brcmf_sdio_bus_stop, .stop = brcmf_sdio_bus_stop,
.preinit = brcmf_sdio_bus_preinit, .preinit = brcmf_sdio_bus_preinit,
...@@ -4108,12 +4081,20 @@ void brcmf_sdio_remove(struct brcmf_sdio *bus) ...@@ -4108,12 +4081,20 @@ void brcmf_sdio_remove(struct brcmf_sdio *bus)
if (bus->sdiodev->bus_if->drvr) { if (bus->sdiodev->bus_if->drvr) {
brcmf_detach(bus->sdiodev->dev); brcmf_detach(bus->sdiodev->dev);
brcmf_sdio_release_dongle(bus); }
if (bus->ci) {
sdio_claim_host(bus->sdiodev->func[1]);
brcmf_sdio_clkctl(bus, CLK_AVAIL, false);
brcmf_sdio_clkctl(bus, CLK_NONE, false);
sdio_release_host(bus->sdiodev->func[1]);
brcmf_sdio_chip_detach(&bus->ci);
} }
brcmu_pkt_buf_free_skb(bus->txglom_sgpad); brcmu_pkt_buf_free_skb(bus->txglom_sgpad);
brcmf_sdio_release_malloc(bus); kfree(bus->rxbuf);
kfree(bus->hdrbuf); kfree(bus->hdrbuf);
kfree(bus->vars);
kfree(bus); kfree(bus);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册