Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 277627
b: refs/heads/master
c: 2823700
h: refs/heads/master
i:
  277625: fe29d91
  277623: e3310e1
v: v3
  • Loading branch information
Roland Vossen authored and John W. Linville committed Nov 8, 2011
1 parent 8435cf0 commit fc07798
Show file tree
Hide file tree
Showing 6 changed files with 10 additions and 46 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 4412953061def953a6458f9f1b277e442f83c919
refs/heads/master: 28237002e726bfaeb3ab682ec5574d697a15e00d
3 changes: 1 addition & 2 deletions trunk/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
Original file line number Diff line number Diff line change
Expand Up @@ -1078,8 +1078,7 @@ static struct brcms_info *brcms_attach(u16 vendor, u16 device,

wl->pub->ieee_hw = hw;

/* disable mpc */
brcms_c_set_radio_mpc(wl->wlc);
brcms_c_set_radio_mon(wl->wlc);

/* register our interrupt handler */
if (request_irq(irq, brcms_isr, IRQF_SHARED, KBUILD_MODNAME, wl)) {
Expand Down
45 changes: 7 additions & 38 deletions trunk/drivers/net/wireless/brcm80211/brcmsmac/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -43,16 +43,6 @@
/* radio monitor timer, in unit of ms */
#define TIMER_INTERVAL_RADIOCHK 800

/* Max MPC timeout, in unit of watchdog */
#ifndef BRCMS_MPC_MAX_DELAYCNT
#define BRCMS_MPC_MAX_DELAYCNT 10
#endif

/* Min MPC timeout, in unit of watchdog */
#define BRCMS_MPC_MIN_DELAYCNT 1
/* MPC count threshold level */
#define BRCMS_MPC_THRESHOLD 3

/* beacon interval, in unit of 1024TU */
#define BEACON_INTERVAL_DEFAULT 100

Expand Down Expand Up @@ -4330,17 +4320,13 @@ static void brcms_b_watchdog(void *arg)
wlc_phy_watchdog(wlc_hw->band->pi);
}

static void brcms_c_radio_mpc_upd(struct brcms_c_info *wlc)
static void brcms_c_radio_mon_upd(struct brcms_c_info *wlc)
{
/*
* Clear the WL_RADIO_MPC_DISABLE bit when mpc feature is disabled
* in case the WL_RADIO_MPC_DISABLE bit was set. Stop the radio
* monitor also when WL_RADIO_MPC_DISABLE is the only reason that
* the radio is going down.
* Stop the radio monitor when the radio is going down.
*/
if (!wlc->pub->radio_disabled)
return;
mboolclr(wlc->pub->radio_disabled, WL_RADIO_MPC_DISABLE);
brcms_c_radio_upd(wlc);
if (!wlc->pub->radio_disabled)
brcms_c_radio_monitor_stop(wlc);
Expand All @@ -4366,17 +4352,8 @@ static void brcms_c_watchdog(void *arg)
/* increment second count */
wlc->pub->now++;

/* delay radio disable */
if (wlc->mpc_delay_off) {
if (--wlc->mpc_delay_off == 0) {
mboolset(wlc->pub->radio_disabled,
WL_RADIO_MPC_DISABLE);
}
}

/* mpc sync */
brcms_c_radio_mpc_upd(wlc);
/* radio sync: sw/hw/mpc --> radio_disable/radio_enable */
brcms_c_radio_mon_upd(wlc);
/* radio sync: sw/hw --> radio_disable/radio_enable */
brcms_c_radio_hwdisable_upd(wlc);
brcms_c_radio_upd(wlc);
/* if radio is disable, driver may be down, quit here */
Expand Down Expand Up @@ -4482,9 +4459,6 @@ static void brcms_c_info_init(struct brcms_c_info *wlc, int unit)
/* WME QoS mode is Auto by default */
wlc->pub->_ampdu = AMPDU_AGG_HOST;
wlc->pub->bcmerror = 0;

/* initialize mpc delay */
wlc->mpc_delay_off = BRCMS_MPC_MIN_DELAYCNT;
}

static uint brcms_c_attach_module(struct brcms_c_info *wlc)
Expand Down Expand Up @@ -5455,7 +5429,6 @@ uint brcms_c_down(struct brcms_c_info *wlc)
if (!wlc->pub->up)
return callbacks;

/* in between, mpc could try to bring down again.. */
wlc->going_down = true;

callbacks += brcms_b_bmac_down_prep(wlc->hw);
Expand Down Expand Up @@ -8131,9 +8104,9 @@ int brcms_c_get_tx_power(struct brcms_c_info *wlc)
return (int)(qdbm / BRCMS_TXPWR_DB_FACTOR);
}

