diff options
author | Arend van Spriel <arend@broadcom.com> | 2011-12-12 18:15:07 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-12-13 15:48:19 -0500 |
commit | 937642f55ef7f8b9dcb202754d53853c7b36e15f (patch) | |
tree | 0f5d3506c30322e97964b4e2bd0613ea95676465 /drivers/net/wireless | |
parent | a232c8a12a0fe55a2e671d24626c98a21b57a332 (diff) |
brcm80211: smac: remove interrupt disable callback functionality
There is no need to interrupt disable/enable functionality any
longer due to BCMA usage assures the correct core is accessed
in any context.
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>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmsmac/aiutils.c | 27 | ||||
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmsmac/aiutils.h | 4 | ||||
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmsmac/main.c | 26 |
3 files changed, 0 insertions, 57 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmsmac/aiutils.c b/drivers/net/wireless/brcm80211/brcmsmac/aiutils.c index 3a78f5f8db7..86e33f95377 100644 --- a/drivers/net/wireless/brcm80211/brcmsmac/aiutils.c +++ b/drivers/net/wireless/brcm80211/brcmsmac/aiutils.c | |||
@@ -818,33 +818,6 @@ void ai_detach(struct si_pub *sih) | |||
818 | kfree(sii); | 818 | kfree(sii); |
819 | } | 819 | } |
820 | 820 | ||
821 | /* register driver interrupt disabling and restoring callback functions */ | ||
822 | void | ||
823 | ai_register_intr_callback(struct si_pub *sih, void *intrsoff_fn, | ||
824 | void *intrsrestore_fn, | ||
825 | void *intrsenabled_fn, void *intr_arg) | ||
826 | { | ||
827 | struct si_info *sii; | ||
828 | |||
829 | sii = (struct si_info *)sih; | ||
830 | sii->intr_arg = intr_arg; | ||
831 | sii->intrsoff_fn = (u32 (*)(void *)) intrsoff_fn; | ||
832 | sii->intrsrestore_fn = (void (*) (void *, u32)) intrsrestore_fn; | ||
833 | sii->intrsenabled_fn = (bool (*)(void *)) intrsenabled_fn; | ||
834 | /* save current core id. when this function called, the current core | ||
835 | * must be the core which provides driver functions(il, et, wl, etc.) | ||
836 | */ | ||
837 | sii->dev_coreid = sii->coreid[sii->curidx]; | ||
838 | } | ||
839 | |||
840 | void ai_deregister_intr_callback(struct si_pub *sih) | ||
841 | { | ||
842 | struct si_info *sii; | ||
843 | |||
844 | sii = (struct si_info *)sih; | ||
845 | sii->intrsoff_fn = NULL; | ||
846 | } | ||
847 | |||
848 | uint ai_coreid(struct si_pub *sih) | 821 | uint ai_coreid(struct si_pub *sih) |
849 | { | 822 | { |
850 | struct si_info *sii; | 823 | struct si_info *sii; |
diff --git a/drivers/net/wireless/brcm80211/brcmsmac/aiutils.h b/drivers/net/wireless/brcm80211/brcmsmac/aiutils.h index b0b0bfffe16..8c513456643 100644 --- a/drivers/net/wireless/brcm80211/brcmsmac/aiutils.h +++ b/drivers/net/wireless/brcm80211/brcmsmac/aiutils.h | |||
@@ -238,10 +238,6 @@ extern void __iomem *ai_switch_core(struct si_pub *sih, uint coreid, | |||
238 | uint *origidx, uint *intr_val); | 238 | uint *origidx, uint *intr_val); |
239 | extern void ai_restore_core(struct si_pub *sih, uint coreid, uint intr_val); | 239 | extern void ai_restore_core(struct si_pub *sih, uint coreid, uint intr_val); |
240 | extern void ai_pci_setup(struct si_pub *sih, uint coremask); | 240 | extern void ai_pci_setup(struct si_pub *sih, uint coremask); |
241 | extern void ai_register_intr_callback(struct si_pub *sih, void *intrsoff_fn, | ||
242 | void *intrsrestore_fn, | ||
243 | void *intrsenabled_fn, void *intr_arg); | ||
244 | extern void ai_deregister_intr_callback(struct si_pub *sih); | ||
245 | extern void ai_clkctl_init(struct si_pub *sih); | 241 | extern void ai_clkctl_init(struct si_pub *sih); |
246 | extern u16 ai_clkctl_fast_pwrup_delay(struct si_pub *sih); | 242 | extern u16 ai_clkctl_fast_pwrup_delay(struct si_pub *sih); |
247 | extern bool ai_clkctl_cc(struct si_pub *sih, uint mode); | 243 | extern bool ai_clkctl_cc(struct si_pub *sih, uint mode); |
diff --git a/drivers/net/wireless/brcm80211/brcmsmac/main.c b/drivers/net/wireless/brcm80211/brcmsmac/main.c index d974809fafc..1c75e2f52d2 100644 --- a/drivers/net/wireless/brcm80211/brcmsmac/main.c +++ b/drivers/net/wireless/brcm80211/brcmsmac/main.c | |||
@@ -2370,27 +2370,6 @@ void brcms_c_intrson(struct brcms_c_info *wlc) | |||
2370 | bcma_write32(wlc_hw->d11core, D11REGOFFS(macintmask), wlc->macintmask); | 2370 | bcma_write32(wlc_hw->d11core, D11REGOFFS(macintmask), wlc->macintmask); |
2371 | } | 2371 | } |
2372 | 2372 | ||
2373 | /* | ||
2374 | * callback for siutils.c, which has only wlc handler, no wl they both check | ||
2375 | * up, not only because there is no need to off/restore d11 interrupt but also | ||
2376 | * because per-port code may require sync with valid interrupt. | ||
2377 | */ | ||
2378 | static u32 brcms_c_wlintrsoff(struct brcms_c_info *wlc) | ||
2379 | { | ||
2380 | if (!wlc->hw->up) | ||
2381 | return 0; | ||
2382 | |||
2383 | return brcms_intrsoff(wlc->wl); | ||
2384 | } | ||
2385 | |||
2386 | static void brcms_c_wlintrsrestore(struct brcms_c_info *wlc, u32 macintmask) | ||
2387 | { | ||
2388 | if (!wlc->hw->up) | ||
2389 | return; | ||
2390 | |||
2391 | brcms_intrsrestore(wlc->wl, macintmask); | ||
2392 | } | ||
2393 | |||
2394 | u32 brcms_c_intrsoff(struct brcms_c_info *wlc) | 2373 | u32 brcms_c_intrsoff(struct brcms_c_info *wlc) |
2395 | { | 2374 | { |
2396 | struct brcms_hardware *wlc_hw = wlc->hw; | 2375 | struct brcms_hardware *wlc_hw = wlc->hw; |
@@ -4712,10 +4691,6 @@ static int brcms_b_attach(struct brcms_c_info *wlc, struct bcma_device *core, | |||
4712 | /* Match driver "down" state */ | 4691 | /* Match driver "down" state */ |
4713 | ai_pci_down(wlc_hw->sih); | 4692 | ai_pci_down(wlc_hw->sih); |
4714 | 4693 | ||
4715 | /* register sb interrupt callback functions */ | ||
4716 | ai_register_intr_callback(wlc_hw->sih, (void *)brcms_c_wlintrsoff, | ||
4717 | (void *)brcms_c_wlintrsrestore, NULL, wlc); | ||
4718 | |||
4719 | /* turn off pll and xtal to match driver "down" state */ | 4694 | /* turn off pll and xtal to match driver "down" state */ |
4720 | brcms_b_xtal(wlc_hw, OFF); | 4695 | brcms_b_xtal(wlc_hw, OFF); |
4721 | 4696 | ||
@@ -4986,7 +4961,6 @@ static int brcms_b_detach(struct brcms_c_info *wlc) | |||
4986 | * and per-port interrupt object may has been freed. this must | 4961 | * and per-port interrupt object may has been freed. this must |
4987 | * be done before sb core switch | 4962 | * be done before sb core switch |
4988 | */ | 4963 | */ |
4989 | ai_deregister_intr_callback(wlc_hw->sih); | ||
4990 | ai_pci_sleep(wlc_hw->sih); | 4964 | ai_pci_sleep(wlc_hw->sih); |
4991 | } | 4965 | } |
4992 | 4966 | ||