Commit cee3cf4b authored by Franky Lin's avatar Franky Lin Committed by Greg Kroah-Hartman

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: default avatarFranky Lin <frankyl@broadcom.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 5d0d7a98
...@@ -487,6 +487,7 @@ static int dhdsdio_chip_attach(struct dhd_bus *bus, void *regs); ...@@ -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_chip_resetcore(bcmsdh_info_t *sdh, u32 corebase);
static void dhdsdio_sdiod_drive_strength_init(struct dhd_bus *bus, static void dhdsdio_sdiod_drive_strength_init(struct dhd_bus *bus,
u32 drivestrength); u32 drivestrength);
static void dhdsdio_chip_detach(struct dhd_bus *bus);
static void dhd_dongle_setmemsize(struct dhd_bus *bus, int mem_size) static void dhd_dongle_setmemsize(struct dhd_bus *bus, int mem_size)
{ {
...@@ -5484,10 +5485,8 @@ static void dhdsdio_release(dhd_bus_t *bus) ...@@ -5484,10 +5485,8 @@ static void dhdsdio_release(dhd_bus_t *bus)
bcmsdh_intr_dereg(bus->sdh); bcmsdh_intr_dereg(bus->sdh);
if (bus->dhd) { if (bus->dhd) {
dhdsdio_release_dongle(bus);
dhd_detach(bus->dhd); dhd_detach(bus->dhd);
dhdsdio_release_dongle(bus);
bus->dhd = NULL; bus->dhd = NULL;
} }
...@@ -5530,6 +5529,7 @@ static void dhdsdio_release_dongle(dhd_bus_t *bus) ...@@ -5530,6 +5529,7 @@ static void dhdsdio_release_dongle(dhd_bus_t *bus)
#endif /* !defined(BCMLXSDMMC) */ #endif /* !defined(BCMLXSDMMC) */
dhdsdio_clkctl(bus, CLK_NONE, false); dhdsdio_clkctl(bus, CLK_NONE, false);
si_detach(bus->sih); si_detach(bus->sih);
dhdsdio_chip_detach(bus);
if (bus->vars && bus->varsz) if (bus->vars && bus->varsz)
kfree(bus->vars); kfree(bus->vars);
bus->vars = NULL; bus->vars = NULL;
...@@ -6426,3 +6426,12 @@ dhdsdio_sdiod_drive_strength_init(struct dhd_bus *bus, u32 drivestrength) { ...@@ -6426,3 +6426,12 @@ dhdsdio_sdiod_drive_strength_init(struct dhd_bus *bus, u32 drivestrength) {
drivestrength, cc_data_temp)); 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;
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment