[PATCH 04/21] staging: brcm80211: remove unused module from softmac driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The softmac driver contained an event queue mechanism which
was properly initialized and queried but no event are ever
posted to it. Therefor the module has been removed.

Reviewed-by: Roland Vossen <rvossen@xxxxxxxxxxxx>
Reviewed-by: Brett Rudley <brudley@xxxxxxxxxxxx>
Signed-off-by: Arend van Spriel <arend@xxxxxxxxxxxx>
---
 drivers/staging/brcm80211/brcmsmac/Makefile       |    1 -
 drivers/staging/brcm80211/brcmsmac/wl_mac80211.c  |   29 ---
 drivers/staging/brcm80211/brcmsmac/wlc_alloc.c    |    1 -
 drivers/staging/brcm80211/brcmsmac/wlc_ampdu.c    |    1 -
 drivers/staging/brcm80211/brcmsmac/wlc_antsel.c   |    1 -
 drivers/staging/brcm80211/brcmsmac/wlc_bmac.c     |    1 -
 drivers/staging/brcm80211/brcmsmac/wlc_channel.c  |    1 -
 drivers/staging/brcm80211/brcmsmac/wlc_event.c    |  203 ---------------------
 drivers/staging/brcm80211/brcmsmac/wlc_event.h    |   50 -----
 drivers/staging/brcm80211/brcmsmac/wlc_mac80211.c |   40 ----
 drivers/staging/brcm80211/brcmsmac/wlc_mac80211.h |    3 -
 drivers/staging/brcm80211/brcmsmac/wlc_phy_shim.c |    1 -
 drivers/staging/brcm80211/brcmsmac/wlc_stf.c      |    1 -
 13 files changed, 0 insertions(+), 333 deletions(-)
 delete mode 100644 drivers/staging/brcm80211/brcmsmac/wlc_event.c
 delete mode 100644 drivers/staging/brcm80211/brcmsmac/wlc_event.h

diff --git a/drivers/staging/brcm80211/brcmsmac/Makefile b/drivers/staging/brcm80211/brcmsmac/Makefile
index 5da39be..315f1ae 100644
--- a/drivers/staging/brcm80211/brcmsmac/Makefile
+++ b/drivers/staging/brcm80211/brcmsmac/Makefile
@@ -36,7 +36,6 @@ BRCMSMAC_OFILES := \
 	wlc_antsel.o \
 	wlc_bmac.o \
 	wlc_channel.o \
-	wlc_event.o \
 	wlc_mac80211.o \
 	wlc_phy_shim.o \
 	wlc_rate.o \
diff --git a/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c b/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c
index 7645c6c..10ae5e9 100644
--- a/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c
+++ b/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c
@@ -1589,35 +1589,6 @@ static void BCMFASTPATH wl_dpc(unsigned long data)
 	WL_UNLOCK(wl);
 }
 
-static void wl_link_up(struct wl_info *wl, char *ifname)
-{
-	WL_NONE("wl%d: link up (%s)\n", wl->pub->unit, ifname);
-}
-
-static void wl_link_down(struct wl_info *wl, char *ifname)
-{
-	WL_NONE("wl%d: link down (%s)\n", wl->pub->unit, ifname);
-}
-
-/*
- * precondition: perimeter lock has been acquired
- */
-void wl_event(struct wl_info *wl, char *ifname, wlc_event_t *e)
-{
-
-	switch (e->event.event_type) {
-	case WLC_E_LINK:
-	case WLC_E_NDIS_LINK:
-		if (e->event.flags & WLC_EVENT_MSG_LINK)
-			wl_link_up(wl, ifname);
-		else
-			wl_link_down(wl, ifname);
-		break;
-	case WLC_E_RADIO:
-		break;
-	}
-}
-
 /*
  * is called by the kernel from software irq context
  */
diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_alloc.c b/drivers/staging/brcm80211/brcmsmac/wlc_alloc.c
index 2db96c1..064a3ff 100644
--- a/drivers/staging/brcm80211/brcmsmac/wlc_alloc.c
+++ b/drivers/staging/brcm80211/brcmsmac/wlc_alloc.c
@@ -27,7 +27,6 @@
 #include <wlc_key.h>
 #include <sbhndpio.h>
 #include <sbhnddma.h>
