[PATCH 03/13] staging: brcm80211: remove osl_info usage in wlc_main and wl_mac80211

Arend van Spriel arend at broadcom.com
Wed Mar 2 20:18:39 UTC 2011


Getting rid of osl concept taking small steps. This commit removes
it from wlc_main.c and wl_mac80211.c.

Reviewed-by: Brett Rudley <brudley at broadcom.com>
Reviewed-by: Henry Ptasinski <henryp at broadcom.com>
Reviewed-by: Roland Vossen <rvossen at broadcom.com>
Signed-off-by: Arend van Spriel <arend at broadcom.com>
---
 drivers/staging/brcm80211/brcmsmac/wl_mac80211.c |    5 +--
 drivers/staging/brcm80211/brcmsmac/wlc_main.c    |   50 ++++++----------------
 2 files changed, 14 insertions(+), 41 deletions(-)

diff --git a/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c b/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c
index 6ce5172..2b2d1c2 100644
--- a/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c
+++ b/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c
@@ -1350,7 +1350,6 @@ module_exit(wl_module_exit);
 static void wl_free(struct wl_info *wl)
 {
 	struct wl_timer *t, *next;
-	struct osl_info *osh;
 
 	ASSERT(wl);
 	/* free ucode data */
@@ -1389,8 +1388,6 @@ static void wl_free(struct wl_info *wl)
 		kfree(t);
 	}
 
-	osh = wl->osh;
-
 	/*
 	 * unregister_netdev() calls get_stats() which may read chip registers
 	 * so we cannot unmap the chip registers until after calling unregister_netdev() .
@@ -1402,7 +1399,7 @@ static void wl_free(struct wl_info *wl)
 	wl->regsva = NULL;
 
 
-	osl_detach(osh);
+	osl_detach(wl->osh);
 }
 
 /*
diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_main.c b/drivers/staging/brcm80211/brcmsmac/wlc_main.c
index eae6bd6..3a53d5b 100644
--- a/drivers/staging/brcm80211/brcmsmac/wlc_main.c
+++ b/drivers/staging/brcm80211/brcmsmac/wlc_main.c
@@ -267,9 +267,8 @@ static int wlc_iovar_rangecheck(struct wlc_info *wlc, u32 val,
 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,
@@ -282,7 +281,7 @@ static void wlc_compute_ofdm_plcp(ratespec_t rate, uint length, u8 *plcp);
 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);
@@ -327,12 +326,9 @@ void wlc_get_rcmta(struct wlc_info *wlc, int idx, u8 *addr)
 {
 	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(&regs->objaddr, (OBJADDR_RCMTA_SEL | (idx * 2)));
 	(void)R_REG(&regs->objaddr);
 	v32 = R_REG(&regs->objdata);
@@ -1935,7 +1931,7 @@ void *wlc_attach(void *wl, u16 vendor, u16 device, uint unit, bool piomode,
 	 */
 
 	/* 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__);
@@ -2189,9 +2185,8 @@ uint wlc_detach(struct wlc_info *wlc)
 	/* 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
@@ -3081,7 +3076,6 @@ _wlc_ioctl(struct wlc_info *wlc, int cmd, void *arg, int len,
 	uint band;
 	rw_reg_t *r;
 	wlc_bsscfg_t *bsscfg;
-	struct osl_info *osh;
 	wlc_bss_info_t *current_bss;
 
 	/* update bsscfg pointer */
@@ -3121,7 +3115,6 @@ _wlc_ioctl(struct wlc_info *wlc, int cmd, void *arg, int len,
 
 	bcmerror = 0;
 	regs = wlc->regs;
-	osh = wlc->osh;
 
 	/* A few commands don't need any arguments; all the others do. */
 	switch (cmd) {
@@ -5729,7 +5722,6 @@ wlc_d11hdrs_mac80211(struct wlc_info *wlc, struct ieee80211_hw *hw,
 	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;
@@ -5764,8 +5756,6 @@ wlc_d11hdrs_mac80211(struct wlc_info *wlc, struct ieee80211_hw *hw,
 
 	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);
@@ -6574,7 +6564,6 @@ wlc_dotxstatus(struct wlc_info *wlc, tx_status_t *txs, u32 frm_tx2)
 	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;
@@ -6601,7 +6590,6 @@ wlc_dotxstatus(struct wlc_info *wlc, tx_status_t *txs, u32 frm_tx2)
 		return false;
 	}
 
-	osh = wlc->osh;
 	queue = txs->frameid & TXFID_QUEUE_MASK;
 	ASSERT(queue < NFIFO);
 	if (queue >= NFIFO) {
@@ -6724,7 +6712,7 @@ wlc_dotxstatus(struct wlc_info *wlc, tx_status_t *txs, u32 frm_tx2)
  fatal:
 	ASSERT(0);
 	if (p)
-		pkt_buf_free_skb(osh, p, true);
+		pkt_buf_free_skb(wlc->osh, p, true);
 
 	return true;
 
@@ -6961,8 +6949,7 @@ prep_mac80211_status(struct wlc_info *wlc, d11rxhdr_t *rxh, struct sk_buff *p,
 }
 
 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;
@@ -6992,7 +6979,7 @@ wlc_recvctl(struct wlc_info *wlc, struct osl_info *osh, d11rxhdr_t *rxh,
 	ieee80211_rx_irqsafe(wlc->pub->ieee_hw, p);
 
 	wlc->pub->_cnt->ieee_rx++;
-	osh->pktalloced--;
+	wlc->osh->pktalloced--;
 	return;
 }
 
@@ -7022,14 +7009,11 @@ void BCMFASTPATH wlc_recv(struct wlc_info *wlc, struct sk_buff *p)
 {
 	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);
 
@@ -7108,11 +7092,11 @@ void BCMFASTPATH wlc_recv(struct wlc_info *wlc, struct sk_buff *p)
 		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
@@ -7739,9 +7723,6 @@ void wlc_bss_update_beacon(struct wlc_info *wlc, wlc_bsscfg_t *cfg)
 		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
@@ -7861,14 +7842,11 @@ wlc_bss_update_probe_resp(struct wlc_info *wlc, wlc_bsscfg_t *cfg, bool suspend)
 /* 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);
@@ -8439,8 +8417,7 @@ wlc_txflowcontrol_signal(struct wlc_info *wlc, struct wlc_txq_info *qi, bool on,
 	}
 }
 
-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;
 
@@ -8469,8 +8446,7 @@ static struct wlc_txq_info *wlc_txq_alloc(struct wlc_info *wlc,
 	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;
 
-- 
1.7.1





More information about the devel mailing list