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>
This commit is contained in:
Родитель
a232c8a12a
Коммит
937642f55e
|
@ -818,33 +818,6 @@ void ai_detach(struct si_pub *sih)
|
||||||
kfree(sii);
|
kfree(sii);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* register driver interrupt disabling and restoring callback functions */
|
|
||||||
void
|
|
||||||
ai_register_intr_callback(struct si_pub *sih, void *intrsoff_fn,
|
|
||||||
void *intrsrestore_fn,
|
|
||||||
void *intrsenabled_fn, void *intr_arg)
|
|
||||||
{
|
|
||||||
struct si_info *sii;
|
|
||||||
|
|
||||||
sii = (struct si_info *)sih;
|
|
||||||
sii->intr_arg = intr_arg;
|
|
||||||
sii->intrsoff_fn = (u32 (*)(void *)) intrsoff_fn;
|
|
||||||
sii->intrsrestore_fn = (void (*) (void *, u32)) intrsrestore_fn;
|
|
||||||
sii->intrsenabled_fn = (bool (*)(void *)) intrsenabled_fn;
|
|
||||||
/* save current core id. when this function called, the current core
|
|
||||||
* must be the core which provides driver functions(il, et, wl, etc.)
|
|
||||||
*/
|
|
||||||
sii->dev_coreid = sii->coreid[sii->curidx];
|
|
||||||
}
|
|
||||||
|
|
||||||
void ai_deregister_intr_callback(struct si_pub *sih)
|
|
||||||
{
|
|
||||||
struct si_info *sii;
|
|
||||||
|
|
||||||
sii = (struct si_info *)sih;
|
|
||||||
sii->intrsoff_fn = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint ai_coreid(struct si_pub *sih)
|
uint ai_coreid(struct si_pub *sih)
|
||||||
{
|
{
|
||||||
struct si_info *sii;
|
struct si_info *sii;
|
||||||
|
|
|
@ -238,10 +238,6 @@ extern void __iomem *ai_switch_core(struct si_pub *sih, uint coreid,
|
||||||
uint *origidx, uint *intr_val);
|
uint *origidx, uint *intr_val);
|
||||||
extern void ai_restore_core(struct si_pub *sih, uint coreid, uint intr_val);
|
extern void ai_restore_core(struct si_pub *sih, uint coreid, uint intr_val);
|
||||||
extern void ai_pci_setup(struct si_pub *sih, uint coremask);
|
extern void ai_pci_setup(struct si_pub *sih, uint coremask);
|
||||||
extern void ai_register_intr_callback(struct si_pub *sih, void *intrsoff_fn,
|
|
||||||
void *intrsrestore_fn,
|
|
||||||
void *intrsenabled_fn, void *intr_arg);
|
|
||||||
extern void ai_deregister_intr_callback(struct si_pub *sih);
|
|
||||||
extern void ai_clkctl_init(struct si_pub *sih);
|
extern void ai_clkctl_init(struct si_pub *sih);
|
||||||
extern u16 ai_clkctl_fast_pwrup_delay(struct si_pub *sih);
|
extern u16 ai_clkctl_fast_pwrup_delay(struct si_pub *sih);
|
||||||
extern bool ai_clkctl_cc(struct si_pub *sih, uint mode);
|
extern bool ai_clkctl_cc(struct si_pub *sih, uint mode);
|
||||||
|
|
|
@ -2370,27 +2370,6 @@ void brcms_c_intrson(struct brcms_c_info *wlc)
|
||||||
bcma_write32(wlc_hw->d11core, D11REGOFFS(macintmask), wlc->macintmask);
|
bcma_write32(wlc_hw->d11core, D11REGOFFS(macintmask), wlc->macintmask);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* callback for siutils.c, which has only wlc handler, no wl they both check
|
|
||||||
* up, not only because there is no need to off/restore d11 interrupt but also
|
|
||||||
* because per-port code may require sync with valid interrupt.
|
|
||||||
*/
|
|
||||||
static u32 brcms_c_wlintrsoff(struct brcms_c_info *wlc)
|
|
||||||
{
|
|
||||||
if (!wlc->hw->up)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
return brcms_intrsoff(wlc->wl);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void brcms_c_wlintrsrestore(struct brcms_c_info *wlc, u32 macintmask)
|
|
||||||
{
|
|
||||||
if (!wlc->hw->up)
|
|
||||||
return;
|
|
||||||
|
|
||||||
brcms_intrsrestore(wlc->wl, macintmask);
|
|
||||||
}
|
|
||||||
|
|
||||||
u32 brcms_c_intrsoff(struct brcms_c_info *wlc)
|
u32 brcms_c_intrsoff(struct brcms_c_info *wlc)
|
||||||
{
|
{
|
||||||
struct brcms_hardware *wlc_hw = wlc->hw;
|
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,
|
||||||
/* Match driver "down" state */
|
/* Match driver "down" state */
|
||||||
ai_pci_down(wlc_hw->sih);
|
ai_pci_down(wlc_hw->sih);
|
||||||
|
|
||||||
/* register sb interrupt callback functions */
|
|
||||||
ai_register_intr_callback(wlc_hw->sih, (void *)brcms_c_wlintrsoff,
|
|
||||||
(void *)brcms_c_wlintrsrestore, NULL, wlc);
|
|
||||||
|
|
||||||
/* turn off pll and xtal to match driver "down" state */
|
/* turn off pll and xtal to match driver "down" state */
|
||||||
brcms_b_xtal(wlc_hw, OFF);
|
brcms_b_xtal(wlc_hw, OFF);
|
||||||
|
|
||||||
|
@ -4986,7 +4961,6 @@ static int brcms_b_detach(struct brcms_c_info *wlc)
|
||||||
* and per-port interrupt object may has been freed. this must
|
* and per-port interrupt object may has been freed. this must
|
||||||
* be done before sb core switch
|
* be done before sb core switch
|
||||||
*/
|
*/
|
||||||
ai_deregister_intr_callback(wlc_hw->sih);
|
|
||||||
ai_pci_sleep(wlc_hw->sih);
|
ai_pci_sleep(wlc_hw->sih);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче