Commit 40bd94ce authored by Hauke Mehrtens's avatar Hauke Mehrtens Committed by John W. Linville

brcmsmac: remove ai_findcore()

bcma also stores a pointer to the chipcommon core in its struct,
brcmsmac should use it and not search for the core by its own.
Acked-by: default avatarArend van Spriel <arend@broadcom.com>
Signed-off-by: default avatarHauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent ed1dd814
...@@ -590,27 +590,6 @@ void ai_detach(struct si_pub *sih) ...@@ -590,27 +590,6 @@ void ai_detach(struct si_pub *sih)
kfree(sii); kfree(sii);
} }
/* return index of coreid or BADIDX if not found */
struct bcma_device *ai_findcore(struct si_pub *sih, u16 coreid, u16 coreunit)
{
struct bcma_device *core;
struct si_info *sii;
uint found;
sii = container_of(sih, struct si_info, pub);
found = 0;
list_for_each_entry(core, &sii->icbus->cores, list)
if (core->id.id == coreid) {
if (found == coreunit)
return core;
found++;
}
return NULL;
}
/* /*
* read/modify chipcommon core register. * read/modify chipcommon core register.
*/ */
...@@ -686,12 +665,13 @@ ai_clkctl_setdelay(struct si_pub *sih, struct bcma_device *cc) ...@@ -686,12 +665,13 @@ ai_clkctl_setdelay(struct si_pub *sih, struct bcma_device *cc)
/* initialize power control delay registers */ /* initialize power control delay registers */
void ai_clkctl_init(struct si_pub *sih) void ai_clkctl_init(struct si_pub *sih)
{ {
struct si_info *sii = container_of(sih, struct si_info, pub);
struct bcma_device *cc; struct bcma_device *cc;
if (!(ai_get_cccaps(sih) & CC_CAP_PWR_CTL)) if (!(ai_get_cccaps(sih) & CC_CAP_PWR_CTL))
return; return;
cc = ai_findcore(sih, BCMA_CORE_CHIPCOMMON, 0); cc = sii->icbus->drv_cc.core;
if (cc == NULL) if (cc == NULL)
return; return;
...@@ -723,7 +703,7 @@ u16 ai_clkctl_fast_pwrup_delay(struct si_pub *sih) ...@@ -723,7 +703,7 @@ u16 ai_clkctl_fast_pwrup_delay(struct si_pub *sih)
return 0; return 0;
fpdelay = 0; fpdelay = 0;
cc = ai_findcore(sih, CC_CORE_ID, 0); cc = sii->icbus->drv_cc.core;
if (cc) { if (cc) {
slowminfreq = ai_slowclk_freq(sih, false, cc); slowminfreq = ai_slowclk_freq(sih, false, cc);
fpdelay = (((bcma_read32(cc, CHIPCREGOFFS(pll_on_delay)) + 2) fpdelay = (((bcma_read32(cc, CHIPCREGOFFS(pll_on_delay)) + 2)
...@@ -747,7 +727,7 @@ bool ai_clkctl_cc(struct si_pub *sih, enum bcma_clkmode mode) ...@@ -747,7 +727,7 @@ bool ai_clkctl_cc(struct si_pub *sih, enum bcma_clkmode mode)
sii = container_of(sih, struct si_info, pub); sii = container_of(sih, struct si_info, pub);
cc = ai_findcore(&sii->pub, BCMA_CORE_CHIPCOMMON, 0); cc = sii->icbus->drv_cc.core;
bcma_core_set_clockmode(cc, mode); bcma_core_set_clockmode(cc, mode);
return mode == BCMA_CLKMODE_FAST; return mode == BCMA_CLKMODE_FAST;
} }
...@@ -776,9 +756,10 @@ void ai_pci_down(struct si_pub *sih) ...@@ -776,9 +756,10 @@ void ai_pci_down(struct si_pub *sih)
/* Enable BT-COEX & Ex-PA for 4313 */ /* Enable BT-COEX & Ex-PA for 4313 */
void ai_epa_4313war(struct si_pub *sih) void ai_epa_4313war(struct si_pub *sih)
{ {
struct si_info *sii = container_of(sih, struct si_info, pub);
struct bcma_device *cc; struct bcma_device *cc;
cc = ai_findcore(sih, CC_CORE_ID, 0); cc = sii->icbus->drv_cc.core;
/* EPA Fix */ /* EPA Fix */
bcma_set32(cc, CHIPCREGOFFS(gpiocontrol), GPIO_CTRL_EPA_EN_MASK); bcma_set32(cc, CHIPCREGOFFS(gpiocontrol), GPIO_CTRL_EPA_EN_MASK);
......
...@@ -182,8 +182,6 @@ struct si_info { ...@@ -182,8 +182,6 @@ struct si_info {
/* AMBA Interconnect exported externs */ /* AMBA Interconnect exported externs */
extern struct bcma_device *ai_findcore(struct si_pub *sih,
u16 coreid, u16 coreunit);
extern u32 ai_core_cflags(struct bcma_device *core, u32 mask, u32 val); extern u32 ai_core_cflags(struct bcma_device *core, u32 mask, u32 val);
/* === exported functions === */ /* === exported functions === */
......
...@@ -142,10 +142,11 @@ static void si_pmu_res_masks(struct si_pub *sih, u32 * pmin, u32 * pmax) ...@@ -142,10 +142,11 @@ static void si_pmu_res_masks(struct si_pub *sih, u32 * pmin, u32 * pmax)
void si_pmu_spuravoid_pllupdate(struct si_pub *sih, u8 spuravoid) void si_pmu_spuravoid_pllupdate(struct si_pub *sih, u8 spuravoid)
{ {
u32 tmp = 0; u32 tmp = 0;
struct si_info *sii = container_of(sih, struct si_info, pub);
struct bcma_device *core; struct bcma_device *core;
/* switch to chipc */ /* switch to chipc */
core = ai_findcore(sih, BCMA_CORE_CHIPCOMMON, 0); core = sii->icbus->drv_cc.core;
switch (ai_get_chip_id(sih)) { switch (ai_get_chip_id(sih)) {
case BCM43224_CHIP_ID: case BCM43224_CHIP_ID:
...@@ -286,10 +287,11 @@ u32 si_pmu_alp_clock(struct si_pub *sih) ...@@ -286,10 +287,11 @@ u32 si_pmu_alp_clock(struct si_pub *sih)
/* initialize PMU */ /* initialize PMU */
void si_pmu_init(struct si_pub *sih) void si_pmu_init(struct si_pub *sih)
{ {
struct si_info *sii = container_of(sih, struct si_info, pub);
struct bcma_device *core; struct bcma_device *core;
/* select chipc */ /* select chipc */
core = ai_findcore(sih, BCMA_CORE_CHIPCOMMON, 0); core = sii->icbus->drv_cc.core;
if (ai_get_pmurev(sih) == 1) if (ai_get_pmurev(sih) == 1)
bcma_mask32(core, CHIPCREGOFFS(pmucontrol), bcma_mask32(core, CHIPCREGOFFS(pmucontrol),
...@@ -301,11 +303,12 @@ void si_pmu_init(struct si_pub *sih) ...@@ -301,11 +303,12 @@ void si_pmu_init(struct si_pub *sih)
/* initialize PMU resources */ /* initialize PMU resources */
void si_pmu_res_init(struct si_pub *sih) void si_pmu_res_init(struct si_pub *sih)
{ {
struct si_info *sii = container_of(sih, struct si_info, pub);
struct bcma_device *core; struct bcma_device *core;
u32 min_mask = 0, max_mask = 0; u32 min_mask = 0, max_mask = 0;
/* select to chipc */ /* select to chipc */
core = ai_findcore(sih, BCMA_CORE_CHIPCOMMON, 0); core = sii->icbus->drv_cc.core;
/* Determine min/max rsrc masks */ /* Determine min/max rsrc masks */
si_pmu_res_masks(sih, &min_mask, &max_mask); si_pmu_res_masks(sih, &min_mask, &max_mask);
...@@ -328,6 +331,7 @@ void si_pmu_res_init(struct si_pub *sih) ...@@ -328,6 +331,7 @@ void si_pmu_res_init(struct si_pub *sih)
u32 si_pmu_measure_alpclk(struct si_pub *sih) u32 si_pmu_measure_alpclk(struct si_pub *sih)
{ {
struct si_info *sii = container_of(sih, struct si_info, pub);
struct bcma_device *core; struct bcma_device *core;
u32 alp_khz; u32 alp_khz;
...@@ -335,7 +339,7 @@ u32 si_pmu_measure_alpclk(struct si_pub *sih) ...@@ -335,7 +339,7 @@ u32 si_pmu_measure_alpclk(struct si_pub *sih)
return 0; return 0;
/* Remember original core before switch to chipc */ /* Remember original core before switch to chipc */
core = ai_findcore(sih, BCMA_CORE_CHIPCOMMON, 0); core = sii->icbus->drv_cc.core;
if (bcma_read32(core, CHIPCREGOFFS(pmustatus)) & PST_EXTLPOAVAIL) { if (bcma_read32(core, CHIPCREGOFFS(pmustatus)) & PST_EXTLPOAVAIL) {
u32 ilp_ctr, alp_hz; u32 ilp_ctr, alp_hz;
......
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