All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 01/15] staging: wilc1000: remove function pointer rx_indicate
@ 2015-09-24  9:14 Glen Lee
  2015-09-24  9:14 ` [PATCH 02/15] staging: wilc1000: remove function pointer mac_indicate Glen Lee
                   ` (13 more replies)
  0 siblings, 14 replies; 15+ messages in thread
From: Glen Lee @ 2015-09-24  9:14 UTC (permalink / raw)
  To: gregkh
  Cc: devel, linux-wireless, johnny.kim, chris.park, rachel.kim,
	tony.cho, glen.lee, leo.kim, austin.shin, adel.noureldin,
	adham.abozaeid, Nicolas.FERRE

This patch removes function pointer rx_indicate and call the function
frmw_to_linux directly.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
---
 drivers/staging/wilc1000/linux_wlan.c         |  2 --
 drivers/staging/wilc1000/wilc_wfi_netdevice.h |  1 +
 drivers/staging/wilc1000/wilc_wlan.c          | 11 +++++------
 drivers/staging/wilc1000/wilc_wlan_if.h       |  1 -
 4 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c
index 1f1b34b..8119c40 100644
--- a/drivers/staging/wilc1000/linux_wlan.c
+++ b/drivers/staging/wilc1000/linux_wlan.c
@@ -106,7 +106,6 @@ extern void WILC_WFI_monitor_rx(u8 *buff, u32 size);
 extern void WILC_WFI_p2p_rx(struct net_device *dev, u8 *buff, u32 size);
 
 static void linux_wlan_tx_complete(void *priv, int status);
-void frmw_to_linux(u8 *buff, u32 size, u32 pkt_offset);
 static int  mac_init_fn(struct net_device *ndev);
 int  mac_xmit(struct sk_buff *skb, struct net_device *dev);
 int  mac_open(struct net_device *ndev);
@@ -1095,7 +1094,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic)
 #endif
 
 	/*for now - to be revised*/
-	nwi->net_func.rx_indicate = frmw_to_linux;
 	nwi->net_func.rx_complete = linux_wlan_rx_complete;
 	nwi->indicate_func.mac_indicate = linux_wlan_mac_indicate;
 }
diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h
index 90fe1e2..72220df 100644
--- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h
+++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h
@@ -216,5 +216,6 @@ struct WILC_WFI_mon_priv {
 };
 
 extern struct net_device *WILC_WFI_devs[];
+void frmw_to_linux(u8 *buff, u32 size, u32 pkt_offset);
 
 #endif
diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c
index 9f5b5e6..56af108 100644
--- a/drivers/staging/wilc1000/wilc_wlan.c
+++ b/drivers/staging/wilc1000/wilc_wlan.c
@@ -1199,12 +1199,11 @@ static void wilc_wlan_handle_rxq(void)
 			{
 
 				if (!is_cfg_packet) {
-
-					if (p->net_func.rx_indicate) {
-						if (pkt_len > 0) {
-							p->net_func.rx_indicate(&buffer[offset], pkt_len, pkt_offset);
-							has_packet = 1;
-						}
+					if (pkt_len > 0) {
+						frmw_to_linux(&buffer[offset],
+							      pkt_len,
+							      pkt_offset);
+						has_packet = 1;
 					}
 				} else {
 					wilc_cfg_rsp_t rsp;
diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h
index 8652cf6..f878ca5 100644
--- a/drivers/staging/wilc1000/wilc_wlan_if.h
+++ b/drivers/staging/wilc1000/wilc_wlan_if.h
@@ -100,7 +100,6 @@ typedef struct {
 } wilc_wlan_io_func_t;
 
 typedef struct {
-	void (*rx_indicate)(u8 *, u32, u32);
 	void (*rx_complete)(void);
 } wilc_wlan_net_func_t;
 
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 02/15] staging: wilc1000: remove function pointer mac_indicate
  2015-09-24  9:14 [PATCH 01/15] staging: wilc1000: remove function pointer rx_indicate Glen Lee
@ 2015-09-24  9:14 ` Glen Lee
  2015-09-24  9:14 ` [PATCH 03/15] staging: wilc1000: remove function pointer rx_complete Glen Lee
                   ` (12 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: Glen Lee @ 2015-09-24  9:14 UTC (permalink / raw)
  To: gregkh
  Cc: devel, linux-wireless, johnny.kim, chris.park, rachel.kim,
	tony.cho, glen.lee, leo.kim, austin.shin, adel.noureldin,
	adham.abozaeid, Nicolas.FERRE

No need for a pointer to a function. Just call linux_wlan_mac_indicate.
Remove mac_indicate and also wilc_wlan_indicate_func_t since no members in it.
Variable indicate_func is not used so delete it and related codes.
Finally remove static from the function linux_wlan_mac_indicate.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
---
 drivers/staging/wilc1000/linux_wlan.c         | 3 +--
 drivers/staging/wilc1000/wilc_wfi_netdevice.h | 1 +
 drivers/staging/wilc1000/wilc_wlan.c          | 9 ++-------
 drivers/staging/wilc1000/wilc_wlan_if.h       | 4 ----
 4 files changed, 4 insertions(+), 13 deletions(-)

diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c
index 8119c40..9e099c3 100644
--- a/drivers/staging/wilc1000/linux_wlan.c
+++ b/drivers/staging/wilc1000/linux_wlan.c
@@ -393,7 +393,7 @@ static int linux_wlan_lock_timeout(void *vp, u32 timeout)
 	return error;
 }
 
-static void linux_wlan_mac_indicate(int flag)
+void linux_wlan_mac_indicate(int flag)
 {
 	/*I have to do it that way becuase there is no mean to encapsulate device pointer
 	 * as a parameter
@@ -1095,7 +1095,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic)
 
 	/*for now - to be revised*/
 	nwi->net_func.rx_complete = linux_wlan_rx_complete;
-	nwi->indicate_func.mac_indicate = linux_wlan_mac_indicate;
 }
 
 int wlan_initialize_threads(perInterface_wlan_t *nic)
diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h
index 72220df..5efbaf4 100644
--- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h
+++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h
@@ -217,5 +217,6 @@ struct WILC_WFI_mon_priv {
 
 extern struct net_device *WILC_WFI_devs[];
 void frmw_to_linux(u8 *buff, u32 size, u32 pkt_offset);
+void linux_wlan_mac_indicate(int flag);
 
 #endif
diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c
index 56af108..8acf013 100644
--- a/drivers/staging/wilc1000/wilc_wlan.c
+++ b/drivers/staging/wilc1000/wilc_wlan.c
@@ -33,7 +33,6 @@ typedef struct {
 	wilc_wlan_os_func_t os_func;
 	wilc_wlan_io_func_t io_func;
 	wilc_wlan_net_func_t net_func;
-	wilc_wlan_indicate_func_t indicate_func;
 
 	/**
 	 *      host interface functions
@@ -1223,13 +1222,10 @@ static void wilc_wlan_handle_rxq(void)
 						/**
 						 *      Call back to indicate status...
 						 **/
-						if (p->indicate_func.mac_indicate) {
-							p->indicate_func.mac_indicate(WILC_MAC_INDICATE_STATUS);
-						}
+						linux_wlan_mac_indicate(WILC_MAC_INDICATE_STATUS);
 
 					} else if (rsp.type == WILC_CFG_RSP_SCAN) {
-						if (p->indicate_func.mac_indicate)
-							p->indicate_func.mac_indicate(WILC_MAC_INDICATE_SCAN);
+						linux_wlan_mac_indicate(WILC_MAC_INDICATE_SCAN);
 					}
 				}
 			}
@@ -1978,7 +1974,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup)
 	memcpy((void *)&g_wlan.os_func, (void *)&inp->os_func, sizeof(wilc_wlan_os_func_t));
 	memcpy((void *)&g_wlan.io_func, (void *)&inp->io_func, sizeof(wilc_wlan_io_func_t));
 	memcpy((void *)&g_wlan.net_func, (void *)&inp->net_func, sizeof(wilc_wlan_net_func_t));
-	memcpy((void *)&g_wlan.indicate_func, (void *)&inp->indicate_func, sizeof(wilc_wlan_net_func_t));
 	g_wlan.hif_lock = inp->os_context.hif_critical_section;
 	g_wlan.txq_lock = inp->os_context.txq_critical_section;
 
diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h
index f878ca5..e42bb07 100644
--- a/drivers/staging/wilc1000/wilc_wlan_if.h
+++ b/drivers/staging/wilc1000/wilc_wlan_if.h
@@ -103,9 +103,6 @@ typedef struct {
 	void (*rx_complete)(void);
 } wilc_wlan_net_func_t;
 
-typedef struct {
-	void (*mac_indicate)(int);
-} wilc_wlan_indicate_func_t;
 #define WILC_MAC_INDICATE_STATUS	0x1
 #define WILC_MAC_STATUS_INIT		-1
 #define WILC_MAC_STATUS_READY		0
@@ -139,7 +136,6 @@ typedef struct {
 	wilc_wlan_os_func_t os_func;
 	wilc_wlan_io_func_t io_func;
 	wilc_wlan_net_func_t net_func;
-	wilc_wlan_indicate_func_t indicate_func;
 } wilc_wlan_inp_t;
 
 struct tx_complete_data {
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 03/15] staging: wilc1000: remove function pointer rx_complete
  2015-09-24  9:14 [PATCH 01/15] staging: wilc1000: remove function pointer rx_indicate Glen Lee
  2015-09-24  9:14 ` [PATCH 02/15] staging: wilc1000: remove function pointer mac_indicate Glen Lee
@ 2015-09-24  9:14 ` Glen Lee
  2015-09-24  9:14 ` [PATCH 04/15] staging: wilc1000: remove function pointer os_debug Glen Lee
                   ` (11 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: Glen Lee @ 2015-09-24  9:14 UTC (permalink / raw)
  To: gregkh
  Cc: devel, linux-wireless, johnny.kim, chris.park, rachel.kim,
	tony.cho, glen.lee, leo.kim, austin.shin, adel.noureldin,
	adham.abozaeid, Nicolas.FERRE

just call the function linux_wlan_rx_complete directly. No need for a pointer
to the functions. Remove rx_complete, wilc_wlan_net_func_t and net_func which
are not used anymore.
Finally remove static from the function linux_wlan_rx_complete.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
---
 drivers/staging/wilc1000/linux_wlan.c         | 5 +----
 drivers/staging/wilc1000/wilc_wfi_netdevice.h | 1 +
 drivers/staging/wilc1000/wilc_wlan.c          | 5 +----
 drivers/staging/wilc1000/wilc_wlan_if.h       | 5 -----
 4 files changed, 3 insertions(+), 13 deletions(-)

diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c
index 9e099c3..7b76b22 100644
--- a/drivers/staging/wilc1000/linux_wlan.c
+++ b/drivers/staging/wilc1000/linux_wlan.c
@@ -555,7 +555,7 @@ static int linux_wlan_txq_task(void *vp)
 	return 0;
 }
 
-static void linux_wlan_rx_complete(void)
+void linux_wlan_rx_complete(void)
 {
 	PRINT_D(RX_DBG, "RX completed\n");
 }
@@ -1092,9 +1092,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic)
 	nwi->io_func.u.spi.spi_trx = linux_spi_write_read;
 	nwi->io_func.u.spi.spi_max_speed = linux_spi_set_max_speed;
 #endif
-
-	/*for now - to be revised*/
-	nwi->net_func.rx_complete = linux_wlan_rx_complete;
 }
 
 int wlan_initialize_threads(perInterface_wlan_t *nic)
diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h
index 5efbaf4..bda9244 100644
--- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h
+++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h
@@ -218,5 +218,6 @@ struct WILC_WFI_mon_priv {
 extern struct net_device *WILC_WFI_devs[];
 void frmw_to_linux(u8 *buff, u32 size, u32 pkt_offset);
 void linux_wlan_mac_indicate(int flag);
+void linux_wlan_rx_complete(void);
 
 #endif
diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c
index 8acf013..a133595 100644
--- a/drivers/staging/wilc1000/wilc_wlan.c
+++ b/drivers/staging/wilc1000/wilc_wlan.c
@@ -32,7 +32,6 @@ typedef struct {
 	 **/
 	wilc_wlan_os_func_t os_func;
 	wilc_wlan_io_func_t io_func;
-	wilc_wlan_net_func_t net_func;
 
 	/**
 	 *      host interface functions
@@ -1241,8 +1240,7 @@ static void wilc_wlan_handle_rxq(void)
 		kfree(rqe);
 
 		if (has_packet) {
-			if (p->net_func.rx_complete)
-				p->net_func.rx_complete();
+			linux_wlan_rx_complete();
 		}
 	} while (1);
 
@@ -1973,7 +1971,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup)
 	 **/
 	memcpy((void *)&g_wlan.os_func, (void *)&inp->os_func, sizeof(wilc_wlan_os_func_t));
 	memcpy((void *)&g_wlan.io_func, (void *)&inp->io_func, sizeof(wilc_wlan_io_func_t));
-	memcpy((void *)&g_wlan.net_func, (void *)&inp->net_func, sizeof(wilc_wlan_net_func_t));
 	g_wlan.hif_lock = inp->os_context.hif_critical_section;
 	g_wlan.txq_lock = inp->os_context.txq_critical_section;
 
diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h
index e42bb07..4ff1a8f 100644
--- a/drivers/staging/wilc1000/wilc_wlan_if.h
+++ b/drivers/staging/wilc1000/wilc_wlan_if.h
@@ -99,10 +99,6 @@ typedef struct {
 	} u;
 } wilc_wlan_io_func_t;
 
-typedef struct {
-	void (*rx_complete)(void);
-} wilc_wlan_net_func_t;
-
 #define WILC_MAC_INDICATE_STATUS	0x1
 #define WILC_MAC_STATUS_INIT		-1
 #define WILC_MAC_STATUS_READY		0
@@ -135,7 +131,6 @@ typedef struct {
 	wilc_wlan_os_context_t os_context;
 	wilc_wlan_os_func_t os_func;
 	wilc_wlan_io_func_t io_func;
-	wilc_wlan_net_func_t net_func;
 } wilc_wlan_inp_t;
 
 struct tx_complete_data {
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 04/15] staging: wilc1000: remove function pointer os_debug
  2015-09-24  9:14 [PATCH 01/15] staging: wilc1000: remove function pointer rx_indicate Glen Lee
  2015-09-24  9:14 ` [PATCH 02/15] staging: wilc1000: remove function pointer mac_indicate Glen Lee
  2015-09-24  9:14 ` [PATCH 03/15] staging: wilc1000: remove function pointer rx_complete Glen Lee
@ 2015-09-24  9:14 ` Glen Lee
  2015-09-24  9:14 ` [PATCH 05/15] staging: wilc1000: use g_linux_wlan->txq_spinlock not the pointer of it Glen Lee
                   ` (10 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: Glen Lee @ 2015-09-24  9:14 UTC (permalink / raw)
  To: gregkh
  Cc: devel, linux-wireless, johnny.kim, chris.park, rachel.kim,
	tony.cho, glen.lee, leo.kim, austin.shin, adel.noureldin,
	adham.abozaeid, Nicolas.FERRE

This patch removes os_debug and call linux_wlan_dbg function instead of
os_debug. Delete static from the linux_wlan_dbg.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
---
 drivers/staging/wilc1000/linux_wlan.c         | 3 +--
 drivers/staging/wilc1000/wilc_wfi_netdevice.h | 1 +
 drivers/staging/wilc1000/wilc_wlan.c          | 3 +--
 drivers/staging/wilc1000/wilc_wlan_if.h       | 1 -
 4 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c
index 7b76b22..d2678a3 100644
--- a/drivers/staging/wilc1000/linux_wlan.c
+++ b/drivers/staging/wilc1000/linux_wlan.c
@@ -376,7 +376,7 @@ static void deinit_irq(linux_wlan_t *nic)
 /*
  *      OS functions
  */
-static void linux_wlan_dbg(u8 *buff)
+void linux_wlan_dbg(u8 *buff)
 {
 	PRINT_D(INIT_DBG, "%d\n", *buff);
 }
@@ -1072,7 +1072,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic)
 	nwi->os_context.rxq_critical_section = (void *)&g_linux_wlan->rxq_cs;
 	nwi->os_context.cfg_wait_event = (void *)&g_linux_wlan->cfg_event;
 
-	nwi->os_func.os_debug = linux_wlan_dbg;
 	nwi->os_func.os_wait = linux_wlan_lock_timeout;
 
 #ifdef WILC_SDIO
diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h
index bda9244..47e04c2 100644
--- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h
+++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h
@@ -219,5 +219,6 @@ extern struct net_device *WILC_WFI_devs[];
 void frmw_to_linux(u8 *buff, u32 size, u32 pkt_offset);
 void linux_wlan_mac_indicate(int flag);
 void linux_wlan_rx_complete(void);
+void linux_wlan_dbg(u8 *buff);
 
 #endif
diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c
index a133595..3e1479f 100644
--- a/drivers/staging/wilc1000/wilc_wlan.c
+++ b/drivers/staging/wilc1000/wilc_wlan.c
@@ -113,8 +113,7 @@ static void wilc_debug(u32 flag, char *fmt, ...)
 		vsprintf(buf, fmt, args);
 		va_end(args);
 
-		if (g_wlan.os_func.os_debug)
-			g_wlan.os_func.os_debug(buf);
+		linux_wlan_dbg(buf);
 	}
 }
 
diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h
index 4ff1a8f..aafb492 100644
--- a/drivers/staging/wilc1000/wilc_wlan_if.h
+++ b/drivers/staging/wilc1000/wilc_wlan_if.h
@@ -75,7 +75,6 @@ typedef struct {
 } sdio_cmd53_t;
 
 typedef struct {
-	void (*os_debug)(u8 *);
 	int (*os_wait)(void *, u32);
 } wilc_wlan_os_func_t;
 
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 05/15] staging: wilc1000: use g_linux_wlan->txq_spinlock not the pointer of it
  2015-09-24  9:14 [PATCH 01/15] staging: wilc1000: remove function pointer rx_indicate Glen Lee
                   ` (2 preceding siblings ...)
  2015-09-24  9:14 ` [PATCH 04/15] staging: wilc1000: remove function pointer os_debug Glen Lee
@ 2015-09-24  9:14 ` Glen Lee
  2015-09-24  9:14 ` [PATCH 06/15] staging: wilc1000: use g_linux_wlan->rxq_cs for function arguemnt Glen Lee
                   ` (9 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: Glen Lee @ 2015-09-24  9:14 UTC (permalink / raw)
  To: gregkh
  Cc: devel, linux-wireless, johnny.kim, chris.park, rachel.kim,
	tony.cho, glen.lee, leo.kim, austin.shin, adel.noureldin,
	adham.abozaeid, Nicolas.FERRE

Use spinlock variable g_linux_wlan->txq_spinlock itself instead of
g_wlan.txq_spinlock which is pointer of g_linux_wlan->txq_spinlock.
Delete os_context.txq_spin_lock, g_wlan.txq_spinlock and it's related codes.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
---
 drivers/staging/wilc1000/linux_wlan.c         |  2 --
 drivers/staging/wilc1000/wilc_wfi_netdevice.h |  1 +
 drivers/staging/wilc1000/wilc_wlan.c          | 37 ++++++++++++---------------
 drivers/staging/wilc1000/wilc_wlan_if.h       |  1 -
 4 files changed, 18 insertions(+), 23 deletions(-)

diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c
index d2678a3..d953ffe 100644
--- a/drivers/staging/wilc1000/linux_wlan.c
+++ b/drivers/staging/wilc1000/linux_wlan.c
@@ -1062,8 +1062,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic)
 
 	nwi->os_context.txq_add_to_head_critical_section = (void *)&g_linux_wlan->txq_add_to_head_cs;
 
-	nwi->os_context.txq_spin_lock = (void *)&g_linux_wlan->txq_spinlock;
-
 	nwi->os_context.txq_wait_event = (void *)&g_linux_wlan->txq_event;
 
 #if defined(MEMORY_STATIC)
diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h
index 47e04c2..b24b9a9 100644
--- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h
+++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h
@@ -215,6 +215,7 @@ struct WILC_WFI_mon_priv {
 	struct net_device *real_ndev;
 };
 
+extern linux_wlan_t *g_linux_wlan;
 extern struct net_device *WILC_WFI_devs[];
 void frmw_to_linux(u8 *buff, u32 size, u32 pkt_offset);
 void linux_wlan_mac_indicate(int flag);
diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c
index 3e1479f..68826eb 100644
--- a/drivers/staging/wilc1000/wilc_wlan.c
+++ b/drivers/staging/wilc1000/wilc_wlan.c
@@ -70,7 +70,6 @@ typedef struct {
 	void *txq_lock;
 
 	struct semaphore *txq_add_to_head_lock;
-	void *txq_spinlock;
 	unsigned long txq_spinlock_flags;
 
 	struct txq_entry_t *txq_head;
@@ -179,7 +178,7 @@ static struct txq_entry_t *wilc_wlan_txq_remove_from_head(void)
 	wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan;
 	unsigned long flags;
 
-	spin_lock_irqsave(p->txq_spinlock, flags);
+	spin_lock_irqsave(&g_linux_wlan->txq_spinlock, flags);
 	if (p->txq_head) {
 		tqe = p->txq_head;
 		p->txq_head = tqe->next;
@@ -194,7 +193,7 @@ static struct txq_entry_t *wilc_wlan_txq_remove_from_head(void)
 	} else {
 		tqe = NULL;
 	}
-	spin_unlock_irqrestore(p->txq_spinlock, flags);
+	spin_unlock_irqrestore(&g_linux_wlan->txq_spinlock, flags);
 	return tqe;
 }
 
@@ -202,7 +201,7 @@ static void wilc_wlan_txq_add_to_tail(struct txq_entry_t *tqe)
 {
 	wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan;
 	unsigned long flags;
-	spin_lock_irqsave(p->txq_spinlock, flags);
+	spin_lock_irqsave(&g_linux_wlan->txq_spinlock, flags);
 
 	if (p->txq_head == NULL) {
 		tqe->next = NULL;
@@ -218,7 +217,7 @@ static void wilc_wlan_txq_add_to_tail(struct txq_entry_t *tqe)
 	p->txq_entries += 1;
 	PRINT_D(TX_DBG, "Number of entries in TxQ = %d\n", p->txq_entries);
 
-	spin_unlock_irqrestore(p->txq_spinlock, flags);
+	spin_unlock_irqrestore(&g_linux_wlan->txq_spinlock, flags);
 
 	/**
 	 *      wake up TX queue
@@ -235,7 +234,7 @@ static int wilc_wlan_txq_add_to_head(struct txq_entry_t *tqe)
 	if (p->os_func.os_wait(p->txq_add_to_head_lock, CFG_PKTS_TIMEOUT))
 		return -1;
 
-	spin_lock_irqsave(p->txq_spinlock, flags);
+	spin_lock_irqsave(&g_linux_wlan->txq_spinlock, flags);
 
 	if (p->txq_head == NULL) {
 		tqe->next = NULL;
@@ -251,7 +250,7 @@ static int wilc_wlan_txq_add_to_head(struct txq_entry_t *tqe)
 	p->txq_entries += 1;
 	PRINT_D(TX_DBG, "Number of entries in TxQ = %d\n", p->txq_entries);
 
-	spin_unlock_irqrestore(p->txq_spinlock, flags);
+	spin_unlock_irqrestore(&g_linux_wlan->txq_spinlock, flags);
 	up(p->txq_add_to_head_lock);
 
 
@@ -352,9 +351,9 @@ static inline int remove_TCP_related(void)
 	wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan;
 	unsigned long flags;
 
-	spin_lock_irqsave(p->txq_spinlock, flags);
+	spin_lock_irqsave(&g_linux_wlan->txq_spinlock, flags);
 
-	spin_unlock_irqrestore(p->txq_spinlock, flags);
+	spin_unlock_irqrestore(&g_linux_wlan->txq_spinlock, flags);
 	return 0;
 }
 
@@ -368,7 +367,7 @@ static inline int tcp_process(struct txq_entry_t *tqe)
 	wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan;
 	unsigned long flags;
 
-	spin_lock_irqsave(p->txq_spinlock, flags);
+	spin_lock_irqsave(&g_linux_wlan->txq_spinlock, flags);
 
 	eth_hdr_ptr = &buffer[0];
 	h_proto = ntohs(*((unsigned short *)&eth_hdr_ptr[12]));
@@ -416,7 +415,7 @@ static inline int tcp_process(struct txq_entry_t *tqe)
 	} else {
 		ret = 0;
 	}
-	spin_unlock_irqrestore(p->txq_spinlock, flags);
+	spin_unlock_irqrestore(&g_linux_wlan->txq_spinlock, flags);
 	return ret;
 }
 
@@ -428,7 +427,7 @@ static int wilc_wlan_txq_filter_dup_tcp_ack(void)
 	u32 Dropped = 0;
 	wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan;
 
-	spin_lock_irqsave(p->txq_spinlock, p->txq_spinlock_flags);
+	spin_lock_irqsave(&g_linux_wlan->txq_spinlock, p->txq_spinlock_flags);
 	for (i = PendingAcks_arrBase; i < (PendingAcks_arrBase + Pending_Acks); i++) {
 		if (Pending_Acks_info[i].ack_num < Acks_keep_track_info[Pending_Acks_info[i].Session_index].Bigger_Ack_num) {
 			struct txq_entry_t *tqe;
@@ -455,7 +454,8 @@ static int wilc_wlan_txq_filter_dup_tcp_ack(void)
 		PendingAcks_arrBase = 0;
 
 
-	spin_unlock_irqrestore(p->txq_spinlock, p->txq_spinlock_flags);
+	spin_unlock_irqrestore(&g_linux_wlan->txq_spinlock,
+			       p->txq_spinlock_flags);
 
 	while (Dropped > 0) {
 		/*consume the semaphore count of the removed packet*/
@@ -576,11 +576,11 @@ static struct txq_entry_t *wilc_wlan_txq_get_first(void)
 	struct txq_entry_t *tqe;
 	unsigned long flags;
 
-	spin_lock_irqsave(p->txq_spinlock, flags);
+	spin_lock_irqsave(&g_linux_wlan->txq_spinlock, flags);
 
 	tqe = p->txq_head;
 
-	spin_unlock_irqrestore(p->txq_spinlock, flags);
+	spin_unlock_irqrestore(&g_linux_wlan->txq_spinlock, flags);
 
 
 	return tqe;
@@ -588,12 +588,11 @@ static struct txq_entry_t *wilc_wlan_txq_get_first(void)
 
 static struct txq_entry_t *wilc_wlan_txq_get_next(struct txq_entry_t *tqe)
 {
-	wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan;
 	unsigned long flags;
-	spin_lock_irqsave(p->txq_spinlock, flags);
+	spin_lock_irqsave(&g_linux_wlan->txq_spinlock, flags);
 
 	tqe = tqe->next;
-	spin_unlock_irqrestore(p->txq_spinlock, flags);
+	spin_unlock_irqrestore(&g_linux_wlan->txq_spinlock, flags);
 
 
 	return tqe;
@@ -1975,8 +1974,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup)
 
 	g_wlan.txq_add_to_head_lock = inp->os_context.txq_add_to_head_critical_section;
 
-	g_wlan.txq_spinlock = inp->os_context.txq_spin_lock;
-
 	g_wlan.rxq_lock = inp->os_context.rxq_critical_section;
 	g_wlan.txq_wait = inp->os_context.txq_wait_event;
 	g_wlan.cfg_wait = inp->os_context.cfg_wait_event;
diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h
index aafb492..e82d7a24 100644
--- a/drivers/staging/wilc1000/wilc_wlan_if.h
+++ b/drivers/staging/wilc1000/wilc_wlan_if.h
@@ -114,7 +114,6 @@ typedef struct {
 	void *txq_critical_section;
 
 	void *txq_add_to_head_critical_section;
-	void *txq_spin_lock;
 
 	void *txq_wait_event;
 
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 06/15] staging: wilc1000: use g_linux_wlan->rxq_cs for function arguemnt
  2015-09-24  9:14 [PATCH 01/15] staging: wilc1000: remove function pointer rx_indicate Glen Lee
                   ` (3 preceding siblings ...)
  2015-09-24  9:14 ` [PATCH 05/15] staging: wilc1000: use g_linux_wlan->txq_spinlock not the pointer of it Glen Lee
@ 2015-09-24  9:14 ` Glen Lee
  2015-09-24  9:14 ` [PATCH 07/15] staging: wilc1000: remove pointer variable of g_linux_wlan->txq_event Glen Lee
                   ` (8 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: Glen Lee @ 2015-09-24  9:14 UTC (permalink / raw)
  To: gregkh
  Cc: devel, linux-wireless, johnny.kim, chris.park, rachel.kim,
	tony.cho, glen.lee, leo.kim, austin.shin, adel.noureldin,
	adham.abozaeid, Nicolas.FERRE

Use mutex variable g_linux_wlan->rxq_cs instead of pointer varialbe.
No need to make extra pointer variable for the mutex. Remove
rxq_critical_section, rxq_lock and it's related codes.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
---
 drivers/staging/wilc1000/linux_wlan.c   |  1 -
 drivers/staging/wilc1000/wilc_wlan.c    | 10 ++++------
 drivers/staging/wilc1000/wilc_wlan_if.h |  1 -
 3 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c
index d953ffe..71f996c 100644
--- a/drivers/staging/wilc1000/linux_wlan.c
+++ b/drivers/staging/wilc1000/linux_wlan.c
@@ -1067,7 +1067,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic)
 #if defined(MEMORY_STATIC)
 	nwi->os_context.rx_buffer_size = LINUX_RX_SIZE;
 #endif