-#include <wlc_event.h>
 #include <wlc_mac80211.h>
 #include <wlc_alloc.h>
 #include <wl_dbg.h>
diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_ampdu.c b/drivers/staging/brcm80211/brcmsmac/wlc_ampdu.c
index 4f9d4de..699890b 100644
--- a/drivers/staging/brcm80211/brcmsmac/wlc_ampdu.c
+++ b/drivers/staging/brcm80211/brcmsmac/wlc_ampdu.c
@@ -27,7 +27,6 @@
 #include <wlc_rate.h>
 #include <wlc_pub.h>
 #include <wlc_key.h>
-#include <wlc_event.h>
 #include <wlc_mac80211.h>
 #include <wlc_phy_hal.h>
 #include <wlc_antsel.h>
diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_antsel.c b/drivers/staging/brcm80211/brcmsmac/wlc_antsel.c
index 402ddf8..da19a08 100644
--- a/drivers/staging/brcm80211/brcmsmac/wlc_antsel.c
+++ b/drivers/staging/brcm80211/brcmsmac/wlc_antsel.c
@@ -35,7 +35,6 @@
 #include <wlc_key.h>
 #include <wlc_pub.h>
 #include <wl_dbg.h>
-#include <wlc_event.h>
 #include <wlc_mac80211.h>
 #include <wlc_bmac.h>
 #include <wlc_phy_hal.h>
diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_bmac.c b/drivers/staging/brcm80211/brcmsmac/wlc_bmac.c
index 12bfb06..b40ca62 100644
--- a/drivers/staging/brcm80211/brcmsmac/wlc_bmac.c
+++ b/drivers/staging/brcm80211/brcmsmac/wlc_bmac.c
@@ -48,7 +48,6 @@
  * At some point we may be able to skip the include of wlc.h and instead just
  * define a stub wlc_info and band struct to allow rpc calls to get the rpc handle.
  */
-#include <wlc_event.h>
 #include <wlc_mac80211.h>
 #include <wlc_bmac.h>
 #include <wlc_phy_shim.h>
diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_channel.c b/drivers/staging/brcm80211/brcmsmac/wlc_channel.c
index 06b31a0..ea23728 100644
--- a/drivers/staging/brcm80211/brcmsmac/wlc_channel.c
+++ b/drivers/staging/brcm80211/brcmsmac/wlc_channel.c
@@ -28,7 +28,6 @@
 #include <wlioctl.h>
 #include <wlc_pub.h>
 #include <wlc_key.h>
-#include <wlc_event.h>
 #include <wlc_mac80211.h>
 #include <wlc_bmac.h>
 #include <wlc_stf.h>
diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_event.c b/drivers/staging/brcm80211/brcmsmac/wlc_event.c
deleted file mode 100644
index 7926c41..0000000
--- a/drivers/staging/brcm80211/brcmsmac/wlc_event.c
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * Copyright (c) 2010 Broadcom Corporation
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
- * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
- * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include <linux/kernel.h>
-#include <bcmdefs.h>
-#include <linux/module.h>
-#include <linux/pci.h>
-#include <osl.h>
-#include <bcmutils.h>
-#include <siutils.h>
-#include <sbhndpio.h>
-#include <sbhnddma.h>
-#include <wlioctl.h>
-#include <wlc_cfg.h>
-#include <wlc_pub.h>
-#include <wlc_key.h>
-#include <wl_export.h>
-#include <wlc_event.h>
-
-#include <d11.h>
-#include <wlc_rate.h>
-#include <wlc_mac80211.h>
-#include <wl_dbg.h>
-
-/* Local prototypes */
-static void wlc_timer_cb(void *arg);
-
-/* Private data structures */
-struct wlc_eventq {
-	wlc_event_t *head;
-	wlc_event_t *tail;
-	struct wlc_info *wlc;
-	void *wl;
-	struct wlc_pub *pub;
-	bool tpending;
-	bool workpending;
-	struct wl_timer *timer;
-	wlc_eventq_cb_t cb;
-	u8 event_inds_mask[broken_roundup(WLC_E_LAST, NBBY) / NBBY];
-};
-
-/*
- * Export functions
- */
-wlc_eventq_t *wlc_eventq_attach(struct wlc_pub *pub, struct wlc_info *wlc,
-				void *wl,
-				wlc_eventq_cb_t cb)
-{
-	wlc_eventq_t *eq;
-
-	eq = kzalloc(sizeof(wlc_eventq_t), GFP_ATOMIC);
-	if (eq == NULL)
-		return NULL;
-
-	eq->cb = cb;
-	eq->wlc = wlc;
-	eq->wl = wl;
-	eq->pub = pub;
-
-	eq->timer = wl_init_timer(eq->wl, wlc_timer_cb, eq, "eventq");
-	if (!eq->timer) {
-		WL_ERROR("wl%d: wlc_eventq_attach: timer failed\n",
-			 pub->unit);
-		kfree(eq);
-		return NULL;
-	}
-
-	return eq;
-}
-
-int wlc_eventq_detach(wlc_eventq_t *eq)
-{
-	/* Clean up pending events */
-	wlc_eventq_down(eq);
-
-	if (eq->timer) {
-		if (eq->tpending) {
-			wl_del_timer(eq->wl, eq->timer);
-			eq->tpending = false;
-		}
-		wl_free_timer(eq->wl, eq->timer);
-		eq->timer = NULL;
-	}
-
-	ASSERT(wlc_eventq_avail(eq) == false);
-	kfree(eq);
-	return 0;
-}
-
-int wlc_eventq_down(wlc_eventq_t *eq)
-{
-	int callbacks = 0;
-	if (eq->tpending && !eq->workpending) {
-		if (!wl_del_timer(eq->wl, eq->timer))
-			callbacks++;
-
-		ASSERT(wlc_eventq_avail(eq) == true);
-		ASSERT(eq->workpending == false);
-		eq->workpending = true;
-		if (eq->cb)
-			eq->cb(eq->wlc);
-
-		ASSERT(eq->workpending == true);
-		eq->workpending = false;
-		eq->tpending = false;
-	} else {
-		ASSERT(eq->workpending || wlc_eventq_avail(eq) == false);
-	}
-	return callbacks;
-}
-
-wlc_event_t *wlc_event_alloc(wlc_eventq_t *eq)
-{
-	wlc_event_t *e;
-
-	e = kzalloc(sizeof(wlc_event_t), GFP_ATOMIC);
-
-	if (e == NULL)
-		return NULL;
-
-	return e;
-}
-
-void wlc_event_free(wlc_eventq_t *eq, wlc_event_t *e)
-{
-	ASSERT(e->data == NULL);
-	ASSERT(e->next == NULL);
-	kfree(e);
-}
-
-void wlc_eventq_enq(wlc_eventq_t *eq, wlc_event_t *e)
-{
-	ASSERT(e->next == NULL);
-	e->next = NULL;
-
-	if (eq->tail) {
-		eq->tail->next = e;
-		eq->tail = e;
-	} else
-		eq->head = eq->tail = e;
-
-	if (!eq->tpending) {
-		eq->tpending = true;
-		/* Use a zero-delay timer to trigger
-		 * delayed processing of the event.
-		 */
-		wl_add_timer(eq->wl, eq->timer, 0, 0);
-	}
-}
-
-wlc_event_t *wlc_eventq_deq(wlc_eventq_t *eq)
-{
-	wlc_event_t *e;
-
-	e = eq->head;
-	if (e) {
-		eq->head = e->next;
-		e->next = NULL;
-
-		if (eq->head == NULL)
-			eq->tail = eq->head;
-	}
-	return e;
-}
-
-bool wlc_eventq_avail(wlc_eventq_t *eq)
-{
-	return (eq->head != NULL);
-}
-
-/*
- * Local Functions
- */
-static void wlc_timer_cb(void *arg)
-{
-	struct wlc_eventq *eq = (struct wlc_eventq *)arg;
-
-	ASSERT(eq->tpending == true);
-	ASSERT(wlc_eventq_avail(eq) == true);
-	ASSERT(eq->workpending == false);
-	eq->workpending = true;
-
-	if (eq->cb)
-		eq->cb(eq->wlc);
-
-	ASSERT(wlc_eventq_avail(eq) == false);
-	ASSERT(eq->tpending == true);
-	eq->workpending = false;
-	eq->tpending = false;
-}
diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_event.h b/drivers/staging/brcm80211/brcmsmac/wlc_event.h
deleted file mode 100644
index 8151ba5..0000000
--- a/drivers/staging/brcm80211/brcmsmac/wlc_event.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 2010 Broadcom Corporation
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
- * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
- * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifndef _WLC_EVENT_H_
-#define _WLC_EVENT_H_
-
-typedef struct wlc_eventq wlc_eventq_t;
-
-typedef void (*wlc_eventq_cb_t) (void *arg);
-
-extern wlc_eventq_t *wlc_eventq_attach(struct wlc_pub *pub,
-				       struct wlc_info *wlc,
-				       void *wl, wlc_eventq_cb_t cb);
-extern int wlc_eventq_detach(wlc_eventq_t *eq);
-extern int wlc_eventq_down(wlc_eventq_t *eq);
-extern void wlc_event_free(wlc_eventq_t *eq, wlc_event_t *e);
-extern bool wlc_eventq_avail(wlc_eventq_t *eq);
-extern wlc_event_t *wlc_eventq_deq(wlc_eventq_t *eq);
-extern void wlc_eventq_enq(wlc_eventq_t *eq, wlc_event_t *e);
-extern wlc_event_t *wlc_event_alloc(wlc_eventq_t *eq);
-
-extern int wlc_eventq_register_ind(wlc_eventq_t *eq, void *bitvect);
-extern int wlc_eventq_query_ind(wlc_eventq_t *eq, void *bitvect);
-extern int wlc_eventq_test_ind(wlc_eventq_t *eq, int et);
-extern int wlc_eventq_set_ind(wlc_eventq_t *eq, uint et, bool on);
-extern void wlc_eventq_flush(wlc_eventq_t *eq);
-extern void wlc_assign_event_msg(struct wlc_info *wlc, wl_event_msg_t *msg,
-				 const wlc_event_t *e, u8 *data,
-				 u32 len);
-
-#ifdef MSGTRACE
-extern void wlc_event_sendup_trace(struct wlc_info *wlc, hndrte_dev_t *bus,
-				   u8 *hdr, u16 hdrlen, u8 *buf,
-				   u16 buflen);
-#endif
-
-#endif				/* _WLC_EVENT_H_ */
diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_mac80211.c b/drivers/staging/brcm80211/brcmsmac/wlc_mac80211.c
index f41192a..cceebe7 100644
--- a/drivers/staging/brcm80211/brcmsmac/wlc_mac80211.c
+++ b/drivers/staging/brcm80211/brcmsmac/wlc_mac80211.c
@@ -37,7 +37,6 @@
 #include <wlc_key.h>
 #include <wlc_bsscfg.h>
 #include <wlc_channel.h>
