summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArend van Spriel <arend@broadcom.com>2011-12-12 15:14:59 -0800
committerJohn W. Linville <linville@tuxdriver.com>2011-12-13 15:47:54 -0500
commitd3126c52eb7f3239b45481facc4078b08ed1027c (patch)
tree08dfdfa538e42755831fdf146dbadc99a8a32a7e
parentdd5f13b8a4b5f86e645e7e6662075004d116d5ad (diff)
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: Pieter-Paul Giesberts <pieterpg@broadcom.com> Reviewed-by: Alwin Beukers <alwin@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: Franky Lin <frankyl@broadcom.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/aiutils.c14
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/aiutils.h2
2 files changed, 9 insertions, 7 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmsmac/aiutils.c b/drivers/net/wireless/brcm80211/brcmsmac/aiutils.c
index 8d3829a7319..a54cf32d1eb 100644
--- a/drivers/net/wireless/brcm80211/brcmsmac/aiutils.c
+++ b/drivers/net/wireless/brcm80211/brcmsmac/aiutils.c
@@ -884,7 +884,7 @@ uint ai_coreidx(struct si_pub *sih)
}
/* 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 si_info *sii;
@@ -897,11 +897,11 @@ uint ai_findcoreidx(struct si_pub *sih, uint coreid, uint coreunit)
list_for_each_entry(core, &sii->icbus->cores, list)
if (core->id.id == coreid) {
if (found == coreunit)
- return core->core_index;
+ return core;
found++;
}
- return BADIDX;
+ return NULL;
}
/*
@@ -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)
{
- uint idx;
+ struct bcma_device *core;
- idx = ai_findcoreidx(sih, coreid, coreunit);
- if (idx >= SI_MAXCORES)
+ core = ai_findcore(sih, coreid, coreunit);
+ if (core == 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 */
diff --git a/drivers/net/wireless/brcm80211/brcmsmac/aiutils.h b/drivers/net/wireless/brcm80211/brcmsmac/aiutils.h
index 67b378f2f57..b0b0bfffe16 100644
--- a/drivers/net/wireless/brcm80211/brcmsmac/aiutils.h
+++ b/drivers/net/wireless/brcm80211/brcmsmac/aiutils.h
@@ -219,6 +219,8 @@ struct si_info {
/* 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_corerev(struct si_pub *sih);
extern u32 ai_core_cflags(struct bcma_device *core, u32 mask, u32 val);