void brcms_c_set_radio_mpc(struct brcms_c_info *wlc)
void brcms_c_set_radio_mon(struct brcms_c_info *wlc)
{
brcms_c_radio_mpc_upd(wlc);
brcms_c_radio_mon_upd(wlc);
}

/* Process received frames */
Expand Down Expand Up @@ -8442,9 +8415,6 @@ void brcms_c_init(struct brcms_c_info *wlc)
/* enable the RF Disable Delay timer */
W_REG(&wlc->regs->rfdisabledly, RFDISABLE_DEFAULT);

/* initialize mpc delay */
wlc->mpc_delay_off = BRCMS_MPC_MIN_DELAYCNT;

/*
* Initialize WME parameters; if they haven't been set by some other
* mechanism (IOVar, etc) then read them from the hardware.
Expand Down Expand Up @@ -8630,8 +8600,7 @@ brcms_c_attach(struct brcms_info *wl, u16 vendor, u16 device, uint unit,
brcms_c_ht_update_sgi_rx(wlc, 0);
}

/* initialize radio_mpc_disable according to wlc->mpc */
brcms_c_radio_mpc_upd(wlc);
brcms_c_radio_mon_upd(wlc);
brcms_b_antsel_set(wlc->hw, wlc->asi->antsel_avail);

if (perr)
Expand Down
3 changes: 0 additions & 3 deletions trunk/drivers/net/wireless/brcm80211/brcmsmac/main.h
Original file line number Diff line number Diff line change
Expand Up @@ -427,7 +427,6 @@ struct brcms_txq_info {
* bandinit_pending: track band init in auto band.
* radio_monitor: radio timer is running.
* going_down: down path intermediate variable.
* mpc_delay_off: delay radio disable by # of watchdog cnt.
* wdtimer: timer for watchdog routine.
* radio_timer: timer for hw radio button monitor routine.
* monitor: monitor (MPDU sniffing) mode.
Expand Down Expand Up @@ -518,8 +517,6 @@ struct brcms_c_info {
bool radio_monitor;
bool going_down;

u8 mpc_delay_off;

struct brcms_timer *wdtimer;
struct brcms_timer *radio_timer;

Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/net/wireless/brcm80211/brcmsmac/pub.h
Original file line number Diff line number Diff line change
Expand Up @@ -596,7 +596,7 @@ extern void brcms_c_set_beacon_listen_interval(struct brcms_c_info *wlc,
u8 interval);
extern int brcms_c_set_tx_power(struct brcms_c_info *wlc, int txpwr);
extern int brcms_c_get_tx_power(struct brcms_c_info *wlc);
extern void brcms_c_set_radio_mpc(struct brcms_c_info *wlc);
extern void brcms_c_set_radio_mon(struct brcms_c_info *wlc);
extern bool brcms_c_check_radio_disabled(struct brcms_c_info *wlc);

#endif /* _BRCM_PUB_H_ */
1 change: 0 additions & 1 deletion trunk/drivers/net/wireless/brcm80211/include/defs.h
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,6 @@

#define WL_RADIO_SW_DISABLE (1<<0)
#define WL_RADIO_HW_DISABLE (1<<1)
#define WL_RADIO_MPC_DISABLE (1<<2)
/* some countries don't support any channel */
#define WL_RADIO_COUNTRY_DISABLE (1<<3)

Expand Down

0 comments on commit fc07798

Please sign in to comment.