static u8 wlc_local_constraint_qdbm(struct wlc_info *wlc);
/* send and receive */
-static struct wlc_txq_info *wlc_txq_alloc(struct wlc_info *wlc,
- struct osl_info *osh);
-static void wlc_txq_free(struct wlc_info *wlc, struct osl_info *osh,
+static struct wlc_txq_info *wlc_txq_alloc(struct wlc_info *wlc);
+static void wlc_txq_free(struct wlc_info *wlc,
struct wlc_txq_info *qi);
static void wlc_txflowcontrol_signal(struct wlc_info *wlc,
struct wlc_txq_info *qi,
static void wlc_compute_mimo_plcp(ratespec_t rate, uint length, u8 *plcp);
static u16 wlc_compute_frame_dur(struct wlc_info *wlc, ratespec_t rate,
u8 preamble_type, uint next_frag_len);
-static void wlc_recvctl(struct wlc_info *wlc, struct osl_info *osh,
+static void wlc_recvctl(struct wlc_info *wlc,
d11rxhdr_t *rxh, struct sk_buff *p);
static uint wlc_calc_frame_len(struct wlc_info *wlc, ratespec_t rate,
u8 preamble_type, uint dur);
{
d11regs_t *regs = wlc->regs;
u32 v32;
- struct osl_info *osh;
WL_TRACE("wl%d: %s\n", WLCWLUNIT(wlc), __func__);
- osh = wlc->osh;
-
W_REG(®s->objaddr, (OBJADDR_RCMTA_SEL | (idx * 2)));
(void)R_REG(®s->objaddr);
v32 = R_REG(®s->objdata);
*/
/* allocate our initial queue */
- qi = wlc_txq_alloc(wlc, osh);
+ qi = wlc_txq_alloc(wlc);
if (qi == NULL) {
WL_ERROR("wl%d: %s: failed to malloc tx queue\n",
unit, __func__);
/* Detach from iovar manager */
wlc_module_unregister(wlc->pub, "wlc_iovars", wlc);
- while (wlc->tx_queues != NULL) {
- wlc_txq_free(wlc, wlc->osh, wlc->tx_queues);
- }
+ while (wlc->tx_queues != NULL)
+ wlc_txq_free(wlc, wlc->tx_queues);
/*
* consistency check: wlc_module_register/wlc_module_unregister calls
uint band;
rw_reg_t *r;
wlc_bsscfg_t *bsscfg;
- struct osl_info *osh;
wlc_bss_info_t *current_bss;
/* update bsscfg pointer */
bcmerror = 0;
regs = wlc->regs;
- osh = wlc->osh;
/* A few commands don't need any arguments; all the others do. */
switch (cmd) {
struct ieee80211_hdr *h;
d11txh_t *txh;
u8 *plcp, plcp_fallback[D11_PHY_HDR_LEN];
- struct osl_info *osh;
int len, phylen, rts_phylen;
u16 frameid, mch, phyctl, xfts, mainrates;
u16 seq = 0, mcl = 0, status = 0;
ASSERT(queue < NFIFO);
- osh = wlc->osh;
-
/* locate 802.11 MAC header */
h = (struct ieee80211_hdr *)(p->data);
qos = ieee80211_is_data_qos(h->frame_control);
d11txh_t *txh;
struct scb *scb = NULL;
bool free_pdu;
- struct osl_info *osh;
int tx_rts, tx_frame_count, tx_rts_count;
uint totlen, supr_status;
bool lastframe;
return false;
}
- osh = wlc->osh;
queue = txs->frameid & TXFID_QUEUE_MASK;
ASSERT(queue < NFIFO);
if (queue >= NFIFO) {
fatal:
ASSERT(0);
if (p)
- pkt_buf_free_skb(osh, p, true);
+ pkt_buf_free_skb(wlc->osh, p, true);
return true;
}
static void
-wlc_recvctl(struct wlc_info *wlc, struct osl_info *osh, d11rxhdr_t *rxh,
- struct sk_buff *p)
+wlc_recvctl(struct wlc_info *wlc, d11rxhdr_t *rxh, struct sk_buff *p)
{
int len_mpdu;
struct ieee80211_rx_status rx_status;
ieee80211_rx_irqsafe(wlc->pub->ieee_hw, p);
wlc->pub->_cnt->ieee_rx++;
- osh->pktalloced--;
+ wlc->osh->pktalloced--;
return;
}
{
d11rxhdr_t *rxh;
struct ieee80211_hdr *h;
- struct osl_info *osh;
uint len;
bool is_amsdu;
WL_TRACE("wl%d: wlc_recv\n", wlc->pub->unit);
- osh = wlc->osh;
-
/* frame starts with rxhdr */
rxh = (d11rxhdr_t *) (p->data);
goto toss;
}
- wlc_recvctl(wlc, osh, rxh, p);
+ wlc_recvctl(wlc, rxh, p);
return;
toss:
- pkt_buf_free_skb(osh, p, false);
+ pkt_buf_free_skb(wlc->osh, p, false);
}
/* calculate frame duration for Mixed-mode L-SIG spoofing, return
u16 bcn[BCN_TMPL_LEN / 2];
u32 both_valid = MCMD_BCN0VLD | MCMD_BCN1VLD;
d11regs_t *regs = wlc->regs;
- struct osl_info *osh = NULL;
-
- osh = wlc->osh;
/* Check if both templates are in use, if so sched. an interrupt
* that will call back into this routine
/* prepares pdu for transmission. returns BCM error codes */
int wlc_prep_pdu(struct wlc_info *wlc, struct sk_buff *pdu, uint *fifop)
{
- struct osl_info *osh;
uint fifo;
d11txh_t *txh;
struct ieee80211_hdr *h;
struct scb *scb;
- osh = wlc->osh;
-
ASSERT(pdu);
txh = (d11txh_t *) (pdu->data);
ASSERT(txh);
}
}
-static struct wlc_txq_info *wlc_txq_alloc(struct wlc_info *wlc,
- struct osl_info *osh)
+static struct wlc_txq_info *wlc_txq_alloc(struct wlc_info *wlc)
{
struct wlc_txq_info *qi, *p;
return qi;
}
-static void wlc_txq_free(struct wlc_info *wlc, struct osl_info *osh,
- struct wlc_txq_info *qi)
+static void wlc_txq_free(struct wlc_info *wlc, struct wlc_txq_info *qi)
{
struct wlc_txq_info *p;