LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [PATCH 1/7] w35und: inline DRIVER_AUTHOR and DRIVER_DESC macros
@ 2008-10-30 16:12 Pekka Enberg
  2008-10-30 16:12 ` [PATCH 2/7] w35und: clean up wblinux.c a bit Pekka Enberg
  2008-10-30 19:16 ` [PATCH 1/7] w35und: inline DRIVER_AUTHOR and DRIVER_DESC macros Pavel Machek
  0 siblings, 2 replies; 14+ messages in thread
From: Pekka Enberg @ 2008-10-30 16:12 UTC (permalink / raw)
  To: greg; +Cc: linux-kernel, Pekka Enberg, Pavel Machek

They're used in one place so we can inline them.

Cc: Pavel Machek <pavel@suse.cz>
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
---
 drivers/staging/winbond/wbusb.c   |    4 ++--
 drivers/staging/winbond/wbusb_s.h |    3 ---
 2 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/staging/winbond/wbusb.c b/drivers/staging/winbond/wbusb.c
index 40bb77c..67847c8 100644
--- a/drivers/staging/winbond/wbusb.c
+++ b/drivers/staging/winbond/wbusb.c
@@ -11,8 +11,8 @@
 #include "wbhal_f.h"
 #include "wblinux_f.h"
 
-MODULE_AUTHOR(DRIVER_AUTHOR);
-MODULE_DESCRIPTION(DRIVER_DESC);
+MODULE_AUTHOR("Original by: Jeff Lee<YY_Lee@issc.com.tw> Adapted to 2.6.x by Costantino Leandro (Rxart Desktop) <le_costantino@pixartargentina.com.ar>");
+MODULE_DESCRIPTION("IS89C35 802.11bg WLAN USB Driver");
 MODULE_LICENSE("GPL");
 MODULE_VERSION("0.1");
 
diff --git a/drivers/staging/winbond/wbusb_s.h b/drivers/staging/winbond/wbusb_s.h
index 1aa8ab1..1de9360 100644
--- a/drivers/staging/winbond/wbusb_s.h
+++ b/drivers/staging/winbond/wbusb_s.h
@@ -28,9 +28,6 @@ typedef struct _RW_CONTEXT
 	void*			pCallBackFunctionParameter;
 } RW_CONTEXT, *PRW_CONTEXT;
 
