[PATCH 2/7] w35und: clean up wblinux.c a bit - Kernel

This is a discussion on [PATCH 2/7] w35und: clean up wblinux.c a bit - Kernel ; 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 Signed-off-by: Pekka Enberg --- drivers/staging/winbond/wblinux.c | 167 ----------------------------------- drivers/staging/winbond/wblinux_f.h | 5 - drivers/staging/winbond/wbusb.c ...

+ Reply to Thread
Results 1 to 9 of 9

Thread: [PATCH 2/7] w35und: clean up wblinux.c a bit

  1. [PATCH 2/7] w35und: clean up wblinux.c a bit

    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
    Signed-off-by: Pekka Enberg
    ---
    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

    #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

    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  2. [PATCH 7/7] w35und: remove ->shutdown from struct wbsoft_priv

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

    Cc: Pavel Machek
    Signed-off-by: Pekka Enberg
    ---
    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
    -
    -#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

    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  3. [PATCH 5/7] w35und: move packet_came() to wb35rx.c

    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
    Signed-off-by: Pekka Enberg
    ---
    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

    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  4. Re: [PATCH 2/7] w35und: clean up wblinux.c a bit

    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

    > Signed-off-by: Pekka Enberg
    > ---
    > 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
    >
    > #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/~pav...rses/blog.html
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  5. Re: [PATCH 6/7] w35und: remove ->skb_array from struct wbsoft_priv

    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

    --
    (english) http://www.livejournal.com/~pavelmachek
    (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pav...rses/blog.html
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  6. Re: [PATCH 7/7] w35und: remove ->shutdown from struct wbsoft_priv

    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

    > Signed-off-by: Pekka Enberg
    > ---
    > 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
    > -
    > -#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/~pav...rses/blog.html
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  7. Re: [PATCH 4/7] w35und: move global wbsoft_enabled to struct wbsoft_priv

    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


    > Signed-off-by: Pekka Enberg
    > ---
    > 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/~pav...rses/blog.html
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  8. Re: [PATCH 5/7] w35und: move packet_came() to wb35rx.c

    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


    --
    (english) http://www.livejournal.com/~pavelmachek
    (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pav...rses/blog.html
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  9. Re: [PATCH 3/7] w35und: remove unused ->ShutDowned member from struct LOCAL_PARA

    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

    > Signed-off-by: Pekka Enberg
    > ---
    > 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/~pav...rses/blog.html
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

+ Reply to Thread