From cee3cf4bc34062e64ba7151fd64d3aa50495975c Mon Sep 17 00:00:00 2001 From: Franky Lin Date: Mon, 25 Apr 2011 19:34:06 -0700 Subject: [PATCH] staging: brcm80211: Add dhdsdio_chip_detach in dhd_sdio.c Add dhdsdio_chip_detach to replace si_detach for si/sb utils removal Signed-off-by: Franky Lin Signed-off-by: Greg Kroah-Hartman --- drivers/staging/brcm80211/brcmfmac/dhd_sdio.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/drivers/staging/brcm80211/brcmfmac/dhd_sdio.c b/drivers/staging/brcm80211/brcmfmac/dhd_sdio.c index e2d5aa509b4c..74d7935f162e 100644 --- a/drivers/staging/brcm80211/brcmfmac/dhd_sdio.c +++ b/drivers/staging/brcm80211/brcmfmac/dhd_sdio.c @@ -487,6 +487,7 @@ static int dhdsdio_chip_attach(struct dhd_bus *bus, void *regs); static void dhdsdio_chip_resetcore(bcmsdh_info_t *sdh, u32 corebase); static void dhdsdio_sdiod_drive_strength_init(struct dhd_bus *bus, u32 drivestrength); +static void dhdsdio_chip_detach(struct dhd_bus *bus); static void dhd_dongle_setmemsize(struct dhd_bus *bus, int mem_size) { @@ -5484,10 +5485,8 @@ static void dhdsdio_release(dhd_bus_t *bus) bcmsdh_intr_dereg(bus->sdh); if (bus->dhd) { - - dhdsdio_release_dongle(bus); - dhd_detach(bus->dhd); + dhdsdio_release_dongle(bus); bus->dhd = NULL; } @@ -5530,6 +5529,7 @@ static void dhdsdio_release_dongle(dhd_bus_t *bus) #endif /* !defined(BCMLXSDMMC) */ dhdsdio_clkctl(bus, CLK_NONE, false); si_detach(bus->sih); + dhdsdio_chip_detach(bus); if (bus->vars && bus->varsz) kfree(bus->vars); bus->vars = NULL; @@ -6426,3 +6426,12 @@ dhdsdio_sdiod_drive_strength_init(struct dhd_bus *bus, u32 drivestrength) { drivestrength, cc_data_temp)); } } + +static void +dhdsdio_chip_detach(struct dhd_bus *bus) +{ + DHD_TRACE(("%s: Enter\n", __func__)); + + kfree(bus->ci); + bus->ci = NULL; +} -- 2.39.5