Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a97e4fc5 authored by Franky Lin's avatar Franky Lin Committed by John W. Linville
Browse files

brcm80211: fmac: chip attach code flow clean up



Merged brcmf_sdbrcm_chip_attach into brcmf_sdio_chip_attach
for better readability.

Reviewed-by: default avatarArend van Spriel <arend@broadcom.com>
Signed-off-by: default avatarFranky Lin <frankyl@broadcom.com>
Signed-off-by: default avatarArend van Spriel <arend@broadcom.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 98ce9035
Loading
Loading
Loading
Loading
+3 −28
Original line number Diff line number Diff line
@@ -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)
{
@@ -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
	 */

@@ -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;
	}

+17 −4
Original line number Diff line number Diff line
@@ -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);

@@ -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;
}
+1 −2
Original line number Diff line number Diff line
@@ -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_ */