Commit d3126c52 authored by Arend van Spriel's avatar Arend van Spriel Committed by John W. Linville

brcm80211: smac: change ai_findcoreidx() to ai_findcore()

Instead of returning the core index the function now returns
the bcma device for the requested core id. This function is
now exposed in the header file.
Reviewed-by: default avatarPieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: default avatarAlwin Beukers <alwin@broadcom.com>
Signed-off-by: default avatarArend van Spriel <arend@broadcom.com>
Signed-off-by: default avatarFranky Lin <frankyl@broadcom.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent dd5f13b8
...@@ -884,7 +884,7 @@ uint ai_coreidx(struct si_pub *sih) ...@@ -884,7 +884,7 @@ uint ai_coreidx(struct si_pub *sih)
} }
/* return index of coreid or BADIDX if not found */ /* return index of coreid or BADIDX if not found */
uint ai_findcoreidx(struct si_pub *sih, uint coreid, uint coreunit) struct bcma_device *ai_findcore(struct si_pub *sih, u16 coreid, u16 coreunit)
{ {
struct bcma_device *core; struct bcma_device *core;
struct si_info *sii; struct si_info *sii;
...@@ -897,11 +897,11 @@ uint ai_findcoreidx(struct si_pub *sih, uint coreid, uint coreunit) ...@@ -897,11 +897,11 @@ uint ai_findcoreidx(struct si_pub *sih, uint coreid, uint coreunit)
list_for_each_entry(core, &sii->icbus->cores, list) list_for_each_entry(core, &sii->icbus->cores, list)
if (core->id.id == coreid) { if (core->id.id == coreid) {
if (found == coreunit) if (found == coreunit)
return core->core_index; return core;
found++; found++;
} }
return BADIDX; return NULL;
} }
/* /*
...@@ -912,13 +912,13 @@ uint ai_findcoreidx(struct si_pub *sih, uint coreid, uint coreunit) ...@@ -912,13 +912,13 @@ uint ai_findcoreidx(struct si_pub *sih, uint coreid, uint coreunit)
*/ */
void __iomem *ai_setcore(struct si_pub *sih, uint coreid, uint coreunit) void __iomem *ai_setcore(struct si_pub *sih, uint coreid, uint coreunit)
{ {
uint idx; struct bcma_device *core;
idx = ai_findcoreidx(sih, coreid, coreunit); core = ai_findcore(sih, coreid, coreunit);
if (idx >= SI_MAXCORES) if (core == NULL)
return NULL; return NULL;
return ai_setcoreidx(sih, idx); return ai_setcoreidx(sih, core->core_index);
} }
/* Turn off interrupt as required by ai_setcore, before switch core */ /* Turn off interrupt as required by ai_setcore, before switch core */
......
...@@ -219,6 +219,8 @@ struct si_info { ...@@ -219,6 +219,8 @@ 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 uint ai_coreidx(struct si_pub *sih); extern uint ai_coreidx(struct si_pub *sih);
extern uint ai_corerev(struct si_pub *sih); extern uint ai_corerev(struct si_pub *sih);
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);
......
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