diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-28 12:13:00 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-28 12:13:00 -0700 |
commit | f063a0c0c995d010960efcc1b2ed14b99674f25c (patch) | |
tree | 106e30acd1a58b3cf9f3c15abe1de83f1919e03b /drivers/staging/otus/zdusb.c | |
parent | 3c3762957818dc902222733a8184f23102e24472 (diff) | |
parent | 5af634789c93b97cfb314a102436716be8fbc577 (diff) | |
download | op-kernel-dev-f063a0c0c995d010960efcc1b2ed14b99674f25c.zip op-kernel-dev-f063a0c0c995d010960efcc1b2ed14b99674f25c.tar.gz |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6: (841 commits)
Staging: brcm80211: fix usage of roundup in structures
Staging: bcm: fix up network device reference counting
Staging: keucr: fix up US_ macro change
staging: brcm80211: brcmfmac: Removed codeversion from firmware filenames.
staging: brcm80211: Remove unnecessary header files.
staging: brcm80211: Remove unnecessary includes from bcmutils.c
staging: brcm80211: Removed unnecessary pktsetprio() function.
Staging: brcm80211: remove typedefs.h
Staging: brcm80211: remove uintptr typedef usage
Staging: hv: remove struct vmbus_channel_interface
Staging: hv: remove Open from struct vmbus_channel_interface
Staging: hv: storvsc: call vmbus_open directly
Staging: hv: netvsc: call vmbus_open directly
Staging: hv: channel: export vmbus_open to modules
Staging: hv: remove Close from struct vmbus_channel_interface
Staging: hv: netvsc: call vmbus_close directly
Staging: hv: storvsc: call vmbus_close directly
Staging: hv: channel: export vmbus_close to modules
Staging: hv: remove SendPacket from struct vmbus_channel_interface
Staging: hv: storvsc: call vmbus_sendpacket directly
...
Fix up conflicts in
drivers/staging/cx25821/cx25821-audio-upstream.c
drivers/staging/cx25821/cx25821-audio.h
due to warring whitespace cleanups (neither of which were all that great)
Diffstat (limited to 'drivers/staging/otus/zdusb.c')
-rw-r--r-- | drivers/staging/otus/zdusb.c | 226 |
1 files changed, 0 insertions, 226 deletions
diff --git a/drivers/staging/otus/zdusb.c b/drivers/staging/otus/zdusb.c deleted file mode 100644 index 4014b74..0000000 --- a/drivers/staging/otus/zdusb.c +++ /dev/null @@ -1,226 +0,0 @@ -/* - * Copyright (c) 2007-2008 Atheros Communications Inc. - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ -/* */ -/* Module Name : zdusb.c */ -/* */ -/* Abstract */ -/* This module contains plug and play handling for USB device driver*/ -/* */ -/* NOTES */ -/* Platform dependent. */ -/* */ -/************************************************************************/ - -#ifdef MODVERSIONS -#include <linux/modversions.h> -#endif - -#include <linux/module.h> -#include <linux/slab.h> -#include <linux/usb.h> - -#include "usbdrv.h" -#include "zdusb.h" - -int zfLnxAllocAllUrbs(struct usbdrv_private *macp); -void zfLnxFreeAllUrbs(struct usbdrv_private *macp); -void zfLnxUnlinkAllUrbs(struct usbdrv_private *macp); - -MODULE_AUTHOR("Atheros Communications"); -MODULE_DESCRIPTION("Atheros 802.11n Wireless LAN adapter"); -MODULE_LICENSE("Dual BSD/GPL"); - -static const char driver_name[] = "Otus"; - -/* table of devices that work with this driver */ -static const struct usb_device_id zd1221_ids[] = { - { USB_DEVICE(VENDOR_ATHR, PRODUCT_AR9170) }, - { USB_DEVICE(VENDOR_DLINK, PRODUCT_DWA160A) }, - { USB_DEVICE(VENDOR_NETGEAR, PRODUCT_WNDA3100) }, - { USB_DEVICE(VENDOR_NETGEAR, PRODUCT_WN111v2) }, - { } /* Terminating entry */ -}; - -MODULE_DEVICE_TABLE(usb, zd1221_ids); - -extern u8_t zfLnxInitSetup(struct net_device *dev, struct usbdrv_private *macp); -extern int usbdrv_close(struct net_device *dev); -extern u8_t zfLnxClearStructs(struct net_device *dev); -extern int zfWdsClose(struct net_device *dev); -extern int zfUnregisterWdsDev(struct net_device *parentDev, u16_t wdsId); -extern int zfLnxVapClose(struct net_device *dev); -extern int zfLnxUnregisterVapDev(struct net_device *parentDev, u16_t vapId); - -/* WDS */ -extern struct zsWdsStruct wds[ZM_WDS_PORT_NUMBER]; - -/* VAP */ -extern struct zsVapStruct vap[ZM_VAP_PORT_NUMBER]; - -static int zfLnxProbe(struct usb_interface *interface, - const struct usb_device_id *id) -{ - struct usb_device *dev = interface_to_usbdev(interface); - - struct net_device *net = NULL; - struct usbdrv_private *macp = NULL; - int vendor_id, product_id; - int result = 0; - - usb_get_dev(dev); - - vendor_id = dev->descriptor.idVendor; - product_id = dev->descriptor.idProduct; - - #ifdef HMAC_DEBUG - printk(KERN_NOTICE "vendor_id = %04x\n", vendor_id); - printk(KERN_NOTICE "product_id = %04x\n", product_id); - - if (dev->speed == USB_SPEED_HIGH) - printk(KERN_NOTICE "USB 2.0 Host\n"); - else - printk(KERN_NOTICE "USB 1.1 Host\n"); - #endif - - macp = kzalloc(sizeof(struct usbdrv_private), GFP_KERNEL); - if (!macp) { - printk(KERN_ERR "out of memory allocating device structure\n"); - result = -ENOMEM; - goto fail; - } - - net = alloc_etherdev(0); - - if (net == NULL) { - printk(KERN_ERR "zfLnxProbe: Not able to alloc etherdev struct\n"); - result = -ENOMEM; - goto fail1; - } - - strcpy(net->name, "ath%d"); - - net->ml_priv = macp; /* kernel 2.6 */ - macp->udev = dev; - macp->device = net; - - /* set up the endpoint information */ - /* check out the endpoints */ - macp->interface = interface; - - /* init_waitqueue_head(&macp->regSet_wait); */ - /* init_waitqueue_head(&macp->iorwRsp_wait); */ - /* init_waitqueue_head(&macp->term_wait); */ - - if (!zfLnxAllocAllUrbs(macp)) { - result = -ENOMEM; - goto fail2; - } - - if (!zfLnxInitSetup(net, macp)) { - result = -EIO; - goto fail3; - } else { - usb_set_intfdata(interface, macp); - SET_NETDEV_DEV(net, &interface->dev); - - if (register_netdev(net) != 0) { - usb_set_intfdata(interface, NULL); - goto fail3; - } - } - - netif_carrier_off(net); - goto done; -fail3: - zfLnxFreeAllUrbs(macp); -fail2: - free_netdev(net); /* kernel 2.6 */ -fail1: - kfree(macp); -fail: - usb_put_dev(dev); - macp = NULL; -done: - return result; -} - -static void zfLnxDisconnect(struct usb_interface *interface) -{ - struct usbdrv_private *macp = (struct usbdrv_private *) usb_get_intfdata(interface); - - printk(KERN_DEBUG "zfLnxDisconnect\n"); - - if (!macp) { - printk(KERN_ERR "unregistering non-existant device\n"); - return; - } - - if (macp->driver_isolated) - if (macp->device->flags & IFF_UP) - usbdrv_close(macp->device); - - #if 0 - /* Close WDS */ - /* zfWdsClose(wds[0].dev); */ - /* Unregister WDS */ - /* zfUnregisterWdsDev(macp->device, 0); */ - - /* Close VAP */ - zfLnxVapClose(vap[0].dev); - /* Unregister VAP */ - zfLnxUnregisterVapDev(macp->device, 0); - #endif - - zfLnxClearStructs(macp->device); - - unregister_netdev(macp->device); - - usb_put_dev(interface_to_usbdev(interface)); - - /* printk(KERN_ERR "3. zfLnxUnlinkAllUrbs\n"); */ - /* zfLnxUnlinkAllUrbs(macp); */ - - /* Free network interface */ - free_netdev(macp->device); - - zfLnxFreeAllUrbs(macp); - /* zfLnxClearStructs(macp->device); */ - kfree(macp); - macp = NULL; - - usb_set_intfdata(interface, NULL); -} - -static struct usb_driver zd1221_driver = { - .name = driver_name, - .probe = zfLnxProbe, - .disconnect = zfLnxDisconnect, - .id_table = zd1221_ids, -}; - -int __init zfLnxIinit(void) -{ - printk(KERN_NOTICE "%s - version %s\n", DRIVER_NAME, VERSIONID); - return usb_register(&zd1221_driver); -} - -void __exit zfLnxExit(void) -{ - usb_deregister(&zd1221_driver); -} - -module_init(zfLnxIinit); -module_exit(zfLnxExit); |