brcm80211: smac: change ai_findcoreidx() to ai_findcore()
authorArend van Spriel <arend@broadcom.com>
Mon, 12 Dec 2011 23:14:59 +0000 (15:14 -0800)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 13 Dec 2011 20:47:54 +0000 (15:47 -0500)
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>
drivers/net/wireless/brcm80211/brcmsmac/aiutils.c
drivers/net/wireless/brcm80211/brcmsmac/aiutils.h

index 8d3829a7319049575769e7140b0162af3a389676..a54cf32d1eb53a9d323508a21d694f80ec860004 100644 (file)
@@ -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 */
index 67b378f2f57ea5e34441369ac6105dc7dbf31fc7..b0b0bfffe162c8adfd2a2930b92504a19c9416d6 100644 (file)
@@ -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);