Skip to content

Commit

Permalink
brcm80211: fmac: chip attach code flow clean up
Browse files Browse the repository at this point in the history
Merged brcmf_sdbrcm_chip_attach into brcmf_sdio_chip_attach
for better readability.

Reviewed-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Franky Lin authored and John W. Linville committed Nov 9, 2011
1 parent 98ce903 commit a97e4fc
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 34 deletions.
31 changes: 3 additions & 28 deletions drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c
Original file line number Diff line number Diff line change
Expand Up @@ -3867,31 +3867,6 @@ static void brcmf_sdbrcm_sdiod_drive_strength_init(struct brcmf_bus *bus,
}
}

static int
brcmf_sdbrcm_chip_attach(struct brcmf_bus *bus, u32 regs)
{
struct chip_info *ci;
int err;

brcmf_dbg(TRACE, "Enter\n");

/* alloc chip_info_t */
ci = kzalloc(sizeof(struct chip_info), GFP_ATOMIC);
if (NULL == ci)
return -ENOMEM;

err = brcmf_sdio_chip_attach(bus->sdiodev, ci, regs);
if (err)
goto fail;

bus->ci = ci;
return 0;
fail:
bus->ci = NULL;
kfree(ci);
return err;
}

static bool
brcmf_sdbrcm_probe_attach(struct brcmf_bus *bus, u32 regsva)
{
Expand All @@ -3913,7 +3888,7 @@ brcmf_sdbrcm_probe_attach(struct brcmf_bus *bus, u32 regsva)
#endif /* BCMDBG */

/*
* Force PLL off until brcmf_sdbrcm_chip_attach()
* Force PLL off until brcmf_sdio_chip_attach()
* programs PLL control regs
*/

Expand All @@ -3931,8 +3906,8 @@ brcmf_sdbrcm_probe_attach(struct brcmf_bus *bus, u32 regsva)
goto fail;
}

if (brcmf_sdbrcm_chip_attach(bus, regsva)) {
brcmf_dbg(ERROR, "brcmf_sdbrcm_chip_attach failed!\n");
if (brcmf_sdio_chip_attach(bus->sdiodev, &bus->ci, regsva)) {
brcmf_dbg(ERROR, "brcmf_sdio_chip_attach failed!\n");
goto fail;
}

Expand Down
21 changes: 17 additions & 4 deletions drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.c
Original file line number Diff line number Diff line change
Expand Up @@ -252,17 +252,25 @@ brcmf_sdio_chip_buscoresetup(struct brcmf_sdio_dev *sdiodev,
}

int brcmf_sdio_chip_attach(struct brcmf_sdio_dev *sdiodev,
struct chip_info *ci, u32 regs)
struct chip_info **ci_ptr, u32 regs)
{
int ret = 0;
int ret;
struct chip_info *ci;

brcmf_dbg(TRACE, "Enter\n");

/* alloc chip_info_t */
ci = kzalloc(sizeof(struct chip_info), GFP_ATOMIC);
if (!ci)
return -ENOMEM;

ret = brcmf_sdio_chip_buscoreprep(sdiodev);
if (ret != 0)
return ret;
goto err;

ret = brcmf_sdio_chip_recognition(sdiodev, ci, regs);
if (ret != 0)
return ret;
goto err;

brcmf_sdio_chip_buscoresetup(sdiodev, ci);

Expand All @@ -271,5 +279,10 @@ int brcmf_sdio_chip_attach(struct brcmf_sdio_dev *sdiodev,
brcmf_sdcard_reg_write(sdiodev,
CORE_CC_REG(ci->cccorebase, gpiopulldown), 4, 0);

*ci_ptr = ci;
return 0;

err:
kfree(ci);
return ret;
}
3 changes: 1 addition & 2 deletions drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.h
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,6 @@ struct sbconfig {
extern void brcmf_sdio_chip_coredisable(struct brcmf_sdio_dev *sdiodev,
u32 corebase);
extern int brcmf_sdio_chip_attach(struct brcmf_sdio_dev *sdiodev,
struct chip_info *ci, u32 regs);

struct chip_info **ci_ptr, u32 regs);

#endif /* _BRCMFMAC_SDIO_CHIP_H_ */

0 comments on commit a97e4fc

Please sign in to comment.