-	nwi->os_context.rxq_critical_section = (void *)&g_linux_wlan->rxq_cs;
 	nwi->os_context.cfg_wait_event = (void *)&g_linux_wlan->cfg_event;
 
 	nwi->os_func.os_wait = linux_wlan_lock_timeout;
diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c
index 68826eb..81ec85e 100644
--- a/drivers/staging/wilc1000/wilc_wlan.c
+++ b/drivers/staging/wilc1000/wilc_wlan.c
@@ -81,7 +81,6 @@ typedef struct {
 	/**
 	 *      RX queue
 	 **/
-	struct mutex *rxq_lock;
 	struct rxq_entry_t *rxq_head;
 	struct rxq_entry_t *rxq_tail;
 	int rxq_entries;
@@ -605,7 +604,7 @@ static int wilc_wlan_rxq_add(struct rxq_entry_t *rqe)
 	if (p->quit)
 		return 0;
 
-	mutex_lock(p->rxq_lock);
+	mutex_lock(&g_linux_wlan->rxq_cs);
 	if (p->rxq_head == NULL) {
 		PRINT_D(RX_DBG, "Add to Queue head\n");
 		rqe->next = NULL;
@@ -619,7 +618,7 @@ static int wilc_wlan_rxq_add(struct rxq_entry_t *rqe)
 	}
 	p->rxq_entries += 1;
 	PRINT_D(RX_DBG, "Number of queue entries: %d\n", p->rxq_entries);
-	mutex_unlock(p->rxq_lock);
+	mutex_unlock(&g_linux_wlan->rxq_cs);
 	return p->rxq_entries;
 }
 