-#include <wlc_event.h>
 #include <wlc_mac80211.h>
 #include <wlc_bmac.h>
 #include <wlc_scb.h>
@@ -46,7 +45,6 @@
 #include <wlc_antsel.h>
 #include <wlc_stf.h>
 #include <wlc_ampdu.h>
-#include <wlc_event.h>
 #include <wl_export.h>
 #include "d11ucode_ext.h"
 #include <wlc_alloc.h>
@@ -304,7 +302,6 @@ static void wlc_ht_update_sgi_rx(struct wlc_info *wlc, int val);
 static void wlc_ht_update_ldpc(struct wlc_info *wlc, s8 val);
 static void wlc_war16165(struct wlc_info *wlc, bool tx);
 
-static void wlc_process_eventq(void *arg);
 static void wlc_wme_retries_write(struct wlc_info *wlc);
 static bool wlc_attach_stf_ant_init(struct wlc_info *wlc);
 static uint wlc_attach_module(struct wlc_info *wlc);
@@ -1699,15 +1696,6 @@ static uint wlc_attach_module(struct wlc_info *wlc)
 		goto fail;
 	}
 
-	/* Initialize event queue; needed before following calls */
-	wlc->eventq =
-	    wlc_eventq_attach(wlc->pub, wlc, wlc->wl, wlc_process_eventq);
-	if (wlc->eventq == NULL) {
-		WL_ERROR("wl%d: wlc_attach: wlc_eventq_attachfailed\n", unit);
-		err = 57;
-		goto fail;
-	}
-
 	if ((wlc_stf_attach(wlc) != 0)) {
 		WL_ERROR("wl%d: wlc_attach: wlc_stf_attach failed\n", unit);
 		err = 68;
@@ -2159,11 +2147,6 @@ uint wlc_detach(struct wlc_info *wlc)
 	if (!wlc_radio_monitor_stop(wlc))
 		callbacks++;
 
-	if (wlc->eventq) {
-		wlc_eventq_detach(wlc->eventq);
-		wlc->eventq = NULL;
-	}
-
 	wlc_channel_mgr_detach(wlc->cmi);
 
 	wlc_timers_deinit(wlc);
@@ -2740,12 +2723,6 @@ uint wlc_down(struct wlc_info *wlc)
 		ASSERT(pktq_empty(&qi->q));
 	}
 