-#define DRIVER_AUTHOR "Original by: Jeff Lee<YY_Lee@issc.com.tw> Adapted to 2.6.x by Costantino Leandro (Rxart Desktop) <le_costantino@pixartargentina.com.ar>"
-#define DRIVER_DESC   "IS89C35 802.11bg WLAN USB Driver"
-
 typedef struct _WBUSB {
 	u32	IsUsb20;
 	struct usb_device *udev;
-- 
1.5.3.7


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

* [PATCH 2/7] w35und: clean up wblinux.c a bit
  2008-10-30 16:12 [PATCH 1/7] w35und: inline DRIVER_AUTHOR and DRIVER_DESC macros Pekka Enberg
@ 2008-10-30 16:12 ` Pekka Enberg
  2008-10-30 16:12   ` [PATCH 3/7] w35und: remove unused ->ShutDowned member from struct LOCAL_PARA Pekka Enberg
  2008-10-30 19:17   ` [PATCH 2/7] w35und: clean up wblinux.c a bit Pavel Machek
  2008-10-30 19:16 ` [PATCH 1/7] w35und: inline DRIVER_AUTHOR and DRIVER_DESC macros Pavel Machek
  1 sibling, 2 replies; 14+ messages in thread
From: Pekka Enberg @ 2008-10-30 16:12 UTC (permalink / raw)
  To: greg; +Cc: linux-kernel, Pekka Enberg, Pavel Machek

This patch removes wrapper functions from wblinux.c and moves the hardware init
and halt functions to wbusb.c which has the only callers of them.

Cc: Pavel Machek <pavel@suse.cz>
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
---
 drivers/staging/winbond/wblinux.c   |  167 -----------------------------------
 drivers/staging/winbond/wblinux_f.h |    5 -
 drivers/staging/winbond/wbusb.c     |  150 ++++++++++++++++++++++++++++++-
 3 files changed, 147 insertions(+), 175 deletions(-)

diff --git a/drivers/staging/winbond/wblinux.c b/drivers/staging/winbond/wblinux.c
index 31f2d20..433aa0d 100644
--- a/drivers/staging/winbond/wblinux.c
+++ b/drivers/staging/winbond/wblinux.c
@@ -16,22 +16,6 @@
 #include "wbhal_f.h"
 #include "wblinux_f.h"
 
-unsigned char
-WBLINUX_Initial(struct wbsoft_priv * adapter)
-{
-	spin_lock_init( &adapter->SpinLock );
-	return true;
-}
-
-void
-WBLINUX_Destroy(struct wbsoft_priv * adapter)
-{
-	WBLINUX_stop( adapter );
-#ifdef _PE_USB_INI_DUMP_
-	WBDEBUG(("[w35und] unregister_netdev!\n"));
-#endif
-}
-
 void
 WBLINUX_stop(  struct wbsoft_priv * adapter )
 {
@@ -61,154 +45,3 @@ WBLINUX_stop(  struct wbsoft_priv * adapter )
 
 	atomic_dec(&adapter->ThreadCount);
 }
-
-void
-WbWlanHalt(  struct wbsoft_priv * adapter )
-{
-	//---------------------
-	adapter->sLocalPara.ShutDowned = true;
-
-	Mds_Destroy( adapter );
-
-	// Turn off Rx and Tx hardware ability
-	hal_stop( &adapter->sHwData );
-#ifdef _PE_USB_INI_DUMP_
-	WBDEBUG(("[w35und] Hal_stop O.K.\n"));
-#endif
-	msleep(100);// Waiting Irp completed
-
-	// Destroy the NDIS module
-	WBLINUX_Destroy( adapter );
-
-	// Halt the HAL
-	hal_halt(&adapter->sHwData, NULL);
-}
-
-unsigned char
-WbWLanInitialize(struct ieee80211_hw *hw)
-{
-	struct wbsoft_priv *priv = hw->priv;
-	phw_data_t	pHwData;
-	u8		*pMacAddr;
-	u8		*pMacAddr2;
-	u32		InitStep = 0;
-	u8		EEPROM_region;
-	u8		HwRadioOff;
-
-	//
-	// Setting default value for Linux
-	//
-	priv->sLocalPara.region_INF = REGION_AUTO;
-	priv->sLocalPara.TxRateMode = RATE_AUTO;
-	priv->sLocalPara.bMacOperationMode = MODE_802_11_BG;	// B/G mode
-	priv->Mds.TxRTSThreshold = DEFAULT_RTSThreshold;
-	priv->Mds.TxFragmentThreshold = DEFAULT_FRAGMENT_THRESHOLD;
-	hal_set_phy_type( &priv->sHwData, RF_WB_242_1 );
-	priv->sLocalPara.MTUsize = MAX_ETHERNET_PACKET_SIZE;
-	priv->sLocalPara.bPreambleMode = AUTO_MODE;
-	priv->sLocalPara.RadioOffStatus.boSwRadioOff = false;
-	pHwData = &priv->sHwData;
-	hal_set_phy_type( pHwData, RF_DECIDE_BY_INF );
-
-	//
-	// Initial each module and variable
-	//
-	if (!WBLINUX_Initial(priv)) {
-#ifdef _PE_USB_INI_DUMP_
-		WBDEBUG(("[w35und]WBNDIS initialization failed\n"));
-#endif
-		goto error;
-	}
-
-	// Initial Software variable
-	priv->sLocalPara.ShutDowned = false;
-
-	//added by ws for wep key error detection
-	priv->sLocalPara.bWepKeyError= false;
-	priv->sLocalPara.bToSelfPacketReceived = false;
-	priv->sLocalPara.WepKeyDetectTimerCount= 2 * 100; /// 2 seconds
-
-	// Initial USB hal
-	InitStep = 1;
-	pHwData = &priv->sHwData;
-	if (!hal_init_hardware(hw))
-		goto error;
-
-	EEPROM_region = hal_get_region_from_EEPROM( pHwData );
-	if (EEPROM_region != REGION_AUTO)
-		priv->sLocalPara.region = EEPROM_region;
-	else {
-		if (priv->sLocalPara.region_INF != REGION_AUTO)
-			priv->sLocalPara.region = priv->sLocalPara.region_INF;
-		else
-			priv->sLocalPara.region = REGION_USA;	//default setting
-	}
-
-	// Get Software setting flag from hal
-	priv->sLocalPara.boAntennaDiversity = false;
-	if (hal_software_set(pHwData) & 0x00000001)
-		priv->sLocalPara.boAntennaDiversity = true;
-
-	//
-	// For TS module
-	//
-	InitStep = 2;
-
-	// For MDS module
-	InitStep = 3;
-	Mds_initial(priv);
-
-	//=======================================
-	// Initialize the SME, SCAN, MLME, ROAM
-	//=======================================
-	InitStep = 4;
-	InitStep = 5;
-	InitStep = 6;
-
-	// If no user-defined address in the registry, use the addresss "burned" on the NIC instead.
-	pMacAddr = priv->sLocalPara.ThisMacAddress;
-	pMacAddr2 = priv->sLocalPara.PermanentAddress;
-	hal_get_permanent_address( pHwData, priv->sLocalPara.PermanentAddress );// Reading ethernet address from EEPROM
-	if (memcmp(pMacAddr, "\x00\x00\x00\x00\x00\x00", MAC_ADDR_LENGTH) == 0)
-		memcpy(pMacAddr, pMacAddr2, MAC_ADDR_LENGTH);
-	else {
-		// Set the user define MAC address
-		hal_set_ethernet_address(pHwData, priv->sLocalPara.ThisMacAddress);
-	}
-
-	//get current antenna
-	priv->sLocalPara.bAntennaNo = hal_get_antenna_number(pHwData);
-#ifdef _PE_STATE_DUMP_
-	WBDEBUG(("Driver init, antenna no = %d\n", psLOCAL->bAntennaNo));
-#endif
-	hal_get_hw_radio_off( pHwData );
-
-	// Waiting for HAL setting OK
-	while (!hal_idle(pHwData))
-		msleep(10);
-
-	MTO_Init(priv);
-
-	HwRadioOff = hal_get_hw_radio_off( pHwData );
-	priv->sLocalPara.RadioOffStatus.boHwRadioOff = !!HwRadioOff;
-
-	hal_set_radio_mode( pHwData, (unsigned char)(priv->sLocalPara.RadioOffStatus.boSwRadioOff || priv->sLocalPara.RadioOffStatus.boHwRadioOff) );
-
-	hal_driver_init_OK(pHwData) = 1; // Notify hal that the driver is ready now.
-	//set a tx power for reference.....
-//	sme_set_tx_power_level(priv, 12);	FIXME?
-	return true;
-
-error:
-	switch (InitStep) {
-	case 5:
-	case 4:
-	case 3: Mds_Destroy( priv );
-	case 2:
-	case 1: WBLINUX_Destroy( priv );
-		hal_halt( pHwData, NULL );
-	case 0: break;
-	}
-
-	return false;
-}
diff --git a/drivers/staging/winbond/wblinux_f.h b/drivers/staging/winbond/wblinux_f.h
index 15e6a65..f531a01 100644
--- a/drivers/staging/winbond/wblinux_f.h
+++ b/drivers/staging/winbond/wblinux_f.h
@@ -9,15 +9,10 @@
 //
 // wblinux_f.h
 //
-unsigned char WBLINUX_Initial(  struct wbsoft_priv *adapter );
 int wb35_start_xmit(struct sk_buff *skb, struct net_device *netdev );
 void WBLINUX_stop(  struct wbsoft_priv *adapter );
-void WBLINUX_Destroy(  struct wbsoft_priv *adapter );
 void wb35_set_multicast( struct net_device *netdev );
 struct net_device_stats * wb35_netdev_stats( struct net_device *netdev );
 void WBLINUX_stop(  struct wbsoft_priv *adapter );
-void WbWlanHalt(  struct wbsoft_priv *adapter );
-unsigned char WbWLanInitialize(struct ieee80211_hw *hw);
-
 
 #endif
diff --git a/drivers/staging/winbond/wbusb.c b/drivers/staging/winbond/wbusb.c
index 67847c8..673875d 100644
--- a/drivers/staging/winbond/wbusb.c
+++ b/drivers/staging/winbond/wbusb.c
@@ -7,7 +7,9 @@
 #include <linux/usb.h>
 
 #include "core.h"
+#include "mds_f.h"
 #include "mlmetxrx_f.h"
+#include "mto_f.h"
 #include "wbhal_f.h"
 #include "wblinux_f.h"
 
@@ -180,7 +182,7 @@ static u64 wbsoft_get_tsf(struct ieee80211_hw *dev)
 
 static const struct ieee80211_ops wbsoft_ops = {
 	.tx			= wbsoft_tx,
-	.start			= wbsoft_start,		/* Start can be pretty much empty as we do WbWLanInitialize() during probe? */
+	.start			= wbsoft_start,		/* Start can be pretty much empty as we do wb35_hw_init() during probe? */
 	.stop			= wbsoft_stop,
 	.add_interface		= wbsoft_add_interface,
 	.remove_interface	= wbsoft_remove_interface,
@@ -193,6 +195,124 @@ static const struct ieee80211_ops wbsoft_ops = {
 // conf_tx: hal_set_cwmin()/hal_set_cwmax;
 };
 
+static unsigned char wb35_hw_init(struct ieee80211_hw *hw)
+{
+	struct wbsoft_priv *priv = hw->priv;
+	phw_data_t	pHwData;
+	u8		*pMacAddr;
+	u8		*pMacAddr2;
+	u32		InitStep = 0;
+	u8		EEPROM_region;
+	u8		HwRadioOff;
+
+	//
+	// Setting default value for Linux
+	//
+	priv->sLocalPara.region_INF = REGION_AUTO;
+	priv->sLocalPara.TxRateMode = RATE_AUTO;
+	priv->sLocalPara.bMacOperationMode = MODE_802_11_BG;	// B/G mode
+	priv->Mds.TxRTSThreshold = DEFAULT_RTSThreshold;
+	priv->Mds.TxFragmentThreshold = DEFAULT_FRAGMENT_THRESHOLD;
+	hal_set_phy_type( &priv->sHwData, RF_WB_242_1 );
+	priv->sLocalPara.MTUsize = MAX_ETHERNET_PACKET_SIZE;
+	priv->sLocalPara.bPreambleMode = AUTO_MODE;
+	priv->sLocalPara.RadioOffStatus.boSwRadioOff = false;
+	pHwData = &priv->sHwData;
+	hal_set_phy_type( pHwData, RF_DECIDE_BY_INF );
+
+	// Initial Software variable
+	priv->sLocalPara.ShutDowned = false;
+
+	//added by ws for wep key error detection
+	priv->sLocalPara.bWepKeyError= false;
+	priv->sLocalPara.bToSelfPacketReceived = false;
+	priv->sLocalPara.WepKeyDetectTimerCount= 2 * 100; /// 2 seconds
+
+	// Initial USB hal
+	InitStep = 1;
+	pHwData = &priv->sHwData;
+	if (!hal_init_hardware(hw))
+		goto error;
+
+	EEPROM_region = hal_get_region_from_EEPROM( pHwData );
+	if (EEPROM_region != REGION_AUTO)
+		priv->sLocalPara.region = EEPROM_region;
+	else {
+		if (priv->sLocalPara.region_INF != REGION_AUTO)
+			priv->sLocalPara.region = priv->sLocalPara.region_INF;
+		else
+			priv->sLocalPara.region = REGION_USA;	//default setting
+	}
+
+	// Get Software setting flag from hal
+	priv->sLocalPara.boAntennaDiversity = false;
+	if (hal_software_set(pHwData) & 0x00000001)
+		priv->sLocalPara.boAntennaDiversity = true;
+
+	//
+	// For TS module
+	//
+	InitStep = 2;
+
+	// For MDS module
+	InitStep = 3;
+	Mds_initial(priv);
+
+	//=======================================
+	// Initialize the SME, SCAN, MLME, ROAM
+	//=======================================
+	InitStep = 4;
+	InitStep = 5;
+	InitStep = 6;
+
+	// If no user-defined address in the registry, use the addresss "burned" on the NIC instead.
+	pMacAddr = priv->sLocalPara.ThisMacAddress;
+	pMacAddr2 = priv->sLocalPara.PermanentAddress;
+	hal_get_permanent_address( pHwData, priv->sLocalPara.PermanentAddress );// Reading ethernet address from EEPROM
+	if (memcmp(pMacAddr, "\x00\x00\x00\x00\x00\x00", MAC_ADDR_LENGTH) == 0)
+		memcpy(pMacAddr, pMacAddr2, MAC_ADDR_LENGTH);
+	else {
+		// Set the user define MAC address
+		hal_set_ethernet_address(pHwData, priv->sLocalPara.ThisMacAddress);
+	}
+
+	//get current antenna
+	priv->sLocalPara.bAntennaNo = hal_get_antenna_number(pHwData);
+#ifdef _PE_STATE_DUMP_
+	WBDEBUG(("Driver init, antenna no = %d\n", psLOCAL->bAntennaNo));
+#endif
+	hal_get_hw_radio_off( pHwData );
+
+	// Waiting for HAL setting OK
+	while (!hal_idle(pHwData))
+		msleep(10);
+
+	MTO_Init(priv);
+
+	HwRadioOff = hal_get_hw_radio_off( pHwData );
+	priv->sLocalPara.RadioOffStatus.boHwRadioOff = !!HwRadioOff;
+
+	hal_set_radio_mode( pHwData, (unsigned char)(priv->sLocalPara.RadioOffStatus.boSwRadioOff || priv->sLocalPara.RadioOffStatus.boHwRadioOff) );
+
+	hal_driver_init_OK(pHwData) = 1; // Notify hal that the driver is ready now.
+	//set a tx power for reference.....
+//	sme_set_tx_power_level(priv, 12);	FIXME?
+	return true;
+
+error:
+	switch (InitStep) {
+	case 5:
+	case 4:
+	case 3: Mds_Destroy( priv );
+	case 2:
+	case 1: WBLINUX_stop(priv);
+		hal_halt( pHwData, NULL );
+	case 0: break;
+	}
+
+	return false;
+}
+
 static int wb35_probe(struct usb_interface *intf, const struct usb_device_id *id_table)
 {
 	PWBUSB		pWbUsb;
@@ -225,6 +345,8 @@ static int wb35_probe(struct usb_interface *intf, const struct usb_device_id *id
 
 	priv = dev->priv;
 
+	spin_lock_init(&priv->SpinLock);
+
 	pWbUsb = &priv->sHwData.WbUsb;
 	pWbUsb->udev = udev;
 
@@ -236,7 +358,7 @@ static int wb35_probe(struct usb_interface *intf, const struct usb_device_id *id
 		pWbUsb->IsUsb20 = 1;
 	}
 
-	if (!WbWLanInitialize(dev)) {
+	if (!wb35_hw_init(dev)) {
 		err = -EINVAL;
 		goto error_free_hw;
 	}
@@ -300,11 +422,33 @@ void packet_came(struct ieee80211_hw *hw, char *pRxBufferAddress, int PacketSize
 	ieee80211_rx_irqsafe(hw, skb, &rx_status);
 }
 
+static void wb35_hw_halt(struct wbsoft_priv *adapter)
+{
+	//---------------------
+	adapter->sLocalPara.ShutDowned = true;
+
+	Mds_Destroy( adapter );
+
+	// Turn off Rx and Tx hardware ability
+	hal_stop( &adapter->sHwData );
+#ifdef _PE_USB_INI_DUMP_
+	WBDEBUG(("[w35und] Hal_stop O.K.\n"));
+#endif
+	msleep(100);// Waiting Irp completed
+
+	// Destroy the NDIS module
+	WBLINUX_stop(adapter);
+
+	// Halt the HAL
+	hal_halt(&adapter->sHwData, NULL);
+}
+
+
 static void wb35_disconnect(struct usb_interface *intf)
 {
 	struct wbsoft_priv *priv = usb_get_intfdata(intf);
 
-	WbWlanHalt(priv);
+	wb35_hw_halt(priv);
 
 	usb_set_intfdata(intf, NULL);
 	usb_put_dev(interface_to_usbdev(intf));
-- 
1.5.3.7


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

* [PATCH 3/7] w35und: remove unused ->ShutDowned member from struct LOCAL_PARA
  2008-10-30 16:12 ` [PATCH 2/7] w35und: clean up wblinux.c a bit Pekka Enberg
@ 2008-10-30 16:12   ` Pekka Enberg
  2008-10-30 16:12     ` [PATCH 4/7] w35und: move global wbsoft_enabled to struct wbsoft_priv Pekka Enberg
  2008-10-30 19:17     ` [PATCH 3/7] w35und: remove unused ->ShutDowned member from struct LOCAL_PARA Pavel Machek
  2008-10-30 19:17   ` [PATCH 2/7] w35und: clean up wblinux.c a bit Pavel Machek
  1 sibling, 2 replies; 14+ messages in thread
From: Pekka Enberg @ 2008-10-30 16:12 UTC (permalink / raw)
  To: greg; +Cc: linux-kernel, Pekka Enberg, Pavel Machek

It's not actually read by anyone so we might as well remove it.

Cc: Pavel Machek <pavel@suse.cz>
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
---
 drivers/staging/winbond/localpara.h |    1 -
 drivers/staging/winbond/wbusb.c     |    6 ------
 2 files changed, 0 insertions(+), 7 deletions(-)

diff --git a/drivers/staging/winbond/localpara.h b/drivers/staging/winbond/localpara.h
index a308ac2..607bb05 100644
--- a/drivers/staging/winbond/localpara.h
+++ b/drivers/staging/winbond/localpara.h
@@ -149,7 +149,6 @@ typedef struct LOCAL_PARA
 
     //// power-save variables
     u8  		  	iPowerSaveMode;     // 0 indicates it is on, 1 indicates it is off
-	u8			ShutDowned;
 	u8			ATIMmode;
 	u8			ExcludeUnencrypted;
 
diff --git a/drivers/staging/winbond/wbusb.c b/drivers/staging/winbond/wbusb.c
index 673875d..0f70101 100644
--- a/drivers/staging/winbond/wbusb.c
+++ b/drivers/staging/winbond/wbusb.c
@@ -220,9 +220,6 @@ static unsigned char wb35_hw_init(struct ieee80211_hw *hw)
 	pHwData = &priv->sHwData;
 	hal_set_phy_type( pHwData, RF_DECIDE_BY_INF );
 
-	// Initial Software variable
-	priv->sLocalPara.ShutDowned = false;
-
 	//added by ws for wep key error detection
 	priv->sLocalPara.bWepKeyError= false;
 	priv->sLocalPara.bToSelfPacketReceived = false;
@@ -424,9 +421,6 @@ void packet_came(struct ieee80211_hw *hw, char *pRxBufferAddress, int PacketSize
 
 static void wb35_hw_halt(struct wbsoft_priv *adapter)
 {
-	//---------------------
-	adapter->sLocalPara.ShutDowned = true;
-
 	Mds_Destroy( adapter );
 
 	// Turn off Rx and Tx hardware ability
-- 
1.5.3.7


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

* [PATCH 4/7] w35und: move global wbsoft_enabled to struct wbsoft_priv
  2008-10-30 16:12   ` [PATCH 3/7] w35und: remove unused ->ShutDowned member from struct LOCAL_PARA Pekka Enberg
@ 2008-10-30 16:12     ` Pekka Enberg
  2008-10-30 16:12       ` [PATCH 5/7] w35und: move packet_came() to wb35rx.c Pekka Enberg
  2008-10-30 19:18       ` [PATCH 4/7] w35und: move global wbsoft_enabled to struct wbsoft_priv Pavel Machek
  2008-10-30 19:17     ` [PATCH 3/7] w35und: remove unused ->ShutDowned member from struct LOCAL_PARA Pavel Machek
  1 sibling, 2 replies; 14+ messages in thread
From: Pekka Enberg @ 2008-10-30 16:12 UTC (permalink / raw)
  To: greg; +Cc: linux-kernel, Pekka Enberg, Pavel Machek

This is a preparational step for moving packet_came() to wb35rx.c().

Cc: Pavel Machek <pavel@suse.cz>
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
---
 drivers/staging/winbond/core.h  |    2 ++
 drivers/staging/winbond/wbusb.c |   11 ++++++-----
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/staging/winbond/core.h b/drivers/staging/winbond/core.h
index 64b73bb..c6dd223 100644
--- a/drivers/staging/winbond/core.h
+++ b/drivers/staging/winbond/core.h
@@ -39,6 +39,8 @@ struct wbsoft_priv {
 	struct iw_statistics iw_stats;
 
 	u8 LinkName[WB_MAX_LINK_NAME_LEN];
+
+	bool enabled;
 };
 
 #endif /* __WINBOND_CORE_H */
diff --git a/drivers/staging/winbond/wbusb.c b/drivers/staging/winbond/wbusb.c
index 0f70101..246f20b 100644
--- a/drivers/staging/winbond/wbusb.c
+++ b/drivers/staging/winbond/wbusb.c
@@ -46,8 +46,6 @@ static struct ieee80211_supported_band wbsoft_band_2GHz = {
 	.n_bitrates	= ARRAY_SIZE(wbsoft_rates),
 };
 
-int wbsoft_enabled;
-
 static int wbsoft_add_interface(struct ieee80211_hw *dev,
 				 struct ieee80211_if_init_conf *conf)
 {
@@ -129,8 +127,10 @@ static int wbsoft_tx(struct ieee80211_hw *dev, struct sk_buff *skb)
 
 static int wbsoft_start(struct ieee80211_hw *dev)
 {
-	wbsoft_enabled = 1;
-	printk("wbsoft_start called\n");
+	struct wbsoft_priv *priv = dev->priv;
+
+	priv->enabled = true;
+
 	return 0;
 }
 
@@ -393,10 +393,11 @@ error:
 
 void packet_came(struct ieee80211_hw *hw, char *pRxBufferAddress, int PacketSize)
 {
+	struct wbsoft_priv *priv = hw->priv;
 	struct sk_buff *skb;
 	struct ieee80211_rx_status rx_status = {0};
 
-	if (!wbsoft_enabled)
+	if (!priv->enabled)
 		return;
 
 	skb = dev_alloc_skb(PacketSize);
-- 
1.5.3.7


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

* [PATCH 5/7] w35und: move packet_came() to wb35rx.c
  2008-10-30 16:12     ` [PATCH 4/7] w35und: move global wbsoft_enabled to struct wbsoft_priv Pekka Enberg
@ 2008-10-30 16:12       ` Pekka Enberg
  2008-10-30 16:12         ` [PATCH 6/7] w35und: remove ->skb_array from struct wbsoft_priv Pekka Enberg
  2008-10-30 19:19         ` [PATCH 5/7] w35und: move packet_came() to wb35rx.c Pavel Machek
  2008-10-30 19:18       ` [PATCH 4/7] w35und: move global wbsoft_enabled to struct wbsoft_priv Pavel Machek
  1 sibling, 2 replies; 14+ messages in thread
From: Pekka Enberg @ 2008-10-30 16:12 UTC (permalink / raw)
  To: greg; +Cc: linux-kernel, Pekka Enberg, Pavel Machek

The function no longer has dependencies to wbusb.c so we can move it to
wb35rx.c and make it static now.

Cc: Pavel Machek <pavel@suse.cz>
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
---
 drivers/staging/winbond/wb35rx.c |   28 +++++++++++++++++++++++++++-
 drivers/staging/winbond/wbusb.c  |   29 -----------------------------
 2 files changed, 27 insertions(+), 30 deletions(-)

diff --git a/drivers/staging/winbond/wb35rx.c b/drivers/staging/winbond/wb35rx.c
index cd5a8e1..85b861c 100644
--- a/drivers/staging/winbond/wb35rx.c
+++ b/drivers/staging/winbond/wb35rx.c
@@ -264,8 +264,34 @@ void Wb35Rx_adjust(PDESCRIPTOR pRxDes)
 	pRxDes->buffer_size[0] = BufferSize;
 }
 
-extern void packet_came(struct ieee80211_hw *hw, char *pRxBufferAddress, int PacketSize);
+static void packet_came(struct ieee80211_hw *hw, char *pRxBufferAddress, int PacketSize)
+{
+	struct wbsoft_priv *priv = hw->priv;
+	struct sk_buff *skb;
+	struct ieee80211_rx_status rx_status = {0};
+
+	if (!priv->enabled)
+		return;
+
+	skb = dev_alloc_skb(PacketSize);
+	if (!skb) {
+		printk("Not enough memory for packet, FIXME\n");
+		return;
+	}
+
+	memcpy(skb_put(skb, PacketSize),
+	       pRxBufferAddress,
+	       PacketSize);
 
+/*
+	rx_status.rate = 10;
+	rx_status.channel = 1;
+	rx_status.freq = 12345;
+	rx_status.phymode = MODE_IEEE80211B;
+*/
+
+	ieee80211_rx_irqsafe(hw, skb, &rx_status);
+}
 
 u16 Wb35Rx_indicate(struct ieee80211_hw *hw)
 {
diff --git a/drivers/staging/winbond/wbusb.c b/drivers/staging/winbond/wbusb.c
index 246f20b..b981662 100644
--- a/drivers/staging/winbond/wbusb.c
+++ b/drivers/staging/winbond/wbusb.c
@@ -391,35 +391,6 @@ error:
 	return err;
 }
 
-void packet_came(struct ieee80211_hw *hw, char *pRxBufferAddress, int PacketSize)
-{
-	struct wbsoft_priv *priv = hw->priv;
-	struct sk_buff *skb;
-	struct ieee80211_rx_status rx_status = {0};
-
-	if (!priv->enabled)
-		return;
-
-	skb = dev_alloc_skb(PacketSize);
-	if (!skb) {
-		printk("Not enough memory for packet, FIXME\n");
-		return;
-	}
-
-	memcpy(skb_put(skb, PacketSize),
-	       pRxBufferAddress,
-	       PacketSize);
-
-/*
-	rx_status.rate = 10;
-	rx_status.channel = 1;
-	rx_status.freq = 12345;
-	rx_status.phymode = MODE_IEEE80211B;
-*/
-
-	ieee80211_rx_irqsafe(hw, skb, &rx_status);
-}
-
 static void wb35_hw_halt(struct wbsoft_priv *adapter)
 {
 	Mds_Destroy( adapter );
-- 
1.5.3.7


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

* [PATCH 6/7] w35und: remove ->skb_array from struct wbsoft_priv
  2008-10-30 16:12       ` [PATCH 5/7] w35und: move packet_came() to wb35rx.c Pekka Enberg
@ 2008-10-30 16:12         ` Pekka Enberg
  2008-10-30 16:12           ` [PATCH 7/7] w35und: remove ->shutdown " Pekka Enberg
  2008-10-30 19:19           ` [PATCH 6/7] w35und: remove ->skb_array " Pavel Machek
  2008-10-30 19:19         ` [PATCH 5/7] w35und: move packet_came() to wb35rx.c Pavel Machek
  1 sibling, 2 replies; 14+ messages in thread
From: Pekka Enberg @ 2008-10-30 16:12 UTC (permalink / raw)
  To: greg; +Cc: linux-kernel, Pekka Enberg, Pavel Machek

It's not actually used for anything, so remove it.

Cc: Pavel Machek <pavel@suse.cz>
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
---
 drivers/staging/winbond/core.h    |    3 ---
 drivers/staging/winbond/wblinux.c |   16 ----------------
 2 files changed, 0 insertions(+), 19 deletions(-)

diff --git a/drivers/staging/winbond/core.h b/drivers/staging/winbond/core.h
index c6dd223..9c9d5d2 100644
--- a/drivers/staging/winbond/core.h
+++ b/drivers/staging/winbond/core.h
@@ -31,10 +31,7 @@ struct wbsoft_priv {
 	u32 RxByteCount;
 	u32 TxByteCount;
 
-	struct sk_buff *skb_array[WBLINUX_PACKET_ARRAY_SIZE];
 	struct sk_buff *packet_return;
-	s32 skb_SetIndex;
-	s32 skb_GetIndex;
 	s32 netif_state_stop;	// 1: stop  0: normal
 	struct iw_statistics iw_stats;
 
diff --git a/drivers/staging/winbond/wblinux.c b/drivers/staging/winbond/wblinux.c
index 433aa0d..0461516 100644
--- a/drivers/staging/winbond/wblinux.c
+++ b/drivers/staging/winbond/wblinux.c
@@ -19,25 +19,9 @@
 void
 WBLINUX_stop(  struct wbsoft_priv * adapter )
 {
-	struct sk_buff *pSkb;
-
 	if (atomic_inc_return(&adapter->ThreadCount) == 1) {
 		// Shutdown module immediately
 		adapter->shutdown = 1;
-
-		while (adapter->skb_array[ adapter->skb_GetIndex ]) {
-			// Trying to free the un-sending packet
-			pSkb = adapter->skb_array[ adapter->skb_GetIndex ];
-			adapter->skb_array[ adapter->skb_GetIndex ] = NULL;
-			if( in_irq() )
-				dev_kfree_skb_irq( pSkb );
-			else
-				dev_kfree_skb( pSkb );
-
-			adapter->skb_GetIndex++;
-			adapter->skb_GetIndex %= WBLINUX_PACKET_ARRAY_SIZE;
-		}
-
 #ifdef _PE_STATE_DUMP_
 		WBDEBUG(( "[w35und] SKB_RELEASE OK\n" ));
 #endif
-- 
1.5.3.7


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

* [PATCH 7/7] w35und: remove ->shutdown from struct wbsoft_priv
  2008-10-30 16:12         ` [PATCH 6/7] w35und: remove ->skb_array from struct wbsoft_priv Pekka Enberg
@ 2008-10-30 16:12           ` Pekka Enberg
  2008-10-30 19:20             ` Pavel Machek
  2008-10-30 19:19           ` [PATCH 6/7] w35und: remove ->skb_array " Pavel Machek
  1 sibling, 1 reply; 14+ messages in thread
From: Pekka Enberg @ 2008-10-30 16:12 UTC (permalink / raw)
  To: greg; +Cc: linux-kernel, Pekka Enberg, Pavel Machek

It's not actually used for anything, so remove it.

Cc: Pavel Machek <pavel@suse.cz>
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
---
 drivers/staging/winbond/Makefile    |    1 -
 drivers/staging/winbond/core.h      |    1 -
 drivers/staging/winbond/wbhal.c     |    1 -
 drivers/staging/winbond/wblinux.c   |   31 -------------------------------
 drivers/staging/winbond/wblinux_f.h |    2 --
 drivers/staging/winbond/wbusb.c     |    6 +-----
 6 files changed, 1 insertions(+), 41 deletions(-)
 delete mode 100644 drivers/staging/winbond/wblinux.c
 delete mode 100644 drivers/staging/winbond/wblinux_s.h

diff --git a/drivers/staging/winbond/Makefile b/drivers/staging/winbond/Makefile
index a93732e..d337571 100644
--- a/drivers/staging/winbond/Makefile
+++ b/drivers/staging/winbond/Makefile
@@ -9,7 +9,6 @@ w35und-objs :=			\
 	wb35rx.o		\
 	wb35tx.o		\
 	wbhal.o			\
-	wblinux.o		\
 	wbusb.o			\
 
 
diff --git a/drivers/staging/winbond/core.h b/drivers/staging/winbond/core.h
index 9c9d5d2..fe142a1 100644
--- a/drivers/staging/winbond/core.h
+++ b/drivers/staging/winbond/core.h
@@ -24,7 +24,6 @@ struct wbsoft_priv {
 	MDS Mds;
 
 	spinlock_t SpinLock;
-	u32 shutdown;
 
 	atomic_t ThreadCount;
 
diff --git a/drivers/staging/winbond/wbhal.c b/drivers/staging/winbond/wbhal.c
index d2be5fb..7ab5300 100644
--- a/drivers/staging/winbond/wbhal.c
+++ b/drivers/staging/winbond/wbhal.c
@@ -850,7 +850,6 @@ void hal_surprise_remove(struct wbsoft_priv *adapter)
 		#ifdef _PE_STATE_DUMP_
 		WBDEBUG(("Calling hal_surprise_remove\n"));
 		#endif
-		WBLINUX_stop( adapter );
 	}
 }
 
diff --git a/drivers/staging/winbond/wblinux.c b/drivers/staging/winbond/wblinux.c
deleted file mode 100644
index 0461516..0000000
--- a/drivers/staging/winbond/wblinux.c
+++ /dev/null
@@ -1,31 +0,0 @@
-//============================================================================
-//  Copyright (c) 1996-2005 Winbond Electronic Corporation
-//
-//  Module Name:
-//    wblinux.c
-//
-//  Abstract:
-//    Linux releated routines
-//
-//============================================================================
-#include <linux/netdevice.h>
-
-#include "mds_f.h"
-#include "mto_f.h"
-#include "sysdef.h"
-#include "wbhal_f.h"
-#include "wblinux_f.h"
-
-void
-WBLINUX_stop(  struct wbsoft_priv * adapter )
-{
-	if (atomic_inc_return(&adapter->ThreadCount) == 1) {
-		// Shutdown module immediately
-		adapter->shutdown = 1;
-#ifdef _PE_STATE_DUMP_
-		WBDEBUG(( "[w35und] SKB_RELEASE OK\n" ));
-#endif
-	}
-
-	atomic_dec(&adapter->ThreadCount);
-}
diff --git a/drivers/staging/winbond/wblinux_f.h b/drivers/staging/winbond/wblinux_f.h
index f531a01..868e877 100644
--- a/drivers/staging/winbond/wblinux_f.h
+++ b/drivers/staging/winbond/wblinux_f.h
@@ -10,9 +10,7 @@
 // wblinux_f.h
 //
 int wb35_start_xmit(struct sk_buff *skb, struct net_device *netdev );
-void WBLINUX_stop(  struct wbsoft_priv *adapter );
 void wb35_set_multicast( struct net_device *netdev );
 struct net_device_stats * wb35_netdev_stats( struct net_device *netdev );
-void WBLINUX_stop(  struct wbsoft_priv *adapter );
 
 #endif
diff --git a/drivers/staging/winbond/wblinux_s.h b/drivers/staging/winbond/wblinux_s.h
deleted file mode 100644
index e69de29..0000000
diff --git a/drivers/staging/winbond/wbusb.c b/drivers/staging/winbond/wbusb.c
index b981662..cb4dee5 100644
--- a/drivers/staging/winbond/wbusb.c
+++ b/drivers/staging/winbond/wbusb.c
@@ -302,8 +302,7 @@ error:
 	case 4:
 	case 3: Mds_Destroy( priv );
 	case 2:
-	case 1: WBLINUX_stop(priv);
-		hal_halt( pHwData, NULL );
+	case 1: hal_halt( pHwData, NULL );
 	case 0: break;
 	}
 
@@ -402,9 +401,6 @@ static void wb35_hw_halt(struct wbsoft_priv *adapter)
 #endif
 	msleep(100);// Waiting Irp completed
 
-	// Destroy the NDIS module
-	WBLINUX_stop(adapter);
-
 	// Halt the HAL
 	hal_halt(&adapter->sHwData, NULL);
 }
-- 
1.5.3.7


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

* Re: [PATCH 1/7] w35und: inline DRIVER_AUTHOR and DRIVER_DESC macros
  2008-10-30 16:12 [PATCH 1/7] w35und: inline DRIVER_AUTHOR and DRIVER_DESC macros Pekka Enberg
  2008-10-30 16:12 ` [PATCH 2/7] w35und: clean up wblinux.c a bit Pekka Enberg
@ 2008-10-30 19:16 ` Pavel Machek
  1 sibling, 0 replies; 14+ messages in thread
From: Pavel Machek @ 2008-10-30 19:16 UTC (permalink / raw)
  To: Pekka Enberg; +Cc: greg, linux-kernel

On Thu 2008-10-30 18:12:01, Pekka Enberg wrote:
> They're used in one place so we can inline them.

Acked-by: Pavel Machek <pavel@suse.cz>

Ok, perhaps I should add myself to the list ;-)...
								Pavel

> Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
> ---
>  drivers/staging/winbond/wbusb.c   |    4 ++--
>  drivers/staging/winbond/wbusb_s.h |    3 ---
>  2 files changed, 2 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/staging/winbond/wbusb.c b/drivers/staging/winbond/wbusb.c
> index 40bb77c..67847c8 100644
> --- a/drivers/staging/winbond/wbusb.c
> +++ b/drivers/staging/winbond/wbusb.c
> @@ -11,8 +11,8 @@
>  #include "wbhal_f.h"
>  #include "wblinux_f.h"
>  
> -MODULE_AUTHOR(DRIVER_AUTHOR);
> -MODULE_DESCRIPTION(DRIVER_DESC);
> +MODULE_AUTHOR("Original by: Jeff Lee<YY_Lee@issc.com.tw> Adapted to 2.6.x by Costantino Leandro (Rxart Desktop) <le_costantino@pixartargentina.com.ar>");
> +MODULE_DESCRIPTION("IS89C35 802.11bg WLAN USB Driver");
>  MODULE_LICENSE("GPL");
>  MODULE_VERSION("0.1");
>  
> diff --git a/drivers/staging/winbond/wbusb_s.h b/drivers/staging/winbond/wbusb_s.h
> index 1aa8ab1..1de9360 100644
> --- a/drivers/staging/winbond/wbusb_s.h
> +++ b/drivers/staging/winbond/wbusb_s.h
> @@ -28,9 +28,6 @@ typedef struct _RW_CONTEXT
>  	void*			pCallBackFunctionParameter;
>  } RW_CONTEXT, *PRW_CONTEXT;
>  
> -#define DRIVER_AUTHOR "Original by: Jeff Lee<YY_Lee@issc.com.tw> Adapted to 2.6.x by Costantino Leandro (Rxart Desktop) <le_costantino@pixartargentina.com.ar>"
> -#define DRIVER_DESC   "IS89C35 802.11bg WLAN USB Driver"
> -
>  typedef struct _WBUSB {
>  	u32	IsUsb20;
>  	struct usb_device *udev;

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

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

* Re: [PATCH 2/7] w35und: clean up wblinux.c a bit
  2008-10-30 16:12 ` [PATCH 2/7] w35und: clean up wblinux.c a bit Pekka Enberg
  2008-10-30 16:12   ` [PATCH 3/7] w35und: remove unused ->ShutDowned member from struct LOCAL_PARA Pekka Enberg
@ 2008-10-30 19:17   ` Pavel Machek
  1 sibling, 0 replies; 14+ messages in thread
From: Pavel Machek @ 2008-10-30 19:17 UTC (permalink / raw)
  To: Pekka Enberg; +Cc: greg, linux-kernel

On Thu 2008-10-30 18:12:02, Pekka Enberg wrote:
> This patch removes wrapper functions from wblinux.c and moves the hardware init
> and halt functions to wbusb.c which has the only callers of them.

Acked-by: Pavel Machek <pavel@suse.cz>

> Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
> ---
>  drivers/staging/winbond/wblinux.c   |  167 -----------------------------------
>  drivers/staging/winbond/wblinux_f.h |    5 -
>  drivers/staging/winbond/wbusb.c     |  150 ++++++++++++++++++++++++++++++-
>  3 files changed, 147 insertions(+), 175 deletions(-)
> 
> diff --git a/drivers/staging/winbond/wblinux.c b/drivers/staging/winbond/wblinux.c
> index 31f2d20..433aa0d 100644
> --- a/drivers/staging/winbond/wblinux.c
> +++ b/drivers/staging/winbond/wblinux.c
> @@ -16,22 +16,6 @@
>  #include "wbhal_f.h"
>  #include "wblinux_f.h"
>  
> -unsigned char
> -WBLINUX_Initial(struct wbsoft_priv * adapter)
> -{
> -	spin_lock_init( &adapter->SpinLock );
> -	return true;
> -}
> -
> -void
> -WBLINUX_Destroy(struct wbsoft_priv * adapter)
> -{
> -	WBLINUX_stop( adapter );
> -#ifdef _PE_USB_INI_DUMP_
> -	WBDEBUG(("[w35und] unregister_netdev!\n"));
> -#endif
> -}
> -
>  void
>  WBLINUX_stop(  struct wbsoft_priv * adapter )
>  {
> @@ -61,154 +45,3 @@ WBLINUX_stop(  struct wbsoft_priv * adapter )
>  
>  	atomic_dec(&adapter->ThreadCount);
>  }
> -
> -void
> -WbWlanHalt(  struct wbsoft_priv * adapter )
> -{
> -	//---------------------
> -	adapter->sLocalPara.ShutDowned = true;
> -
> -	Mds_Destroy( adapter );
> -
> -	// Turn off Rx and Tx hardware ability
> -	hal_stop( &adapter->sHwData );
> -#ifdef _PE_USB_INI_DUMP_
> -	WBDEBUG(("[w35und] Hal_stop O.K.\n"));
> -#endif
> -	msleep(100);// Waiting Irp completed
> -
> -	// Destroy the NDIS module
> -	WBLINUX_Destroy( adapter );
> -
> -	// Halt the HAL
> -	hal_halt(&adapter->sHwData, NULL);
> -}
> -
> -unsigned char
> -WbWLanInitialize(struct ieee80211_hw *hw)
> -{
> -	struct wbsoft_priv *priv = hw->priv;
> -	phw_data_t	pHwData;
> -	u8		*pMacAddr;
> -	u8		*pMacAddr2;
> -	u32		InitStep = 0;
> -	u8		EEPROM_region;
> -	u8		HwRadioOff;
> -
> -	//
> -	// Setting default value for Linux
> -	//
> -	priv->sLocalPara.region_INF = REGION_AUTO;
> -	priv->sLocalPara.TxRateMode = RATE_AUTO;
> -	priv->sLocalPara.bMacOperationMode = MODE_802_11_BG;	// B/G mode
> -	priv->Mds.TxRTSThreshold = DEFAULT_RTSThreshold;
> -	priv->Mds.TxFragmentThreshold = DEFAULT_FRAGMENT_THRESHOLD;
> -	hal_set_phy_type( &priv->sHwData, RF_WB_242_1 );
> -	priv->sLocalPara.MTUsize = MAX_ETHERNET_PACKET_SIZE;
> -	priv->sLocalPara.bPreambleMode = AUTO_MODE;
> -	priv->sLocalPara.RadioOffStatus.boSwRadioOff = false;
> -	pHwData = &priv->sHwData;
> -	hal_set_phy_type( pHwData, RF_DECIDE_BY_INF );
> -
> -	//
> -	// Initial each module and variable
> -	//
> -	if (!WBLINUX_Initial(priv)) {
> -#ifdef _PE_USB_INI_DUMP_
> -		WBDEBUG(("[w35und]WBNDIS initialization failed\n"));
> -#endif
> -		goto error;
> -	}
> -
> -	// Initial Software variable
> -	priv->sLocalPara.ShutDowned = false;
> -
> -	//added by ws for wep key error detection
> -	priv->sLocalPara.bWepKeyError= false;
> -	priv->sLocalPara.bToSelfPacketReceived = false;
> -	priv->sLocalPara.WepKeyDetectTimerCount= 2 * 100; /// 2 seconds
> -
> -	// Initial USB hal
> -	InitStep = 1;
> -	pHwData = &priv->sHwData;
> -	if (!hal_init_hardware(hw))
> -		goto error;
> -
> -	EEPROM_region = hal_get_region_from_EEPROM( pHwData );
> -	if (EEPROM_region != REGION_AUTO)
> -		priv->sLocalPara.region = EEPROM_region;
> -	else {
> -		if (priv->sLocalPara.region_INF != REGION_AUTO)
> -			priv->sLocalPara.region = priv->sLocalPara.region_INF;
> -		else
> -			priv->sLocalPara.region = REGION_USA;	//default setting
> -	}
> -
> -	// Get Software setting flag from hal
> -	priv->sLocalPara.boAntennaDiversity = false;
> -	if (hal_software_set(pHwData) & 0x00000001)
> -		priv->sLocalPara.boAntennaDiversity = true;
> -
> -	//
> -	// For TS module
> -	//
> -	InitStep = 2;
> -
> -	// For MDS module
> -	InitStep = 3;
> -	Mds_initial(priv);
> -
> -	//=======================================
> -	// Initialize the SME, SCAN, MLME, ROAM
> -	//=======================================
> -	InitStep = 4;
> -	InitStep = 5;
> -	InitStep = 6;
> -
> -	// If no user-defined address in the registry, use the addresss "burned" on the NIC instead.
> -	pMacAddr = priv->sLocalPara.ThisMacAddress;
> -	pMacAddr2 = priv->sLocalPara.PermanentAddress;
> -	hal_get_permanent_address( pHwData, priv->sLocalPara.PermanentAddress );// Reading ethernet address from EEPROM
> -	if (memcmp(pMacAddr, "\x00\x00\x00\x00\x00\x00", MAC_ADDR_LENGTH) == 0)
> -		memcpy(pMacAddr, pMacAddr2, MAC_ADDR_LENGTH);
> -	else {
> -		// Set the user define MAC address
> -		hal_set_ethernet_address(pHwData, priv->sLocalPara.ThisMacAddress);
> -	}
> -
> -	//get current antenna
> -	priv->sLocalPara.bAntennaNo = hal_get_antenna_number(pHwData);
> -#ifdef _PE_STATE_DUMP_
> -	WBDEBUG(("Driver init, antenna no = %d\n", psLOCAL->bAntennaNo));
> -#endif
> -	hal_get_hw_radio_off( pHwData );
> -
> -	// Waiting for HAL setting OK
> -	while (!hal_idle(pHwData))
> -		msleep(10);
> -
> -	MTO_Init(priv);
> -
> -	HwRadioOff = hal_get_hw_radio_off( pHwData );
> -	priv->sLocalPara.RadioOffStatus.boHwRadioOff = !!HwRadioOff;
> -
> -	hal_set_radio_mode( pHwData, (unsigned char)(priv->sLocalPara.RadioOffStatus.boSwRadioOff || priv->sLocalPara.RadioOffStatus.boHwRadioOff) );
> -
> -	hal_driver_init_OK(pHwData) = 1; // Notify hal that the driver is ready now.
> -	//set a tx power for reference.....
> -//	sme_set_tx_power_level(priv, 12);	FIXME?
> -	return true;
> -
> -error:
> -	switch (InitStep) {
> -	case 5:
> -	case 4:
> -	case 3: Mds_Destroy( priv );
> -	case 2:
> -	case 1: WBLINUX_Destroy( priv );
> -		hal_halt( pHwData, NULL );
> -	case 0: break;
> -	}
> -
> -	return false;
> -}
> diff --git a/drivers/staging/winbond/wblinux_f.h b/drivers/staging/winbond/wblinux_f.h
> index 15e6a65..f531a01 100644
> --- a/drivers/staging/winbond/wblinux_f.h
> +++ b/drivers/staging/winbond/wblinux_f.h
> @@ -9,15 +9,10 @@
>  //
>  // wblinux_f.h
>  //
> -unsigned char WBLINUX_Initial(  struct wbsoft_priv *adapter );
>  int wb35_start_xmit(struct sk_buff *skb, struct net_device *netdev );
>  void WBLINUX_stop(  struct wbsoft_priv *adapter );
> -void WBLINUX_Destroy(  struct wbsoft_priv *adapter );
>  void wb35_set_multicast( struct net_device *netdev );
>  struct net_device_stats * wb35_netdev_stats( struct net_device *netdev );
>  void WBLINUX_stop(  struct wbsoft_priv *adapter );
> -void WbWlanHalt(  struct wbsoft_priv *adapter );
> -unsigned char WbWLanInitialize(struct ieee80211_hw *hw);
> -
>  
>  #endif
> diff --git a/drivers/staging/winbond/wbusb.c b/drivers/staging/winbond/wbusb.c
> index 67847c8..673875d 100644
> --- a/drivers/staging/winbond/wbusb.c
> +++ b/drivers/staging/winbond/wbusb.c
> @@ -7,7 +7,9 @@
>  #include <linux/usb.h>
>  
>  #include "core.h"
> +#include "mds_f.h"
>  #include "mlmetxrx_f.h"
> +#include "mto_f.h"
>  #include "wbhal_f.h"
>  #include "wblinux_f.h"
>  
> @@ -180,7 +182,7 @@ static u64 wbsoft_get_tsf(struct ieee80211_hw *dev)
>  
>  static const struct ieee80211_ops wbsoft_ops = {
>  	.tx			= wbsoft_tx,
> -	.start			= wbsoft_start,		/* Start can be pretty much empty as we do WbWLanInitialize() during probe? */
> +	.start			= wbsoft_start,		/* Start can be pretty much empty as we do wb35_hw_init() during probe? */
>  	.stop			= wbsoft_stop,
>  	.add_interface		= wbsoft_add_interface,
>  	.remove_interface	= wbsoft_remove_interface,
> @@ -193,6 +195,124 @@ static const struct ieee80211_ops wbsoft_ops = {
>  // conf_tx: hal_set_cwmin()/hal_set_cwmax;
>  };
>  
> +static unsigned char wb35_hw_init(struct ieee80211_hw *hw)
> +{
> +	struct wbsoft_priv *priv = hw->priv;
> +	phw_data_t	pHwData;
> +	u8		*pMacAddr;
> +	u8		*pMacAddr2;
> +	u32		InitStep = 0;
> +	u8		EEPROM_region;
> +	u8		HwRadioOff;
> +
> +	//
> +	// Setting default value for Linux
> +	//
> +	priv->sLocalPara.region_INF = REGION_AUTO;
> +	priv->sLocalPara.TxRateMode = RATE_AUTO;
> +	priv->sLocalPara.bMacOperationMode = MODE_802_11_BG;	// B/G mode
> +	priv->Mds.TxRTSThreshold = DEFAULT_RTSThreshold;
> +	priv->Mds.TxFragmentThreshold = DEFAULT_FRAGMENT_THRESHOLD;
> +	hal_set_phy_type( &priv->sHwData, RF_WB_242_1 );
> +	priv->sLocalPara.MTUsize = MAX_ETHERNET_PACKET_SIZE;
> +	priv->sLocalPara.bPreambleMode = AUTO_MODE;
> +	priv->sLocalPara.RadioOffStatus.boSwRadioOff = false;
> +	pHwData = &priv->sHwData;
> +	hal_set_phy_type( pHwData, RF_DECIDE_BY_INF );
> +
> +	// Initial Software variable
> +	priv->sLocalPara.ShutDowned = false;
> +
> +	//added by ws for wep key error detection
> +	priv->sLocalPara.bWepKeyError= false;
> +	priv->sLocalPara.bToSelfPacketReceived = false;
> +	priv->sLocalPara.WepKeyDetectTimerCount= 2 * 100; /// 2 seconds
> +
> +	// Initial USB hal
> +	InitStep = 1;
> +	pHwData = &priv->sHwData;
> +	if (!hal_init_hardware(hw))
> +		goto error;
> +
> +	EEPROM_region = hal_get_region_from_EEPROM( pHwData );
> +	if (EEPROM_region != REGION_AUTO)
> +		priv->sLocalPara.region = EEPROM_region;
> +	else {
> +		if (priv->sLocalPara.region_INF != REGION_AUTO)
> +			priv->sLocalPara.region = priv->sLocalPara.region_INF;
> +		else
> +			priv->sLocalPara.region = REGION_USA;	//default setting
> +	}
> +
> +	// Get Software setting flag from hal
> +	priv->sLocalPara.boAntennaDiversity = false;
> +	if (hal_software_set(pHwData) & 0x00000001)
> +		priv->sLocalPara.boAntennaDiversity = true;
> +
> +	//
> +	// For TS module
> +	//
> +	InitStep = 2;
> +
> +	// For MDS module
> +	InitStep = 3;
> +	Mds_initial(priv);
> +
> +	//=======================================
> +	// Initialize the SME, SCAN, MLME, ROAM
> +	//=======================================
> +	InitStep = 4;
> +	InitStep = 5;
> +	InitStep = 6;
> +
> +	// If no user-defined address in the registry, use the addresss "burned" on the NIC instead.
> +	pMacAddr = priv->sLocalPara.ThisMacAddress;
> +	pMacAddr2 = priv->sLocalPara.PermanentAddress;
> +	hal_get_permanent_address( pHwData, priv->sLocalPara.PermanentAddress );// Reading ethernet address from EEPROM
> +	if (memcmp(pMacAddr, "\x00\x00\x00\x00\x00\x00", MAC_ADDR_LENGTH) == 0)
> +		memcpy(pMacAddr, pMacAddr2, MAC_ADDR_LENGTH);
> +	else {
> +		// Set the user define MAC address
> +		hal_set_ethernet_address(pHwData, priv->sLocalPara.ThisMacAddress);
> +	}
> +
> +	//get current antenna
> +	priv->sLocalPara.bAntennaNo = hal_get_antenna_number(pHwData);
> +#ifdef _PE_STATE_DUMP_
> +	WBDEBUG(("Driver init, antenna no = %d\n", psLOCAL->bAntennaNo));
> +#endif
> +	hal_get_hw_radio_off( pHwData );
> +
> +	// Waiting for HAL setting OK
> +	while (!hal_idle(pHwData))
> +		msleep(10);
> +
> +	MTO_Init(priv);
> +
> +	HwRadioOff = hal_get_hw_radio_off( pHwData );
> +	priv->sLocalPara.RadioOffStatus.boHwRadioOff = !!HwRadioOff;
> +
> +	hal_set_radio_mode( pHwData, (unsigned char)(priv->sLocalPara.RadioOffStatus.boSwRadioOff || priv->sLocalPara.RadioOffStatus.boHwRadioOff) );
> +
> +	hal_driver_init_OK(pHwData) = 1; // Notify hal that the driver is ready now.
> +	//set a tx power for reference.....
> +//	sme_set_tx_power_level(priv, 12);	FIXME?
> +	return true;
> +
> +error:
> +	switch (InitStep) {
> +	case 5:
> +	case 4:
> +	case 3: Mds_Destroy( priv );
> +	case 2:
> +	case 1: WBLINUX_stop(priv);
> +		hal_halt( pHwData, NULL );
> +	case 0: break;
> +	}
> +
> +	return false;
> +}
> +
>  static int wb35_probe(struct usb_interface *intf, const struct usb_device_id *id_table)
>  {
>  	PWBUSB		pWbUsb;
> @@ -225,6 +345,8 @@ static int wb35_probe(struct usb_interface *intf, const struct usb_device_id *id
>  
>  	priv = dev->priv;
>  
> +	spin_lock_init(&priv->SpinLock);
> +
>  	pWbUsb = &priv->sHwData.WbUsb;
>  	pWbUsb->udev = udev;
>  
> @@ -236,7 +358,7 @@ static int wb35_probe(struct usb_interface *intf, const struct usb_device_id *id
>  		pWbUsb->IsUsb20 = 1;
>  	}
>  
> -	if (!WbWLanInitialize(dev)) {
> +	if (!wb35_hw_init(dev)) {
>  		err = -EINVAL;
>  		goto error_free_hw;
>  	}
> @@ -300,11 +422,33 @@ void packet_came(struct ieee80211_hw *hw, char *pRxBufferAddress, int PacketSize
>  	ieee80211_rx_irqsafe(hw, skb, &rx_status);
>  }
>  
> +static void wb35_hw_halt(struct wbsoft_priv *adapter)
> +{
> +	//---------------------
> +	adapter->sLocalPara.ShutDowned = true;
> +
> +	Mds_Destroy( adapter );
> +
> +	// Turn off Rx and Tx hardware ability
> +	hal_stop( &adapter->sHwData );
> +#ifdef _PE_USB_INI_DUMP_
> +	WBDEBUG(("[w35und] Hal_stop O.K.\n"));
> +#endif
> +	msleep(100);// Waiting Irp completed
> +
> +	// Destroy the NDIS module
> +	WBLINUX_stop(adapter);
> +
> +	// Halt the HAL
> +	hal_halt(&adapter->sHwData, NULL);
> +}
> +
> +
>  static void wb35_disconnect(struct usb_interface *intf)
>  {
>  	struct wbsoft_priv *priv = usb_get_intfdata(intf);
>  
> -	WbWlanHalt(priv);
> +	wb35_hw_halt(priv);
>  
>  	usb_set_intfdata(intf, NULL);
>  	usb_put_dev(interface_to_usbdev(intf));

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

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

* Re: [PATCH 3/7] w35und: remove unused ->ShutDowned member from struct LOCAL_PARA
  2008-10-30 16:12   ` [PATCH 3/7] w35und: remove unused ->ShutDowned member from struct LOCAL_PARA Pekka Enberg
  2008-10-30 16:12     ` [PATCH 4/7] w35und: move global wbsoft_enabled to struct wbsoft_priv Pekka Enberg
@ 2008-10-30 19:17     ` Pavel Machek
  1 sibling, 0 replies; 14+ messages in thread
From: Pavel Machek @ 2008-10-30 19:17 UTC (permalink / raw)
  To: Pekka Enberg; +Cc: greg, linux-kernel

On Thu 2008-10-30 18:12:03, Pekka Enberg wrote:
> It's not actually read by anyone so we might as well remove it.

Acked-by: Pavel Machek <pavel@suse.cz>

> Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
> ---
>  drivers/staging/winbond/localpara.h |    1 -
>  drivers/staging/winbond/wbusb.c     |    6 ------
>  2 files changed, 0 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/staging/winbond/localpara.h b/drivers/staging/winbond/localpara.h
> index a308ac2..607bb05 100644
> --- a/drivers/staging/winbond/localpara.h
> +++ b/drivers/staging/winbond/localpara.h
> @@ -149,7 +149,6 @@ typedef struct LOCAL_PARA
>  
>      //// power-save variables
>      u8  		  	iPowerSaveMode;     // 0 indicates it is on, 1 indicates it is off
> -	u8			ShutDowned;
>  	u8			ATIMmode;
>  	u8			ExcludeUnencrypted;
>  
> diff --git a/drivers/staging/winbond/wbusb.c b/drivers/staging/winbond/wbusb.c
> index 673875d..0f70101 100644
> --- a/drivers/staging/winbond/wbusb.c
> +++ b/drivers/staging/winbond/wbusb.c
> @@ -220,9 +220,6 @@ static unsigned char wb35_hw_init(struct ieee80211_hw *hw)
>  	pHwData = &priv->sHwData;
>  	hal_set_phy_type( pHwData, RF_DECIDE_BY_INF );
>  
> -	// Initial Software variable
> -	priv->sLocalPara.ShutDowned = false;
> -
>  	//added by ws for wep key error detection
>  	priv->sLocalPara.bWepKeyError= false;
>  	priv->sLocalPara.bToSelfPacketReceived = false;
> @@ -424,9 +421,6 @@ void packet_came(struct ieee80211_hw *hw, char *pRxBufferAddress, int PacketSize
>  
>  static void wb35_hw_halt(struct wbsoft_priv *adapter)
>  {
> -	//---------------------
> -	adapter->sLocalPara.ShutDowned = true;
> -
>  	Mds_Destroy( adapter );
>  
>  	// Turn off Rx and Tx hardware ability

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

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

* Re: [PATCH 4/7] w35und: move global wbsoft_enabled to struct wbsoft_priv
  2008-10-30 16:12     ` [PATCH 4/7] w35und: move global wbsoft_enabled to struct wbsoft_priv Pekka Enberg
  2008-10-30 16:12       ` [PATCH 5/7] w35und: move packet_came() to wb35rx.c Pekka Enberg
@ 2008-10-30 19:18       ` Pavel Machek
  1 sibling, 0 replies; 14+ messages in thread
From: Pavel Machek @ 2008-10-30 19:18 UTC (permalink / raw)
  To: Pekka Enberg; +Cc: greg, linux-kernel

On Thu 2008-10-30 18:12:04, Pekka Enberg wrote:
> This is a preparational step for moving packet_came() to wb35rx.c().

Acked-by: Pavel Machek <pavel@suse.cz>


> Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
> ---
>  drivers/staging/winbond/core.h  |    2 ++
>  drivers/staging/winbond/wbusb.c |   11 ++++++-----
>  2 files changed, 8 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/staging/winbond/core.h b/drivers/staging/winbond/core.h
> index 64b73bb..c6dd223 100644
> --- a/drivers/staging/winbond/core.h
> +++ b/drivers/staging/winbond/core.h
> @@ -39,6 +39,8 @@ struct wbsoft_priv {
>  	struct iw_statistics iw_stats;
>  
>  	u8 LinkName[WB_MAX_LINK_NAME_LEN];
> +
> +	bool enabled;
>  };
>  
>  #endif /* __WINBOND_CORE_H */
> diff --git a/drivers/staging/winbond/wbusb.c b/drivers/staging/winbond/wbusb.c
> index 0f70101..246f20b 100644
> --- a/drivers/staging/winbond/wbusb.c
> +++ b/drivers/staging/winbond/wbusb.c
> @@ -46,8 +46,6 @@ static struct ieee80211_supported_band wbsoft_band_2GHz = {
>  	.n_bitrates	= ARRAY_SIZE(wbsoft_rates),
>  };
>  
> -int wbsoft_enabled;
> -
>  static int wbsoft_add_interface(struct ieee80211_hw *dev,
>  				 struct ieee80211_if_init_conf *conf)
>  {
> @@ -129,8 +127,10 @@ static int wbsoft_tx(struct ieee80211_hw *dev, struct sk_buff *skb)
>  
>  static int wbsoft_start(struct ieee80211_hw *dev)
>  {
> -	wbsoft_enabled = 1;
> -	printk("wbsoft_start called\n");
> +	struct wbsoft_priv *priv = dev->priv;
> +
> +	priv->enabled = true;
> +
>  	return 0;
>  }
>  
> @@ -393,10 +393,11 @@ error:
>  
>  void packet_came(struct ieee80211_hw *hw, char *pRxBufferAddress, int PacketSize)
>  {
> +	struct wbsoft_priv *priv = hw->priv;
>  	struct sk_buff *skb;
>  	struct ieee80211_rx_status rx_status = {0};
>  
> -	if (!wbsoft_enabled)
> +	if (!priv->enabled)
>  		return;
>  
>  	skb = dev_alloc_skb(PacketSize);

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

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

* Re: [PATCH 5/7] w35und: move packet_came() to wb35rx.c
  2008-10-30 16:12       ` [PATCH 5/7] w35und: move packet_came() to wb35rx.c Pekka Enberg
  2008-10-30 16:12         ` [PATCH 6/7] w35und: remove ->skb_array from struct wbsoft_priv Pekka Enberg
@ 2008-10-30 19:19         ` Pavel Machek
  1 sibling, 0 replies; 14+ messages in thread
From: Pavel Machek @ 2008-10-30 19:19 UTC (permalink / raw)
  To: Pekka Enberg; +Cc: greg, linux-kernel

On Thu 2008-10-30 18:12:05, Pekka Enberg wrote:
> The function no longer has dependencies to wbusb.c so we can move it to
> wb35rx.c and make it static now.

Acked-by: Pavel Machek <pavel@suse.cz>


-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

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

* Re: [PATCH 6/7] w35und: remove ->skb_array from struct wbsoft_priv
  2008-10-30 16:12         ` [PATCH 6/7] w35und: remove ->skb_array from struct wbsoft_priv Pekka Enberg
  2008-10-30 16:12           ` [PATCH 7/7] w35und: remove ->shutdown " Pekka Enberg
@ 2008-10-30 19:19           ` Pavel Machek
  1 sibling, 0 replies; 14+ messages in thread
From: Pavel Machek @ 2008-10-30 19:19 UTC (permalink / raw)
  To: Pekka Enberg; +Cc: greg, linux-kernel

On Thu 2008-10-30 18:12:06, Pekka Enberg wrote:
> It's not actually used for anything, so remove it.

Acked-by: Pavel Machek <pavel@suse.cz>

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

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

* Re: [PATCH 7/7] w35und: remove ->shutdown from struct wbsoft_priv
  2008-10-30 16:12           ` [PATCH 7/7] w35und: remove ->shutdown " Pekka Enberg
@ 2008-10-30 19:20             ` Pavel Machek
  0 siblings, 0 replies; 14+ messages in thread
From: Pavel Machek @ 2008-10-30 19:20 UTC (permalink / raw)
  To: Pekka Enberg; +Cc: greg, linux-kernel

On Thu 2008-10-30 18:12:07, Pekka Enberg wrote:
> It's not actually used for anything, so remove it.

Acked-by: Pavel Machek <pavel@suse.cz>

> Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
> ---
>  drivers/staging/winbond/Makefile    |    1 -
>  drivers/staging/winbond/core.h      |    1 -
>  drivers/staging/winbond/wbhal.c     |    1 -
>  drivers/staging/winbond/wblinux.c   |   31 -------------------------------
>  drivers/staging/winbond/wblinux_f.h |    2 --
>  drivers/staging/winbond/wbusb.c     |    6 +-----
>  6 files changed, 1 insertions(+), 41 deletions(-)
>  delete mode 100644 drivers/staging/winbond/wblinux.c
>  delete mode 100644 drivers/staging/winbond/wblinux_s.h
> 
> diff --git a/drivers/staging/winbond/Makefile b/drivers/staging/winbond/Makefile
> index a93732e..d337571 100644
> --- a/drivers/staging/winbond/Makefile
> +++ b/drivers/staging/winbond/Makefile
> @@ -9,7 +9,6 @@ w35und-objs :=			\
>  	wb35rx.o		\
>  	wb35tx.o		\
>  	wbhal.o			\
> -	wblinux.o		\
>  	wbusb.o			\
>  
>  
> diff --git a/drivers/staging/winbond/core.h b/drivers/staging/winbond/core.h
> index 9c9d5d2..fe142a1 100644
> --- a/drivers/staging/winbond/core.h
> +++ b/drivers/staging/winbond/core.h
> @@ -24,7 +24,6 @@ struct wbsoft_priv {
>  	MDS Mds;
>  
>  	spinlock_t SpinLock;
> -	u32 shutdown;
>  
>  	atomic_t ThreadCount;
>  
> diff --git a/drivers/staging/winbond/wbhal.c b/drivers/staging/winbond/wbhal.c
> index d2be5fb..7ab5300 100644
> --- a/drivers/staging/winbond/wbhal.c
> +++ b/drivers/staging/winbond/wbhal.c
> @@ -850,7 +850,6 @@ void hal_surprise_remove(struct wbsoft_priv *adapter)
>  		#ifdef _PE_STATE_DUMP_
>  		WBDEBUG(("Calling hal_surprise_remove\n"));
>  		#endif
> -		WBLINUX_stop( adapter );
>  	}
>  }
>  
> diff --git a/drivers/staging/winbond/wblinux.c b/drivers/staging/winbond/wblinux.c
> deleted file mode 100644
> index 0461516..0000000
> --- a/drivers/staging/winbond/wblinux.c
> +++ /dev/null
> @@ -1,31 +0,0 @@
> -//============================================================================
> -//  Copyright (c) 1996-2005 Winbond Electronic Corporation
> -//
> -//  Module Name:
> -//    wblinux.c
> -//
> -//  Abstract:
> -//    Linux releated routines
> -//
> -//============================================================================
> -#include <linux/netdevice.h>
> -
> -#include "mds_f.h"
> -#include "mto_f.h"
> -#include "sysdef.h"
> -#include "wbhal_f.h"
> -#include "wblinux_f.h"
> -
> -void
> -WBLINUX_stop(  struct wbsoft_priv * adapter )
> -{
> -	if (atomic_inc_return(&adapter->ThreadCount) == 1) {
> -		// Shutdown module immediately
> -		adapter->shutdown = 1;
> -#ifdef _PE_STATE_DUMP_
> -		WBDEBUG(( "[w35und] SKB_RELEASE OK\n" ));
> -#endif
> -	}
> -
> -	atomic_dec(&adapter->ThreadCount);
> -}
> diff --git a/drivers/staging/winbond/wblinux_f.h b/drivers/staging/winbond/wblinux_f.h
> index f531a01..868e877 100644
> --- a/drivers/staging/winbond/wblinux_f.h
> +++ b/drivers/staging/winbond/wblinux_f.h
> @@ -10,9 +10,7 @@
>  // wblinux_f.h
>  //
>  int wb35_start_xmit(struct sk_buff *skb, struct net_device *netdev );
> -void WBLINUX_stop(  struct wbsoft_priv *adapter );
>  void wb35_set_multicast( struct net_device *netdev );
>  struct net_device_stats * wb35_netdev_stats( struct net_device *netdev );
> -void WBLINUX_stop(  struct wbsoft_priv *adapter );
>  
>  #endif
> diff --git a/drivers/staging/winbond/wblinux_s.h b/drivers/staging/winbond/wblinux_s.h
> deleted file mode 100644
> index e69de29..0000000
> diff --git a/drivers/staging/winbond/wbusb.c b/drivers/staging/winbond/wbusb.c
> index b981662..cb4dee5 100644
> --- a/drivers/staging/winbond/wbusb.c
> +++ b/drivers/staging/winbond/wbusb.c
> @@ -302,8 +302,7 @@ error:
>  	case 4:
>  	case 3: Mds_Destroy( priv );
>  	case 2:
> -	case 1: WBLINUX_stop(priv);
> -		hal_halt( pHwData, NULL );
> +	case 1: hal_halt( pHwData, NULL );
>  	case 0: break;
>  	}
>  
> @@ -402,9 +401,6 @@ static void wb35_hw_halt(struct wbsoft_priv *adapter)
>  #endif
>  	msleep(100);// Waiting Irp completed
>  
> -	// Destroy the NDIS module
> -	WBLINUX_stop(adapter);
> -
>  	// Halt the HAL
>  	hal_halt(&adapter->sHwData, NULL);
>  }

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

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

end of thread, other threads:[~2008-10-30 19:19 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-10-30 16:12 [PATCH 1/7] w35und: inline DRIVER_AUTHOR and DRIVER_DESC macros Pekka Enberg
2008-10-30 16:12 ` [PATCH 2/7] w35und: clean up wblinux.c a bit Pekka Enberg
2008-10-30 16:12   ` [PATCH 3/7] w35und: remove unused ->ShutDowned member from struct LOCAL_PARA Pekka Enberg
2008-10-30 16:12     ` [PATCH 4/7] w35und: move global wbsoft_enabled to struct wbsoft_priv Pekka Enberg
2008-10-30 16:12       ` [PATCH 5/7] w35und: move packet_came() to wb35rx.c Pekka Enberg
2008-10-30 16:12         ` [PATCH 6/7] w35und: remove ->skb_array from struct wbsoft_priv Pekka Enberg
2008-10-30 16:12           ` [PATCH 7/7] w35und: remove ->shutdown " Pekka Enberg
2008-10-30 19:20             ` Pavel Machek
2008-10-30 19:19           ` [PATCH 6/7] w35und: remove ->skb_array " Pavel Machek
2008-10-30 19:19         ` [PATCH 5/7] w35und: move packet_came() to wb35rx.c Pavel Machek
2008-10-30 19:18       ` [PATCH 4/7] w35und: move global wbsoft_enabled to struct wbsoft_priv Pavel Machek
2008-10-30 19:17     ` [PATCH 3/7] w35und: remove unused ->ShutDowned member from struct LOCAL_PARA Pavel Machek
2008-10-30 19:17   ` [PATCH 2/7] w35und: clean up wblinux.c a bit Pavel Machek
2008-10-30 19:16 ` [PATCH 1/7] w35und: inline DRIVER_AUTHOR and DRIVER_DESC macros Pavel Machek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).