@@ -631,12 +630,12 @@ static struct rxq_entry_t *wilc_wlan_rxq_remove(void)
 	if (p->rxq_head) {
 		struct rxq_entry_t *rqe;
 
-		mutex_lock(p->rxq_lock);
+		mutex_lock(&g_linux_wlan->rxq_cs);
 		rqe = p->rxq_head;
 		p->rxq_head = p->rxq_head->next;
 		p->rxq_entries -= 1;
 		PRINT_D(RX_DBG, "RXQ entries decreased\n");
-		mutex_unlock(p->rxq_lock);
+		mutex_unlock(&g_linux_wlan->rxq_cs);
 		return rqe;
 	}
 	PRINT_D(RX_DBG, "Nothing to get from Q\n");
@@ -1974,7 +1973,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup)
 
 	g_wlan.txq_add_to_head_lock = inp->os_context.txq_add_to_head_critical_section;
 
-	g_wlan.rxq_lock = inp->os_context.rxq_critical_section;
 	g_wlan.txq_wait = inp->os_context.txq_wait_event;
 	g_wlan.cfg_wait = inp->os_context.cfg_wait_event;
 	g_wlan.tx_buffer_size = inp->os_context.tx_buffer_size;
diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h
index e82d7a24..454933d 100644
--- a/drivers/staging/wilc1000/wilc_wlan_if.h
+++ b/drivers/staging/wilc1000/wilc_wlan_if.h
@@ -120,7 +120,6 @@ typedef struct {
 #if defined(MEMORY_STATIC)
 	u32 rx_buffer_size;
 #endif
-	void *rxq_critical_section;
 
 	struct semaphore *cfg_wait_event;
 } wilc_wlan_os_context_t;
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 07/15] staging: wilc1000: remove pointer variable of g_linux_wlan->txq_event
  2015-09-24  9:14 [PATCH 01/15] staging: wilc1000: remove function pointer rx_indicate Glen Lee
                   ` (4 preceding siblings ...)
  2015-09-24  9:14 ` [PATCH 06/15] staging: wilc1000: use g_linux_wlan->rxq_cs for function arguemnt Glen Lee
@ 2015-09-24  9:14 ` Glen Lee
  2015-09-24  9:14 ` [PATCH 08/15] staging: wilc1000: remove pointer varialbe cfg_wait and cfg_wait_event Glen Lee
                   ` (7 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: Glen Lee @ 2015-09-24  9:14 UTC (permalink / raw)
  To: gregkh
  Cc: devel, linux-wireless, johnny.kim, chris.park, rachel.kim,
	tony.cho, glen.lee, leo.kim, austin.shin, adel.noureldin,
	adham.abozaeid, Nicolas.FERRE

Remove variable txq_wait and txq_wait_event which are pointer varialbe
of g_linux_wlan->txq_event. No need to have extra pointer varialbe. Just use
g_linux_wlan->txq_event. Remove os_context.txq_wait_event, txq_wait and it's
related codes.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
---
 drivers/staging/wilc1000/linux_wlan.c   | 2 --
 drivers/staging/wilc1000/wilc_wlan.c    | 8 +++-----
 drivers/staging/wilc1000/wilc_wlan_if.h | 2 --
 3 files changed, 3 insertions(+), 9 deletions(-)

diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c
index 71f996c..5bec7f2 100644
--- a/drivers/staging/wilc1000/linux_wlan.c
+++ b/drivers/staging/wilc1000/linux_wlan.c
@@ -1062,8 +1062,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic)
 
 	nwi->os_context.txq_add_to_head_critical_section = (void *)&g_linux_wlan->txq_add_to_head_cs;
 
-	nwi->os_context.txq_wait_event = (void *)&g_linux_wlan->txq_event;
-
 #if defined(MEMORY_STATIC)
 	nwi->os_context.rx_buffer_size = LINUX_RX_SIZE;
 #endif
diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c
index 81ec85e..e70c367 100644
--- a/drivers/staging/wilc1000/wilc_wlan.c
+++ b/drivers/staging/wilc1000/wilc_wlan.c
@@ -75,7 +75,6 @@ typedef struct {
 	struct txq_entry_t *txq_head;
 	struct txq_entry_t *txq_tail;
 	int txq_entries;
-	void *txq_wait;
 	int txq_exit;
 
 	/**
@@ -223,7 +222,7 @@ static void wilc_wlan_txq_add_to_tail(struct txq_entry_t *tqe)
 	 **/
 	PRINT_D(TX_DBG, "Wake the txq_handling\n");
 
-	up(p->txq_wait);
+	up(&g_linux_wlan->txq_event);
 }
 
 static int wilc_wlan_txq_add_to_head(struct txq_entry_t *tqe)
@@ -256,7 +255,7 @@ static int wilc_wlan_txq_add_to_head(struct txq_entry_t *tqe)
 	/**
 	 *      wake up TX queue
 	 **/
-	up(p->txq_wait);
+	up(&g_linux_wlan->txq_event);
 	PRINT_D(TX_DBG, "Wake up the txq_handler\n");
 
 	return 0;
@@ -458,7 +457,7 @@ static int wilc_wlan_txq_filter_dup_tcp_ack(void)
 
 	while (Dropped > 0) {
 		/*consume the semaphore count of the removed packet*/
-		p->os_func.os_wait(p->txq_wait, 1);
+		p->os_func.os_wait(&g_linux_wlan->txq_event, 1);
 		Dropped--;
 	}
 
@@ -1973,7 +1972,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup)
 
 	g_wlan.txq_add_to_head_lock = inp->os_context.txq_add_to_head_critical_section;
 
-	g_wlan.txq_wait = inp->os_context.txq_wait_event;
 	g_wlan.cfg_wait = inp->os_context.cfg_wait_event;
 	g_wlan.tx_buffer_size = inp->os_context.tx_buffer_size;
 #if defined (MEMORY_STATIC)
diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h
index 454933d..1a0bfdb 100644
--- a/drivers/staging/wilc1000/wilc_wlan_if.h
+++ b/drivers/staging/wilc1000/wilc_wlan_if.h
@@ -115,8 +115,6 @@ typedef struct {
 
 	void *txq_add_to_head_critical_section;
 
-	void *txq_wait_event;
-
 #if defined(MEMORY_STATIC)
 	u32 rx_buffer_size;
 #endif
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 08/15] staging: wilc1000: remove pointer varialbe cfg_wait and cfg_wait_event
  2015-09-24  9:14 [PATCH 01/15] staging: wilc1000: remove function pointer rx_indicate Glen Lee
                   ` (5 preceding siblings ...)
  2015-09-24  9:14 ` [PATCH 07/15] staging: wilc1000: remove pointer variable of g_linux_wlan->txq_event Glen Lee
@ 2015-09-24  9:14 ` Glen Lee
  2015-09-24  9:15 ` [PATCH 09/15] staging: wilc1000: remove pointer variables of txq_add_to_head_cs Glen Lee
                   ` (6 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: Glen Lee @ 2015-09-24  9:14 UTC (permalink / raw)
  To: gregkh
  Cc: devel, linux-wireless, johnny.kim, chris.park, rachel.kim,
	tony.cho, glen.lee, leo.kim, austin.shin, adel.noureldin,
	adham.abozaeid, Nicolas.FERRE

This patch removes cfg_wait and cfg_wait_event which are pointer of
g_linux_wlan->cfg_event. No need to have pointer varialbe of it. Just use
g_linux_wlan->cfg_event.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
---
 drivers/staging/wilc1000/linux_wlan.c   |  2 --
 drivers/staging/wilc1000/wilc_wlan.c    | 14 +++++++-------
 drivers/staging/wilc1000/wilc_wlan_if.h |  2 --
 3 files changed, 7 insertions(+), 11 deletions(-)

diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c
index 5bec7f2..2893776 100644
--- a/drivers/staging/wilc1000/linux_wlan.c
+++ b/drivers/staging/wilc1000/linux_wlan.c
@@ -1065,8 +1065,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic)
 #if defined(MEMORY_STATIC)
 	nwi->os_context.rx_buffer_size = LINUX_RX_SIZE;
 #endif
-	nwi->os_context.cfg_wait_event = (void *)&g_linux_wlan->cfg_event;
-
 	nwi->os_func.os_wait = linux_wlan_lock_timeout;
 
 #ifdef WILC_SDIO
diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c
index e70c367..5bca997 100644
--- a/drivers/staging/wilc1000/wilc_wlan.c
+++ b/drivers/staging/wilc1000/wilc_wlan.c
@@ -47,7 +47,6 @@ typedef struct {
 	wilc_cfg_frame_t cfg_frame;
 	u32 cfg_frame_offset;
 	int cfg_seq_no;
-	void *cfg_wait;
 
 	/**
 	 *      RX buffer
@@ -485,7 +484,7 @@ static int wilc_wlan_txq_add_cfg_pkt(u8 *buffer, u32 buffer_size)
 	PRINT_D(TX_DBG, "Adding config packet ...\n");
 	if (p->quit) {
 		PRINT_D(TX_DBG, "Return due to clear function\n");
-		up(p->cfg_wait);
+		up(&g_linux_wlan->cfg_event);
 		return 0;
 	}
 
@@ -1137,7 +1136,7 @@ static void wilc_wlan_handle_rxq(void)
 	do {
 		if (p->quit) {
 			PRINT_D(RX_DBG, "exit 1st do-while due to Clean_UP function\n");
-			up(p->cfg_wait);
+			up(&g_linux_wlan->cfg_event);
 			break;
 		}
 		rqe = wilc_wlan_rxq_remove();
@@ -1211,7 +1210,7 @@ static void wilc_wlan_handle_rxq(void)
 						 **/
 						PRINT_D(RX_DBG, "p->cfg_seq_no = %d - rsp.seq_no = %d\n", p->cfg_seq_no, rsp.seq_no);
 						if (p->cfg_seq_no == rsp.seq_no) {
-							up(p->cfg_wait);
+							up(&g_linux_wlan->cfg_event);
 						}
 					} else if (rsp.type == WILC_CFG_RSP_STATUS) {
 						/**
@@ -1781,7 +1780,8 @@ static int wilc_wlan_cfg_set(int start, u32 wid, u8 *buffer, u32 buffer_size, in
 		if (wilc_wlan_cfg_commit(WILC_CFG_SET, drvHandler))
 			ret_size = 0;
 
-		if (p->os_func.os_wait(p->cfg_wait, CFG_PKTS_TIMEOUT)) {
+		if (p->os_func.os_wait(&g_linux_wlan->cfg_event,
+				       CFG_PKTS_TIMEOUT)) {
 			PRINT_D(TX_DBG, "Set Timed Out\n");
 			ret_size = 0;
 		}
@@ -1818,7 +1818,8 @@ static int wilc_wlan_cfg_get(int start, u32 wid, int commit, u32 drvHandler)
 			ret_size = 0;
 
 
-		if (p->os_func.os_wait(p->cfg_wait, CFG_PKTS_TIMEOUT)) {
+		if (p->os_func.os_wait(&g_linux_wlan->cfg_event,
+				       CFG_PKTS_TIMEOUT)) {
 			PRINT_D(TX_DBG, "Get Timed Out\n");
 			ret_size = 0;
 		}
@@ -1972,7 +1973,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup)
 
 	g_wlan.txq_add_to_head_lock = inp->os_context.txq_add_to_head_critical_section;
 
-	g_wlan.cfg_wait = inp->os_context.cfg_wait_event;
 	g_wlan.tx_buffer_size = inp->os_context.tx_buffer_size;
 #if defined (MEMORY_STATIC)
 	g_wlan.rx_buffer_size = inp->os_context.rx_buffer_size;
diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h
index 1a0bfdb..f761347 100644
--- a/drivers/staging/wilc1000/wilc_wlan_if.h
+++ b/drivers/staging/wilc1000/wilc_wlan_if.h
@@ -118,8 +118,6 @@ typedef struct {
 #if defined(MEMORY_STATIC)
 	u32 rx_buffer_size;
 #endif
-
-	struct semaphore *cfg_wait_event;
 } wilc_wlan_os_context_t;
 
 typedef struct {
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 09/15] staging: wilc1000: remove pointer variables of txq_add_to_head_cs
  2015-09-24  9:14 [PATCH 01/15] staging: wilc1000: remove function pointer rx_indicate Glen Lee
                   ` (6 preceding siblings ...)
  2015-09-24  9:14 ` [PATCH 08/15] staging: wilc1000: remove pointer varialbe cfg_wait and cfg_wait_event Glen Lee
@ 2015-09-24  9:15 ` Glen Lee
  2015-09-24  9:15 ` [PATCH 10/15] staging: wilc1000: remove pointer varialbes of hif_cs Glen Lee
                   ` (5 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: Glen Lee @ 2015-09-24  9:15 UTC (permalink / raw)
  To: gregkh
  Cc: devel, linux-wireless, johnny.kim, chris.park, rachel.kim,
	tony.cho, glen.lee, leo.kim, austin.shin, adel.noureldin,
	adham.abozaeid, Nicolas.FERRE

This patch removes txq_add_to_head_critical_section and txq_add_to_head_lock
which are pointer of g_linux_wlan->txq_add_to_head_cs.
Just use g_linux_wlan->txq_add_to_head_cs as argument of function.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
---
 drivers/staging/wilc1000/linux_wlan.c   |  3 ---
 drivers/staging/wilc1000/wilc_wlan.c    | 13 ++++++-------
 drivers/staging/wilc1000/wilc_wlan_if.h |  3 ---
 3 files changed, 6 insertions(+), 13 deletions(-)

diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c
index 2893776..61161b9 100644
--- a/drivers/staging/wilc1000/linux_wlan.c
+++ b/drivers/staging/wilc1000/linux_wlan.c
@@ -1059,9 +1059,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic)
 	nwi->os_context.os_private = (void *)nic;
 	nwi->os_context.tx_buffer_size = LINUX_TX_SIZE;
 	nwi->os_context.txq_critical_section = (void *)&g_linux_wlan->txq_cs;
-
-	nwi->os_context.txq_add_to_head_critical_section = (void *)&g_linux_wlan->txq_add_to_head_cs;
-
 #if defined(MEMORY_STATIC)
 	nwi->os_context.rx_buffer_size = LINUX_RX_SIZE;
 #endif
diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c
index 5bca997..f042b78 100644
--- a/drivers/staging/wilc1000/wilc_wlan.c
+++ b/drivers/staging/wilc1000/wilc_wlan.c
@@ -68,7 +68,6 @@ typedef struct {
 	 **/
 	void *txq_lock;
 
-	struct semaphore *txq_add_to_head_lock;
 	unsigned long txq_spinlock_flags;
 
 	struct txq_entry_t *txq_head;
@@ -228,7 +227,8 @@ static int wilc_wlan_txq_add_to_head(struct txq_entry_t *tqe)
 {
 	wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan;
 	unsigned long flags;
-	if (p->os_func.os_wait(p->txq_add_to_head_lock, CFG_PKTS_TIMEOUT))
+	if (p->os_func.os_wait(&g_linux_wlan->txq_add_to_head_cs,
+			       CFG_PKTS_TIMEOUT))
 		return -1;
 
 	spin_lock_irqsave(&g_linux_wlan->txq_spinlock, flags);
@@ -248,7 +248,7 @@ static int wilc_wlan_txq_add_to_head(struct txq_entry_t *tqe)
 	PRINT_D(TX_DBG, "Number of entries in TxQ = %d\n", p->txq_entries);
 
 	spin_unlock_irqrestore(&g_linux_wlan->txq_spinlock, flags);
-	up(p->txq_add_to_head_lock);
+	up(&g_linux_wlan->txq_add_to_head_cs);
 
 
 	/**
@@ -843,7 +843,8 @@ static int wilc_wlan_handle_txq(u32 *pu32TxqCount)
 		if (p->quit)
 			break;
 
-		p->os_func.os_wait(p->txq_add_to_head_lock, CFG_PKTS_TIMEOUT);
+		p->os_func.os_wait(&g_linux_wlan->txq_add_to_head_cs,
+				   CFG_PKTS_TIMEOUT);
 #ifdef	TCP_ACK_FILTER
 		wilc_wlan_txq_filter_dup_tcp_ack();
 #endif
@@ -1112,7 +1113,7 @@ _end_:
 		if (ret != 1)
 			break;
 	} while (0);
-	up(p->txq_add_to_head_lock);
+	up(&g_linux_wlan->txq_add_to_head_cs);
 
 	p->txq_exit = 1;
 	PRINT_D(TX_DBG, "THREAD: Exiting txq\n");
@@ -1971,8 +1972,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup)
 	g_wlan.hif_lock = inp->os_context.hif_critical_section;
 	g_wlan.txq_lock = inp->os_context.txq_critical_section;
 
-	g_wlan.txq_add_to_head_lock = inp->os_context.txq_add_to_head_critical_section;
-
 	g_wlan.tx_buffer_size = inp->os_context.tx_buffer_size;
 #if defined (MEMORY_STATIC)
 	g_wlan.rx_buffer_size = inp->os_context.rx_buffer_size;
diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h
index f761347..6f19277 100644
--- a/drivers/staging/wilc1000/wilc_wlan_if.h
+++ b/drivers/staging/wilc1000/wilc_wlan_if.h
@@ -112,9 +112,6 @@ typedef struct {
 
 	u32 tx_buffer_size;
 	void *txq_critical_section;
-
-	void *txq_add_to_head_critical_section;
-
 #if defined(MEMORY_STATIC)
 	u32 rx_buffer_size;
 #endif
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 10/15] staging: wilc1000: remove pointer varialbes of hif_cs
  2015-09-24  9:14 [PATCH 01/15] staging: wilc1000: remove function pointer rx_indicate Glen Lee
                   ` (7 preceding siblings ...)
  2015-09-24  9:15 ` [PATCH 09/15] staging: wilc1000: remove pointer variables of txq_add_to_head_cs Glen Lee
@ 2015-09-24  9:15 ` Glen Lee
  2015-09-24  9:15 ` [PATCH 11/15] staging: wilc1000: remove variable tx_buffer_size Glen Lee
                   ` (4 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: Glen Lee @ 2015-09-24  9:15 UTC (permalink / raw)
  To: gregkh
  Cc: devel, linux-wireless, johnny.kim, chris.park, rachel.kim,
	tony.cho, glen.lee, leo.kim, austin.shin, adel.noureldin,
	adham.abozaeid, Nicolas.FERRE

Remove hif_lock and hif_critical_section which are pointer of
g_linux_wlan->hif_cs. Remove also it's related codes.
Just use mutex varialbe g_linux_wlan->hif_cs.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
---
 drivers/staging/wilc1000/linux_wlan.c   |  1 -
 drivers/staging/wilc1000/wilc_wlan.c    | 10 ++++------
 drivers/staging/wilc1000/wilc_wlan_if.h |  3 ---
 3 files changed, 4 insertions(+), 10 deletions(-)

diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c
index 61161b9..5bb5588 100644
--- a/drivers/staging/wilc1000/linux_wlan.c
+++ b/drivers/staging/wilc1000/linux_wlan.c
@@ -1055,7 +1055,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic)
 
 	PRINT_D(INIT_DBG, "Linux to Wlan services ...\n");
 
-	nwi->os_context.hif_critical_section = (void *)&g_linux_wlan->hif_cs;
 	nwi->os_context.os_private = (void *)nic;
 	nwi->os_context.tx_buffer_size = LINUX_TX_SIZE;
 	nwi->os_context.txq_critical_section = (void *)&g_linux_wlan->txq_cs;
diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c
index f042b78..9df2110 100644
--- a/drivers/staging/wilc1000/wilc_wlan.c
+++ b/drivers/staging/wilc1000/wilc_wlan.c
@@ -37,7 +37,6 @@ typedef struct {
 	 *      host interface functions
 	 **/
 	wilc_hif_func_t hif_func;
-	struct mutex *hif_lock;
 
 	/**
 	 *      configuration interface functions
@@ -120,7 +119,7 @@ static CHIP_PS_STATE_T genuChipPSstate = CHIP_WAKEDUP;
 static inline void acquire_bus(BUS_ACQUIRE_T acquire)
 {
 
-	mutex_lock(g_wlan.hif_lock);
+	mutex_lock(&g_linux_wlan->hif_cs);
 	#ifndef WILC_OPTIMIZE_SLEEP_INT
 	if (genuChipPSstate != CHIP_WAKEDUP)
 	#endif
@@ -136,7 +135,7 @@ static inline void release_bus(BUS_RELEASE_T release)
 	if (release == RELEASE_ALLOW_SLEEP)
 		chip_allow_sleep();
 	#endif
-	mutex_unlock(g_wlan.hif_lock);
+	mutex_unlock(&g_linux_wlan->hif_cs);
 }
 /********************************************
  *
@@ -1969,7 +1968,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup)
 	 **/
 	memcpy((void *)&g_wlan.os_func, (void *)&inp->os_func, sizeof(wilc_wlan_os_func_t));
 	memcpy((void *)&g_wlan.io_func, (void *)&inp->io_func, sizeof(wilc_wlan_io_func_t));
-	g_wlan.hif_lock = inp->os_context.hif_critical_section;
 	g_wlan.txq_lock = inp->os_context.txq_critical_section;
 
 	g_wlan.tx_buffer_size = inp->os_context.tx_buffer_size;
@@ -2088,7 +2086,7 @@ u16 Set_machw_change_vir_if(bool bValue)
 	u32 reg;
 
 	/*Reset WILC_CHANGING_VIR_IF register to allow adding futrue keys to CE H/W*/
-	mutex_lock((&g_wlan)->hif_lock);
+	mutex_lock(&g_linux_wlan->hif_cs);
 	ret = (&g_wlan)->hif_func.hif_read_reg(WILC_CHANGING_VIR_IF, &reg);
 	if (!ret) {
 		PRINT_ER("Error while Reading reg WILC_CHANGING_VIR_IF\n");
@@ -2104,7 +2102,7 @@ u16 Set_machw_change_vir_if(bool bValue)
 	if (!ret) {
 		PRINT_ER("Error while writing reg WILC_CHANGING_VIR_IF\n");
 	}
-	mutex_unlock((&g_wlan)->hif_lock);
+	mutex_unlock(&g_linux_wlan->hif_cs);
 
 	return ret;
 }
diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h
index 6f19277..42013e7 100644
--- a/drivers/staging/wilc1000/wilc_wlan_if.h
+++ b/drivers/staging/wilc1000/wilc_wlan_if.h
@@ -107,9 +107,6 @@ typedef struct {
 
 typedef struct {
 	void *os_private;
-
-	struct mutex *hif_critical_section;
-
 	u32 tx_buffer_size;
 	void *txq_critical_section;
 #if defined(MEMORY_STATIC)
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 11/15] staging: wilc1000: remove variable tx_buffer_size
  2015-09-24  9:14 [PATCH 01/15] staging: wilc1000: remove function pointer rx_indicate Glen Lee
                   ` (8 preceding siblings ...)
  2015-09-24  9:15 ` [PATCH 10/15] staging: wilc1000: remove pointer varialbes of hif_cs Glen Lee
@ 2015-09-24  9:15 ` Glen Lee
  2015-09-24  9:15 ` [PATCH 12/15] staging: wilc1000: remove variable rx_buffer_size Glen Lee
                   ` (3 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: Glen Lee @ 2015-09-24  9:15 UTC (permalink / raw)
  To: gregkh
  Cc: devel, linux-wireless, johnny.kim, chris.park, rachel.kim,
	tony.cho, glen.lee, leo.kim, austin.shin, adel.noureldin,
	adham.abozaeid, Nicolas.FERRE

This patch removes unnecessary two variables tx_buffer_size and just use
LINUX_TX_SIZE as argument.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
---
 drivers/staging/wilc1000/linux_wlan.c   | 1 -
 drivers/staging/wilc1000/wilc_wlan.c    | 6 ++----
 drivers/staging/wilc1000/wilc_wlan_if.h | 1 -
 3 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c
index 5bb5588..62ca83f 100644
--- a/drivers/staging/wilc1000/linux_wlan.c
+++ b/drivers/staging/wilc1000/linux_wlan.c
@@ -1056,7 +1056,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic)
 	PRINT_D(INIT_DBG, "Linux to Wlan services ...\n");
 
 	nwi->os_context.os_private = (void *)nic;
-	nwi->os_context.tx_buffer_size = LINUX_TX_SIZE;
 	nwi->os_context.txq_critical_section = (void *)&g_linux_wlan->txq_cs;
 #if defined(MEMORY_STATIC)
 	nwi->os_context.rx_buffer_size = LINUX_RX_SIZE;
diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c
index 9df2110..4fc0a6a 100644
--- a/drivers/staging/wilc1000/wilc_wlan.c
+++ b/drivers/staging/wilc1000/wilc_wlan.c
@@ -58,7 +58,6 @@ typedef struct {
 	/**
 	 *      TX buffer
 	 **/
-	u32 tx_buffer_size;
 	u8 *tx_buffer;
 	u32 tx_buffer_offset;
 
@@ -873,7 +872,7 @@ static int wilc_wlan_handle_txq(u32 *pu32TxqCount)
 				if (vmm_sz & 0x3) {                                                                                                     /* has to be word aligned */
 					vmm_sz = (vmm_sz + 4) & ~0x3;
 				}
-				if ((sum + vmm_sz) > p->tx_buffer_size) {
+				if ((sum + vmm_sz) > LINUX_TX_SIZE) {
 					break;
 				}
 				PRINT_D(TX_DBG, "VMM Size AFTER alignment = %d\n", vmm_sz);
@@ -1970,7 +1969,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup)
 	memcpy((void *)&g_wlan.io_func, (void *)&inp->io_func, sizeof(wilc_wlan_io_func_t));
 	g_wlan.txq_lock = inp->os_context.txq_critical_section;
 
-	g_wlan.tx_buffer_size = inp->os_context.tx_buffer_size;
 #if defined (MEMORY_STATIC)
 	g_wlan.rx_buffer_size = inp->os_context.rx_buffer_size;
 #endif
@@ -2017,7 +2015,7 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup)
 	 *      alloc tx, rx buffer
 	 **/
 	if (g_wlan.tx_buffer == NULL)
-		g_wlan.tx_buffer = kmalloc(g_wlan.tx_buffer_size, GFP_KERNEL);
+		g_wlan.tx_buffer = kmalloc(LINUX_TX_SIZE, GFP_KERNEL);
 	PRINT_D(TX_DBG, "g_wlan.tx_buffer = %p\n", g_wlan.tx_buffer);
 
 	if (g_wlan.tx_buffer == NULL) {
diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h
index 42013e7..a746ad4 100644
--- a/drivers/staging/wilc1000/wilc_wlan_if.h
+++ b/drivers/staging/wilc1000/wilc_wlan_if.h
@@ -107,7 +107,6 @@ typedef struct {
 
 typedef struct {
 	void *os_private;
-	u32 tx_buffer_size;
 	void *txq_critical_section;
 #if defined(MEMORY_STATIC)
 	u32 rx_buffer_size;
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 12/15] staging: wilc1000: remove variable rx_buffer_size
  2015-09-24  9:14 [PATCH 01/15] staging: wilc1000: remove function pointer rx_indicate Glen Lee
                   ` (9 preceding siblings ...)
  2015-09-24  9:15 ` [PATCH 11/15] staging: wilc1000: remove variable tx_buffer_size Glen Lee
@ 2015-09-24  9:15 ` Glen Lee
  2015-09-24  9:15 ` [PATCH 13/15] staging: wilc1000: remove mutex txq_cs and it's related codes Glen Lee
                   ` (2 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: Glen Lee @ 2015-09-24  9:15 UTC (permalink / raw)
  To: gregkh
  Cc: devel, linux-wireless, johnny.kim, chris.park, rachel.kim,
	tony.cho, glen.lee, leo.kim, austin.shin, adel.noureldin,
	adham.abozaeid, Nicolas.FERRE

This patch removes two variables rx_buffer_size and use LINUX_RX_SIZE as
argument.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
---
 drivers/staging/wilc1000/linux_wlan.c   | 3 ---
 drivers/staging/wilc1000/wilc_wlan.c    | 9 ++-------
 drivers/staging/wilc1000/wilc_wlan_if.h | 3 ---
 3 files changed, 2 insertions(+), 13 deletions(-)

diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c
index 62ca83f..519fb16 100644
--- a/drivers/staging/wilc1000/linux_wlan.c
+++ b/drivers/staging/wilc1000/linux_wlan.c
@@ -1057,9 +1057,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic)
 
 	nwi->os_context.os_private = (void *)nic;
 	nwi->os_context.txq_critical_section = (void *)&g_linux_wlan->txq_cs;
-#if defined(MEMORY_STATIC)
-	nwi->os_context.rx_buffer_size = LINUX_RX_SIZE;
-#endif
 	nwi->os_func.os_wait = linux_wlan_lock_timeout;
 
 #ifdef WILC_SDIO
diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c
index 4fc0a6a..84e544d 100644
--- a/drivers/staging/wilc1000/wilc_wlan.c
+++ b/drivers/staging/wilc1000/wilc_wlan.c
@@ -51,7 +51,6 @@ typedef struct {
 	 *      RX buffer
 	 **/
 	#ifdef MEMORY_STATIC
-	u32 rx_buffer_size;
 	u8 *rx_buffer;
 	u32 rx_buffer_offset;
 	#endif
@@ -1308,7 +1307,7 @@ static void wilc_wlan_handle_isr_ext(u32 int_status)
 
 	if (size > 0) {
 #ifdef MEMORY_STATIC
-		if (p->rx_buffer_size - offset < size)
+		if (LINUX_RX_SIZE - offset < size)
 			offset = 0;
 
 		if (p->rx_buffer)
@@ -1968,10 +1967,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup)
 	memcpy((void *)&g_wlan.os_func, (void *)&inp->os_func, sizeof(wilc_wlan_os_func_t));
 	memcpy((void *)&g_wlan.io_func, (void *)&inp->io_func, sizeof(wilc_wlan_io_func_t));
 	g_wlan.txq_lock = inp->os_context.txq_critical_section;
-
-#if defined (MEMORY_STATIC)
-	g_wlan.rx_buffer_size = inp->os_context.rx_buffer_size;
-#endif
 	/***
 	 *      host interface init
 	 **/
@@ -2028,7 +2023,7 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup)
 /* rx_buffer is not used unless we activate USE_MEM STATIC which is not applicable, allocating such memory is useless*/
 #if defined (MEMORY_STATIC)
 	if (g_wlan.rx_buffer == NULL)
-		g_wlan.rx_buffer = kmalloc(g_wlan.rx_buffer_size, GFP_KERNEL);
+		g_wlan.rx_buffer = kmalloc(LINUX_RX_SIZE, GFP_KERNEL);
 	PRINT_D(TX_DBG, "g_wlan.rx_buffer =%p\n", g_wlan.rx_buffer);
 	if (g_wlan.rx_buffer == NULL) {
 		/* ENOBUFS	105 */
diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h
index a746ad4..9ab34ca 100644
--- a/drivers/staging/wilc1000/wilc_wlan_if.h
+++ b/drivers/staging/wilc1000/wilc_wlan_if.h
@@ -108,9 +108,6 @@ typedef struct {
 typedef struct {
 	void *os_private;
 	void *txq_critical_section;
-#if defined(MEMORY_STATIC)
-	u32 rx_buffer_size;
-#endif
 } wilc_wlan_os_context_t;
 
 typedef struct {
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 13/15] staging: wilc1000: remove mutex txq_cs and it's related codes
  2015-09-24  9:14 [PATCH 01/15] staging: wilc1000: remove function pointer rx_indicate Glen Lee
                   ` (10 preceding siblings ...)
  2015-09-24  9:15 ` [PATCH 12/15] staging: wilc1000: remove variable rx_buffer_size Glen Lee
@ 2015-09-24  9:15 ` Glen Lee
  2015-09-24  9:15 ` [PATCH 14/15] staging: wilc1000: remove function pointer os_wait Glen Lee
  2015-09-24  9:15 ` [PATCH 15/15] staging: wilc1000: remove variable cif_func Glen Lee
  13 siblings, 0 replies; 15+ messages in thread
From: Glen Lee @ 2015-09-24  9:15 UTC (permalink / raw)
  To: gregkh
  Cc: devel, linux-wireless, johnny.kim, chris.park, rachel.kim,
	tony.cho, glen.lee, leo.kim, austin.shin, adel.noureldin,
	adham.abozaeid, Nicolas.FERRE

mutex txq_cs is never used in the driver. txq_cs, txq_critical_section and
txq_lock have same pointer so just delete them and it's related codes.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
---
 drivers/staging/wilc1000/linux_wlan.c         | 5 -----
 drivers/staging/wilc1000/wilc_wfi_netdevice.h | 1 -
 drivers/staging/wilc1000/wilc_wlan.c          | 2 --
 drivers/staging/wilc1000/wilc_wlan_if.h       | 1 -
 4 files changed, 9 deletions(-)

diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c
index 519fb16..3547750 100644
--- a/drivers/staging/wilc1000/linux_wlan.c
+++ b/drivers/staging/wilc1000/linux_wlan.c
@@ -1020,7 +1020,6 @@ int wlan_init_locks(linux_wlan_t *p_nic)
 
 	mutex_init(&g_linux_wlan->hif_cs);
 	mutex_init(&g_linux_wlan->rxq_cs);
-	mutex_init(&g_linux_wlan->txq_cs);
 
 	spin_lock_init(&g_linux_wlan->txq_spinlock);
 	sema_init(&g_linux_wlan->txq_add_to_head_cs, 1);
@@ -1045,9 +1044,6 @@ static int wlan_deinit_locks(linux_wlan_t *nic)
 	if (&g_linux_wlan->rxq_cs != NULL)
 		mutex_destroy(&g_linux_wlan->rxq_cs);
 
-	if (&g_linux_wlan->txq_cs != NULL)
-		mutex_destroy(&g_linux_wlan->txq_cs);
-
 	return 0;
 }
 void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic)
@@ -1056,7 +1052,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic)
 	PRINT_D(INIT_DBG, "Linux to Wlan services ...\n");
 
 	nwi->os_context.os_private = (void *)nic;
-	nwi->os_context.txq_critical_section = (void *)&g_linux_wlan->txq_cs;
 	nwi->os_func.os_wait = linux_wlan_lock_timeout;
 
 #ifdef WILC_SDIO
diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h
index b24b9a9..e844306 100644
--- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h
+++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h
@@ -169,7 +169,6 @@ typedef struct {
 	u8 u8NoIfcs;
 	tstrInterfaceInfo strInterfaceInfo[NUM_CONCURRENT_IFC];
 	u8 open_ifcs;
-	struct mutex txq_cs;
 
 	struct semaphore txq_add_to_head_cs;
 	spinlock_t txq_spinlock;
diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c
index 84e544d..6ed5ecf 100644
--- a/drivers/staging/wilc1000/wilc_wlan.c
+++ b/drivers/staging/wilc1000/wilc_wlan.c
@@ -63,7 +63,6 @@ typedef struct {
 	/**
 	 *      TX queue
 	 **/
-	void *txq_lock;
 
 	unsigned long txq_spinlock_flags;
 
@@ -1966,7 +1965,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup)
 	 **/
 	memcpy((void *)&g_wlan.os_func, (void *)&inp->os_func, sizeof(wilc_wlan_os_func_t));
 	memcpy((void *)&g_wlan.io_func, (void *)&inp->io_func, sizeof(wilc_wlan_io_func_t));
-	g_wlan.txq_lock = inp->os_context.txq_critical_section;
 	/***
 	 *      host interface init
 	 **/
diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h
index 9ab34ca..df4e3bb 100644
--- a/drivers/staging/wilc1000/wilc_wlan_if.h
+++ b/drivers/staging/wilc1000/wilc_wlan_if.h
@@ -107,7 +107,6 @@ typedef struct {
 
 typedef struct {
 	void *os_private;
-	void *txq_critical_section;
 } wilc_wlan_os_context_t;
 
 typedef struct {
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 14/15] staging: wilc1000: remove function pointer os_wait
  2015-09-24  9:14 [PATCH 01/15] staging: wilc1000: remove function pointer rx_indicate Glen Lee
                   ` (11 preceding siblings ...)
  2015-09-24  9:15 ` [PATCH 13/15] staging: wilc1000: remove mutex txq_cs and it's related codes Glen Lee
@ 2015-09-24  9:15 ` Glen Lee
  2015-09-24  9:15 ` [PATCH 15/15] staging: wilc1000: remove variable cif_func Glen Lee
  13 siblings, 0 replies; 15+ messages in thread
From: Glen Lee @ 2015-09-24  9:15 UTC (permalink / raw)
  To: gregkh
  Cc: devel, linux-wireless, johnny.kim, chris.park, rachel.kim,
	tony.cho, glen.lee, leo.kim, austin.shin, adel.noureldin,
	adham.abozaeid, Nicolas.FERRE

This patch removes function pointer os_wait which is pointer of
linux_wlan_lock_timeout and just call the real name function directly.
Remove also static from linux_wlan_lock_timeout declaration.
As os_wait is deleted, structure wilc_wlan_os_func_t is useless. Delete
wilc_wlan_os_func_t, os_func and it's related codes.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
---
 drivers/staging/wilc1000/linux_wlan.c         |  3 +--
 drivers/staging/wilc1000/wilc_sdio.c          |  2 --
 drivers/staging/wilc1000/wilc_wfi_netdevice.h |  1 +
 drivers/staging/wilc1000/wilc_wlan.c          | 20 +++++++++-----------
 drivers/staging/wilc1000/wilc_wlan_if.h       |  5 -----
 5 files changed, 11 insertions(+), 20 deletions(-)

diff --git a/drivers/staging/wilc1000/linux_wlan.c b/drivers/staging/wilc1000/linux_wlan.c
index 3547750..701d317 100644
--- a/drivers/staging/wilc1000/linux_wlan.c
+++ b/drivers/staging/wilc1000/linux_wlan.c
@@ -381,7 +381,7 @@ void linux_wlan_dbg(u8 *buff)
 	PRINT_D(INIT_DBG, "%d\n", *buff);
 }
 
-static int linux_wlan_lock_timeout(void *vp, u32 timeout)
+int linux_wlan_lock_timeout(void *vp, u32 timeout)
 {
 	int error = -1;
 
@@ -1052,7 +1052,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic)
 	PRINT_D(INIT_DBG, "Linux to Wlan services ...\n");
 
 	nwi->os_context.os_private = (void *)nic;
-	nwi->os_func.os_wait = linux_wlan_lock_timeout;
 
 #ifdef WILC_SDIO
 	nwi->io_func.io_type = HIF_SDIO;
diff --git a/drivers/staging/wilc1000/wilc_sdio.c b/drivers/staging/wilc1000/wilc_sdio.c
index 48834c6..c22b35e 100644
--- a/drivers/staging/wilc1000/wilc_sdio.c
+++ b/drivers/staging/wilc1000/wilc_sdio.c
@@ -14,7 +14,6 @@
 
 typedef struct {
 	void *os_context;
-	wilc_wlan_os_func_t os_func;
 	u32 block_size;
 	int (*sdio_cmd52)(sdio_cmd52_t *);
 	int (*sdio_cmd53)(sdio_cmd53_t *);
@@ -586,7 +585,6 @@ static int sdio_init(wilc_wlan_inp_t *inp, wilc_debug_func func)
 
 	g_sdio.dPrint = func;
 	g_sdio.os_context = inp->os_context.os_private;
-	memcpy((void *)&g_sdio.os_func, (void *)&inp->os_func, sizeof(wilc_wlan_os_func_t));
 
 	if (inp->io_func.io_init) {
 		if (!inp->io_func.io_init(g_sdio.os_context)) {
diff --git a/drivers/staging/wilc1000/wilc_wfi_netdevice.h b/drivers/staging/wilc1000/wilc_wfi_netdevice.h
index e844306..af49c91 100644
--- a/drivers/staging/wilc1000/wilc_wfi_netdevice.h
+++ b/drivers/staging/wilc1000/wilc_wfi_netdevice.h
@@ -220,5 +220,6 @@ void frmw_to_linux(u8 *buff, u32 size, u32 pkt_offset);
 void linux_wlan_mac_indicate(int flag);
 void linux_wlan_rx_complete(void);
 void linux_wlan_dbg(u8 *buff);
+int linux_wlan_lock_timeout(void *vp, u32 timeout);
 
 #endif
diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c
index 6ed5ecf..24a3aa1 100644
--- a/drivers/staging/wilc1000/wilc_wlan.c
+++ b/drivers/staging/wilc1000/wilc_wlan.c
@@ -30,7 +30,6 @@ typedef struct {
 	/**
 	 *      input interface functions
 	 **/
-	wilc_wlan_os_func_t os_func;
 	wilc_wlan_io_func_t io_func;
 
 	/**
@@ -223,8 +222,8 @@ static int wilc_wlan_txq_add_to_head(struct txq_entry_t *tqe)
 {
 	wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan;
 	unsigned long flags;
-	if (p->os_func.os_wait(&g_linux_wlan->txq_add_to_head_cs,
-			       CFG_PKTS_TIMEOUT))
+	if (linux_wlan_lock_timeout(&g_linux_wlan->txq_add_to_head_cs,
+				    CFG_PKTS_TIMEOUT))
 		return -1;
 
 	spin_lock_irqsave(&g_linux_wlan->txq_spinlock, flags);
@@ -452,7 +451,7 @@ static int wilc_wlan_txq_filter_dup_tcp_ack(void)
 
 	while (Dropped > 0) {
 		/*consume the semaphore count of the removed packet*/
-		p->os_func.os_wait(&g_linux_wlan->txq_event, 1);
+		linux_wlan_lock_timeout(&g_linux_wlan->txq_event, 1);
 		Dropped--;
 	}
 
@@ -839,8 +838,8 @@ static int wilc_wlan_handle_txq(u32 *pu32TxqCount)
 		if (p->quit)
 			break;
 
-		p->os_func.os_wait(&g_linux_wlan->txq_add_to_head_cs,
-				   CFG_PKTS_TIMEOUT);
+		linux_wlan_lock_timeout(&g_linux_wlan->txq_add_to_head_cs,
+					CFG_PKTS_TIMEOUT);
 #ifdef	TCP_ACK_FILTER
 		wilc_wlan_txq_filter_dup_tcp_ack();
 #endif
@@ -1777,8 +1776,8 @@ static int wilc_wlan_cfg_set(int start, u32 wid, u8 *buffer, u32 buffer_size, in
 		if (wilc_wlan_cfg_commit(WILC_CFG_SET, drvHandler))
 			ret_size = 0;
 
-		if (p->os_func.os_wait(&g_linux_wlan->cfg_event,
-				       CFG_PKTS_TIMEOUT)) {
+		if (linux_wlan_lock_timeout(&g_linux_wlan->cfg_event,
+					    CFG_PKTS_TIMEOUT)) {
 			PRINT_D(TX_DBG, "Set Timed Out\n");
 			ret_size = 0;
 		}
@@ -1815,8 +1814,8 @@ static int wilc_wlan_cfg_get(int start, u32 wid, int commit, u32 drvHandler)
 			ret_size = 0;
 
 
-		if (p->os_func.os_wait(&g_linux_wlan->cfg_event,
-				       CFG_PKTS_TIMEOUT)) {
+		if (linux_wlan_lock_timeout(&g_linux_wlan->cfg_event,
+					    CFG_PKTS_TIMEOUT)) {
 			PRINT_D(TX_DBG, "Get Timed Out\n");
 			ret_size = 0;
 		}
@@ -1963,7 +1962,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup)
 	/**
 	 *      store the input
 	 **/
-	memcpy((void *)&g_wlan.os_func, (void *)&inp->os_func, sizeof(wilc_wlan_os_func_t));
 	memcpy((void *)&g_wlan.io_func, (void *)&inp->io_func, sizeof(wilc_wlan_io_func_t));
 	/***
 	 *      host interface init
diff --git a/drivers/staging/wilc1000/wilc_wlan_if.h b/drivers/staging/wilc1000/wilc_wlan_if.h
index df4e3bb..1f4c27f 100644
--- a/drivers/staging/wilc1000/wilc_wlan_if.h
+++ b/drivers/staging/wilc1000/wilc_wlan_if.h
@@ -75,10 +75,6 @@ typedef struct {
 } sdio_cmd53_t;
 
 typedef struct {
-	int (*os_wait)(void *, u32);
-} wilc_wlan_os_func_t;
-
-typedef struct {
 	int io_type;
 	int (*io_init)(void *);
 	void (*io_deinit)(void *);
@@ -111,7 +107,6 @@ typedef struct {
 
 typedef struct {
 	wilc_wlan_os_context_t os_context;
-	wilc_wlan_os_func_t os_func;
 	wilc_wlan_io_func_t io_func;
 } wilc_wlan_inp_t;
 
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 15/15] staging: wilc1000: remove variable cif_func
  2015-09-24  9:14 [PATCH 01/15] staging: wilc1000: remove function pointer rx_indicate Glen Lee
                   ` (12 preceding siblings ...)
  2015-09-24  9:15 ` [PATCH 14/15] staging: wilc1000: remove function pointer os_wait Glen Lee
@ 2015-09-24  9:15 ` Glen Lee
  13 siblings, 0 replies; 15+ messages in thread
From: Glen Lee @ 2015-09-24  9:15 UTC (permalink / raw)
  To: gregkh
  Cc: devel, linux-wireless, johnny.kim, chris.park, rachel.kim,
	tony.cho, glen.lee, leo.kim, austin.shin, adel.noureldin,
	adham.abozaeid, Nicolas.FERRE

This patch removes variable cif_func and use mac_cfg directly. No need to have
another pointer variable.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
---
 drivers/staging/wilc1000/wilc_wlan.c | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/drivers/staging/wilc1000/wilc_wlan.c b/drivers/staging/wilc1000/wilc_wlan.c
index 24a3aa1..1937d7d 100644
--- a/drivers/staging/wilc1000/wilc_wlan.c
+++ b/drivers/staging/wilc1000/wilc_wlan.c
@@ -40,7 +40,6 @@ typedef struct {
 	/**
 	 *      configuration interface functions
 	 **/
-	wilc_cfg_func_t cif_func;
 	int cfg_frame_in_use;
 	wilc_cfg_frame_t cfg_frame;
 	u32 cfg_frame_offset;
@@ -1199,7 +1198,7 @@ static void wilc_wlan_handle_rxq(void)
 
 
 
-					p->cif_func.rx_indicate(&buffer[pkt_offset + offset], pkt_len, &rsp);
+					mac_cfg.rx_indicate(&buffer[pkt_offset + offset], pkt_len, &rsp);
 					if (rsp.type == WILC_CFG_RSP) {
 						/**
 						 *      wake up the waiting task...
@@ -1764,7 +1763,8 @@ static int wilc_wlan_cfg_set(int start, u32 wid, u8 *buffer, u32 buffer_size, in
 		p->cfg_frame_offset = 0;
 
 	offset = p->cfg_frame_offset;
-	ret_size = p->cif_func.cfg_wid_set(p->cfg_frame.frame, offset, (u16)wid, buffer, buffer_size);
+	ret_size = mac_cfg.cfg_wid_set(p->cfg_frame.frame, offset, (u16)wid,
+				       buffer, buffer_size);
 	offset += ret_size;
 	p->cfg_frame_offset = offset;
 
@@ -1803,7 +1803,7 @@ static int wilc_wlan_cfg_get(int start, u32 wid, int commit, u32 drvHandler)
 		p->cfg_frame_offset = 0;
 
 	offset = p->cfg_frame_offset;
-	ret_size = p->cif_func.cfg_wid_get(p->cfg_frame.frame, offset, (u16)wid);
+	ret_size = mac_cfg.cfg_wid_get(p->cfg_frame.frame, offset, (u16)wid);
 	offset += ret_size;
 	p->cfg_frame_offset = offset;
 
@@ -1830,10 +1830,9 @@ static int wilc_wlan_cfg_get(int start, u32 wid, int commit, u32 drvHandler)
 
 static int wilc_wlan_cfg_get_val(u32 wid, u8 *buffer, u32 buffer_size)
 {
-	wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan;
 	int ret;
 
-	ret = p->cif_func.cfg_wid_get_val((u16)wid, buffer, buffer_size);
+	ret = mac_cfg.cfg_wid_get_val((u16)wid, buffer, buffer_size);
 
 	return ret;
 }
@@ -1999,8 +1998,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup)
 		ret = -105;
 		goto _fail_;
 	}
-	memcpy((void *)&g_wlan.cif_func, &mac_cfg, sizeof(wilc_cfg_func_t));
-
 
 	/**
 	 *      alloc tx, rx buffer
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2015-09-24  9:14 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-09-24  9:14 [PATCH 01/15] staging: wilc1000: remove function pointer rx_indicate Glen Lee
2015-09-24  9:14 ` [PATCH 02/15] staging: wilc1000: remove function pointer mac_indicate Glen Lee
2015-09-24  9:14 ` [PATCH 03/15] staging: wilc1000: remove function pointer rx_complete Glen Lee
2015-09-24  9:14 ` [PATCH 04/15] staging: wilc1000: remove function pointer os_debug Glen Lee
2015-09-24  9:14 ` [PATCH 05/15] staging: wilc1000: use g_linux_wlan->txq_spinlock not the pointer of it Glen Lee
2015-09-24  9:14 ` [PATCH 06/15] staging: wilc1000: use g_linux_wlan->rxq_cs for function arguemnt Glen Lee
2015-09-24  9:14 ` [PATCH 07/15] staging: wilc1000: remove pointer variable of g_linux_wlan->txq_event Glen Lee
2015-09-24  9:14 ` [PATCH 08/15] staging: wilc1000: remove pointer varialbe cfg_wait and cfg_wait_event Glen Lee
2015-09-24  9:15 ` [PATCH 09/15] staging: wilc1000: remove pointer variables of txq_add_to_head_cs Glen Lee
2015-09-24  9:15 ` [PATCH 10/15] staging: wilc1000: remove pointer varialbes of hif_cs Glen Lee
2015-09-24  9:15 ` [PATCH 11/15] staging: wilc1000: remove variable tx_buffer_size Glen Lee
2015-09-24  9:15 ` [PATCH 12/15] staging: wilc1000: remove variable rx_buffer_size Glen Lee
2015-09-24  9:15 ` [PATCH 13/15] staging: wilc1000: remove mutex txq_cs and it's related codes Glen Lee
2015-09-24  9:15 ` [PATCH 14/15] staging: wilc1000: remove function pointer os_wait Glen Lee
2015-09-24  9:15 ` [PATCH 15/15] staging: wilc1000: remove variable cif_func Glen Lee

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.