-	/* flush event queue.
-	 * Should be the last thing done after all the events are generated
-	 * Just delivers the events synchronously instead of waiting for a timer
-	 */
-	callbacks += wlc_eventq_down(wlc->eventq);
-
 	callbacks += wlc_bmac_down_finish(wlc->hw);
 
 	/* wlc_bmac_down_finish has done wlc_coredisable(). so clk is off */
@@ -8023,23 +8000,6 @@ static void wlc_bss_default_init(struct wlc_info *wlc)
 		bi->flags |= WLC_BSS_HT;
 }
 
-/* Deferred event processing */
-static void wlc_process_eventq(void *arg)
-{
-	struct wlc_info *wlc = (struct wlc_info *) arg;
-	wlc_event_t *etmp;
-
-	while ((etmp = wlc_eventq_deq(wlc->eventq))) {
-		/* Perform OS specific event processing */
-		wl_event(wlc->wl, etmp->event.ifname, etmp);
-		if (etmp->data) {
-			kfree(etmp->data);
-			etmp->data = NULL;
-		}
-		wlc_event_free(wlc->eventq, etmp);
-	}
-}
-
 void
 wlc_uint64_sub(u32 *a_high, u32 *a_low, u32 b_high, u32 b_low)
 {
diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_mac80211.h b/drivers/staging/brcm80211/brcmsmac/wlc_mac80211.h
index 4a9a8c8..72bfb8f 100644
--- a/drivers/staging/brcm80211/brcmsmac/wlc_mac80211.h
+++ b/drivers/staging/brcm80211/brcmsmac/wlc_mac80211.h
@@ -642,9 +642,6 @@ struct wlc_info {
 	/* tx queue */
 	wlc_txq_info_t *tx_queues;	/* common TX Queue list */
 
-	/* event */
-	wlc_eventq_t *eventq;	/* event queue for deferred processing */
-
 	/* security */
 	wsec_key_t *wsec_keys[WSEC_MAX_KEYS];	/* dynamic key storage */
 	wsec_key_t *wsec_def_keys[WLC_DEFAULT_KEYS];	/* default key storage */
diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_phy_shim.c b/drivers/staging/brcm80211/brcmsmac/wlc_phy_shim.c
index f8f2a5d..4eaec04 100644
--- a/drivers/staging/brcm80211/brcmsmac/wlc_phy_shim.c
+++ b/drivers/staging/brcm80211/brcmsmac/wlc_phy_shim.c
@@ -46,7 +46,6 @@
 #include <wlc_channel.h>
 #include <bcmsrom.h>
 #include <wlc_key.h>
-#include <wlc_event.h>
 
 #include <wlc_mac80211.h>
 
diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_stf.c b/drivers/staging/brcm80211/brcmsmac/wlc_stf.c
index 5ac120e..d5b0f78 100644
--- a/drivers/staging/brcm80211/brcmsmac/wlc_stf.c
+++ b/drivers/staging/brcm80211/brcmsmac/wlc_stf.c
@@ -32,7 +32,6 @@
 #include <wlc_key.h>
 #include <wlc_channel.h>
 #include <wlc_bsscfg.h>
-#include <wlc_event.h>
 #include <wlc_mac80211.h>
 #include <wlc_scb.h>
 #include <wl_export.h>
-- 
1.7.1


_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel


[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux