forked from Minki/linux
brcmfmac: cleanup helper functions in sdio probe path
Moving code from helper functions to the calling function as it makes code easier to read. 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
bfad4a048c
commit
fad1322850
@ -3750,22 +3750,6 @@ static void brcmf_sdio_dataworker(struct work_struct *work)
|
||||
}
|
||||
}
|
||||
|
||||
static bool brcmf_sdio_probe_malloc(struct brcmf_sdio *bus)
|
||||
{
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
|
||||
if (bus->sdiodev->bus_if->maxctl) {
|
||||
bus->rxblen =
|
||||
roundup((bus->sdiodev->bus_if->maxctl + SDPCM_HDRLEN),
|
||||
ALIGNMENT) + bus->head_align;
|
||||
bus->rxbuf = kmalloc(bus->rxblen, GFP_ATOMIC);
|
||||
if (!(bus->rxbuf))
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool
|
||||
brcmf_sdio_probe_attach(struct brcmf_sdio *bus)
|
||||
{
|
||||
@ -3879,39 +3863,6 @@ fail:
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool brcmf_sdio_probe_init(struct brcmf_sdio *bus)
|
||||
{
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
|
||||
sdio_claim_host(bus->sdiodev->func[1]);
|
||||
|
||||
/* Disable F2 to clear any intermediate frame state on the dongle */
|
||||
sdio_disable_func(bus->sdiodev->func[SDIO_FUNC_2]);
|
||||
|
||||
bus->sdiodev->bus_if->state = BRCMF_BUS_DOWN;
|
||||
bus->rxflow = false;
|
||||
|
||||
/* Done with backplane-dependent accesses, can drop clock... */
|
||||
brcmf_sdiod_regwb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, 0, NULL);
|
||||
|
||||
sdio_release_host(bus->sdiodev->func[1]);
|
||||
|
||||
/* ...and initialize clock/power states */
|
||||
bus->clkstate = CLK_SDONLY;
|
||||
bus->idletime = BRCMF_IDLE_INTERVAL;
|
||||
bus->idleclock = BRCMF_IDLE_ACTIVE;
|
||||
|
||||
/* Query the F2 block size, set roundup accordingly */
|
||||
bus->blocksize = bus->sdiodev->func[2]->cur_blksize;
|
||||
bus->roundup = min(max_roundup, bus->blocksize);
|
||||
|
||||
/* SR state */
|
||||
bus->sleeping = false;
|
||||
bus->sr_enabled = false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static int
|
||||
brcmf_sdio_watchdog_thread(void *data)
|
||||
{
|
||||
@ -4039,15 +3990,42 @@ struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev)
|
||||
}
|
||||
|
||||
/* Allocate buffers */
|
||||
if (!(brcmf_sdio_probe_malloc(bus))) {
|
||||
brcmf_err("brcmf_sdio_probe_malloc failed\n");
|
||||
if (bus->sdiodev->bus_if->maxctl) {
|
||||
bus->rxblen =
|
||||
roundup((bus->sdiodev->bus_if->maxctl + SDPCM_HDRLEN),
|
||||
ALIGNMENT) + bus->head_align;
|
||||
bus->rxbuf = kmalloc(bus->rxblen, GFP_ATOMIC);
|
||||
if (!(bus->rxbuf)) {
|
||||
brcmf_err("rxbuf allocation failed\n");
|
||||
goto fail;
|
||||
}
|
||||
}
|
||||
|
||||
if (!(brcmf_sdio_probe_init(bus))) {
|
||||
brcmf_err("brcmf_sdio_probe_init failed\n");
|
||||
goto fail;
|
||||
}
|
||||
sdio_claim_host(bus->sdiodev->func[1]);
|
||||
|
||||
/* Disable F2 to clear any intermediate frame state on the dongle */
|
||||
sdio_disable_func(bus->sdiodev->func[SDIO_FUNC_2]);
|
||||
|
||||
bus->sdiodev->bus_if->state = BRCMF_BUS_DOWN;
|
||||
bus->rxflow = false;
|
||||
|
||||
/* Done with backplane-dependent accesses, can drop clock... */
|
||||
brcmf_sdiod_regwb(bus->sdiodev, SBSDIO_FUNC1_CHIPCLKCSR, 0, NULL);
|
||||
|
||||
sdio_release_host(bus->sdiodev->func[1]);
|
||||
|
||||
/* ...and initialize clock/power states */
|
||||
bus->clkstate = CLK_SDONLY;
|
||||
bus->idletime = BRCMF_IDLE_INTERVAL;
|
||||
bus->idleclock = BRCMF_IDLE_ACTIVE;
|
||||
|
||||
/* Query the F2 block size, set roundup accordingly */
|
||||
bus->blocksize = bus->sdiodev->func[2]->cur_blksize;
|
||||
bus->roundup = min(max_roundup, bus->blocksize);
|
||||
|
||||
/* SR state */
|
||||
bus->sleeping = false;
|
||||
bus->sr_enabled = false;
|
||||
|
||||
brcmf_sdio_debugfs_create(bus);
|
||||
brcmf_dbg(INFO, "completed!!\n");
|
||||
|
Loading…
Reference in New Issue
Block a user