Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 227908
b: refs/heads/master
c: e614e28
h: refs/heads/master
v: v3
  • Loading branch information
Stephen Hemminger committed Nov 1, 2010
1 parent 415daf2 commit 55f9a8b
Show file tree
Hide file tree
Showing 9 changed files with 44 additions and 78 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 2515ab628f227b0711393993fe3228e167cc988f
refs/heads/master: e614e28eac1afcdc3d1275f3e1478aa3e5acc500
1 change: 1 addition & 0 deletions trunk/drivers/staging/bcm/Adapter.h
Original file line number Diff line number Diff line change
Expand Up @@ -623,6 +623,7 @@ struct _MINI_ADAPTER
};
typedef struct _MINI_ADAPTER MINI_ADAPTER, *PMINI_ADAPTER;

#define GET_BCM_ADAPTER(net_dev) netdev_priv(net_dev)

typedef struct _DEVICE_EXTENSION
{
Expand Down
22 changes: 1 addition & 21 deletions trunk/drivers/staging/bcm/Bcmnet.c
Original file line number Diff line number Diff line change
@@ -1,11 +1,5 @@
#include "headers.h"

#define DRV_NAME "beceem"
#define DRV_VERSION "5.2.7.3P1"
#define DRV_DESCRIPTION "Beceem Communications Inc. WiMAX driver"
#define DRV_COPYRIGHT "Copyright 2010. Beceem Communications Inc"


struct net_device *gblpnetdev;
/***************************************************************************************/
/* proto-type of lower function */
Expand Down Expand Up @@ -123,29 +117,15 @@ static const struct ethtool_ops bcm_ethtool_ops = {

int register_networkdev(PMINI_ADAPTER Adapter)
{
struct net_device *net;
PMINI_ADAPTER *temp;
PS_INTERFACE_ADAPTER psIntfAdapter = Adapter->pvInterfaceAdapter;
struct usb_interface *uintf = psIntfAdapter->interface;
struct net_device *net = Adapter->dev;
int result;

net = alloc_etherdev(sizeof(PMINI_ADAPTER));
if(!net) {
pr_notice("bcmnet: no memory for device\n");
return -ENOMEM;
}

Adapter->dev = net; /* FIXME - only allows one adapter! */
temp = netdev_priv(net);
*temp = Adapter;

net->netdev_ops = &bcmNetDevOps;
net->ethtool_ops = &bcm_ethtool_ops;
net->mtu = MTU_SIZE; /* 1400 Bytes */
net->tx_queue_len = TX_QLEN;
netif_carrier_off(net);

SET_NETDEV_DEV(net, &uintf->dev);
SET_NETDEV_DEVTYPE(net, &wimax_type);

/* Read the MAC Address from EEPROM */
Expand Down
43 changes: 19 additions & 24 deletions trunk/drivers/staging/bcm/InterfaceInit.c
Original file line number Diff line number Diff line change
Expand Up @@ -182,30 +182,27 @@ static struct usb_class_driver usbbcm_class = {
static int
usbbcm_device_probe(struct usb_interface *intf, const struct usb_device_id *id)
{
int retval =0 ;
PMINI_ADAPTER psAdapter = NULL;
PS_INTERFACE_ADAPTER psIntfAdapter = NULL;
struct usb_device *udev = NULL;

// BCM_DEBUG_PRINT(Adapter,DBG_TYPE_INITEXIT, DRV_ENTRY, DBG_LVL_ALL, "Usbbcm probe!!");
if((intf == NULL) || (id == NULL))
{
// BCM_DEBUG_PRINT(Adapter,DBG_TYPE_INITEXIT, DRV_ENTRY, DBG_LVL_ALL, "intf or id is NULL");
return -EINVAL;
}

/* Allocate Adapter structure */
if((psAdapter = kzalloc(sizeof(MINI_ADAPTER), GFP_KERNEL)) == NULL)
{
BCM_DEBUG_PRINT(psAdapter,DBG_TYPE_PRINTK, 0, 0, "Out of memory");
struct usb_device *udev = interface_to_usbdev (intf);
int retval;
PMINI_ADAPTER psAdapter;
PS_INTERFACE_ADAPTER psIntfAdapter;
struct net_device *ndev;

ndev = alloc_etherdev(sizeof(MINI_ADAPTER));
if(ndev == NULL) {
dev_err(&udev->dev, DRV_NAME ": no memory for device\n");
return -ENOMEM;
}

SET_NETDEV_DEV(ndev, &intf->dev);

psAdapter = netdev_priv(ndev);
psAdapter->dev = ndev;

/* Init default driver debug state */

psAdapter->stDebugState.debug_level = debug_level;
psAdapter->stDebugState.type = DBG_TYPE_INITEXIT;
memset (psAdapter->stDebugState.subtype, 0, sizeof (psAdapter->stDebugState.subtype));

/* Technically, one can start using BCM_DEBUG_PRINT after this point.
* However, realize that by default the Type/Subtype bitmaps are all zero now;
Expand All @@ -224,22 +221,21 @@ usbbcm_device_probe(struct usb_interface *intf, const struct usb_device_id *id)
retval = InitAdapter(psAdapter);
if(retval)
{
BCM_DEBUG_PRINT (psAdapter,DBG_TYPE_INITEXIT, DRV_ENTRY, DBG_LVL_ALL, "InitAdapter Failed\n");
dev_err(&udev->dev, DRV_NAME ": InitAdapter Failed\n");
AdapterFree(psAdapter);
return retval;
}

/* Allocate interface adapter structure */
if((psAdapter->pvInterfaceAdapter =
kmalloc(sizeof(S_INTERFACE_ADAPTER), GFP_KERNEL)) == NULL)
psIntfAdapter = kzalloc(sizeof(S_INTERFACE_ADAPTER), GFP_KERNEL);
if (psIntfAdapter == NULL)
{
BCM_DEBUG_PRINT(psAdapter,DBG_TYPE_PRINTK, 0, 0, "Out of memory");
dev_err(&udev->dev, DRV_NAME ": no memory for Interface adapter\n");
AdapterFree (psAdapter);
return -ENOMEM;
}
memset(psAdapter->pvInterfaceAdapter, 0, sizeof(S_INTERFACE_ADAPTER));

psIntfAdapter = InterfaceAdapterGet(psAdapter);
psAdapter->pvInterfaceAdapter = psIntfAdapter;
psIntfAdapter->psAdapter = psAdapter;

/* Store usb interface in Interface Adapter */
Expand Down Expand Up @@ -276,7 +272,6 @@ usbbcm_device_probe(struct usb_interface *intf, const struct usb_device_id *id)
}
}

udev = interface_to_usbdev (intf);
/* Check whether the USB-Device Supports remote Wake-Up */
if(USB_CONFIG_ATT_WAKEUP & udev->actconfig->desc.bmAttributes)
{
Expand Down
11 changes: 0 additions & 11 deletions trunk/drivers/staging/bcm/InterfaceMisc.c
Original file line number Diff line number Diff line change
@@ -1,16 +1,5 @@
#include "headers.h"


PS_INTERFACE_ADAPTER
InterfaceAdapterGet(PMINI_ADAPTER psAdapter)
{
if(psAdapter == NULL)
{
return NULL;
}
return (PS_INTERFACE_ADAPTER)(psAdapter->pvInterfaceAdapter);
}

INT
InterfaceRDM(PS_INTERFACE_ADAPTER psIntfAdapter,
UINT addr,
Expand Down
3 changes: 0 additions & 3 deletions trunk/drivers/staging/bcm/InterfaceMisc.h
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
#ifndef __INTERFACE_MISC_H
#define __INTERFACE_MISC_H

PS_INTERFACE_ADAPTER
InterfaceAdapterGet(PMINI_ADAPTER psAdapter);

INT
InterfaceRDM(PS_INTERFACE_ADAPTER psIntfAdapter,
UINT addr,
Expand Down
1 change: 0 additions & 1 deletion trunk/drivers/staging/bcm/Macros.h
Original file line number Diff line number Diff line change
Expand Up @@ -354,7 +354,6 @@ enum eAbortPattern {
ABORT_IDLE_SYNCDOWN = 3
};

#define GET_BCM_ADAPTER(net_dev) (net_dev ? netdev_priv(net_dev) : NULL)

/* Offsets used by driver in skb cb variable */
#define SKB_CB_CLASSIFICATION_OFFSET 0
Expand Down
33 changes: 16 additions & 17 deletions trunk/drivers/staging/bcm/Misc.c
Original file line number Diff line number Diff line change
Expand Up @@ -108,49 +108,48 @@ InitAdapter(PMINI_ADAPTER psAdapter)

VOID AdapterFree(PMINI_ADAPTER Adapter)
{
INT count = 0;
int count;

beceem_protocol_reset(Adapter);

vendorextnExit(Adapter);

if(Adapter->control_packet_handler && !IS_ERR(Adapter->control_packet_handler))
kthread_stop (Adapter->control_packet_handler);

if(Adapter->transmit_packet_thread && !IS_ERR(Adapter->transmit_packet_thread))
kthread_stop (Adapter->transmit_packet_thread);
wake_up(&Adapter->process_read_wait_queue);
kthread_stop (Adapter->transmit_packet_thread);

wake_up(&Adapter->process_read_wait_queue);

if(Adapter->LEDInfo.led_thread_running & (BCM_LED_THREAD_RUNNING_ACTIVELY | BCM_LED_THREAD_RUNNING_INACTIVELY))
kthread_stop (Adapter->LEDInfo.led_cntrl_threadid);

bcm_unregister_networkdev(Adapter);

/* FIXME: use proper wait_event and refcounting */
while(atomic_read(&Adapter->ApplicationRunning))
{
BCM_DEBUG_PRINT(Adapter,DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "Waiting for Application to close.. %d\n",atomic_read(&Adapter->ApplicationRunning));
msleep(100);
}
unregister_control_device_interface(Adapter);
if(Adapter->dev && !IS_ERR(Adapter->dev))
free_netdev(Adapter->dev);
if(Adapter->pstargetparams != NULL)
{
kfree(Adapter->pstargetparams);
}

kfree(Adapter->pstargetparams);

for (count =0;count < MAX_CNTRL_PKTS;count++)
{
if(Adapter->txctlpacket[count])
kfree(Adapter->txctlpacket[count]);
}
kfree(Adapter->txctlpacket[count]);

FreeAdapterDsxBuffer(Adapter);

if(Adapter->pvInterfaceAdapter)
kfree(Adapter->pvInterfaceAdapter);
kfree(Adapter->pvInterfaceAdapter);

//Free the PHS Interface
PhsCleanup(&Adapter->stBCMPhsContext);

BcmDeAllocFlashCSStructure(Adapter);

kfree(Adapter);
BCM_DEBUG_PRINT(Adapter,DBG_TYPE_INITEXIT, MP_INIT, DBG_LVL_ALL, "<========\n");
free_netdev(Adapter->dev);
}


Expand Down
6 changes: 6 additions & 0 deletions trunk/drivers/staging/bcm/headers.h
Original file line number Diff line number Diff line change
Expand Up @@ -74,5 +74,11 @@
#include "InterfaceIdleMode.h"
#include "InterfaceInit.h"

#define DRV_NAME "beceem"
#define DEV_NAME "tarang"
#define DRV_DESCRIPTION "Beceem Communications Inc. WiMAX driver"
#define DRV_COPYRIGHT "Copyright 2010. Beceem Communications Inc"
#define DRV_VERSION VER_FILEVERSION_STR
#define PFX DRV_NAME " "

#endif

0 comments on commit 55f9a8b

Please sign in to comment.