diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2010-10-28 09:44:56 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-10-28 09:44:56 -0700 |
commit | e4c5bf8e3dca827a1b3a6fac494eae8c74b7e1e7 (patch) | |
tree | ea51b391f7d74ca695dcb9f5e46eb02688a92ed9 /drivers/staging/otus/wrap_usb.c | |
parent | 81280572ca6f54009edfa4deee563e8678784218 (diff) | |
parent | a4ac0d847af9dd34d5953a5e264400326144b6b2 (diff) | |
download | op-kernel-dev-e4c5bf8e3dca827a1b3a6fac494eae8c74b7e1e7.zip op-kernel-dev-e4c5bf8e3dca827a1b3a6fac494eae8c74b7e1e7.tar.gz |
Merge 'staging-next' to Linus's tree
This merges the staging-next tree to Linus's tree and resolves
some conflicts that were present due to changes in other trees that were
affected by files here.
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/otus/wrap_usb.c')
-rw-r--r-- | drivers/staging/otus/wrap_usb.c | 187 |
1 files changed, 0 insertions, 187 deletions
diff --git a/drivers/staging/otus/wrap_usb.c b/drivers/staging/otus/wrap_usb.c deleted file mode 100644 index 9f04047..0000000 --- a/drivers/staging/otus/wrap_usb.c +++ /dev/null @@ -1,187 +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 : wrap_usb.c */ -/* */ -/* Abstract */ -/* This module contains wrapper functions for USB management */ -/* */ -/* NOTES */ -/* Platform dependent. */ -/* */ -/************************************************************************/ - -#include "oal_dt.h" -#include "usbdrv.h" - -#include <linux/netlink.h> -#include <linux/slab.h> -#include <net/iw_handler.h> - -extern void zfLnxInitUsbTxQ(zdev_t *dev); -extern void zfLnxInitUsbRxQ(zdev_t *dev); -extern u32_t zfLnxSubmitRegInUrb(zdev_t *dev); -u32_t zfLnxUsbOut(zdev_t *dev, u8_t *hdr, u16_t hdrlen, u8_t *snap, - u16_t snapLen, u8_t *tail, u16_t tailLen, zbuf_t *buf, - u16_t offset); -u32_t zfLnxUsbWriteReg(zdev_t *dev, u32_t *cmd, u16_t cmdLen); - -void zfwUsbRegisterCallBack(zdev_t *dev, struct zfCbUsbFuncTbl *zfUsbFunc) -{ - struct usbdrv_private *macp = dev->ml_priv; - - macp->usbCbFunctions.zfcbUsbRecv = zfUsbFunc->zfcbUsbRecv; - macp->usbCbFunctions.zfcbUsbRegIn = zfUsbFunc->zfcbUsbRegIn; - macp->usbCbFunctions.zfcbUsbOutComplete = zfUsbFunc->zfcbUsbOutComplete; - - return; -} - -u32_t zfwUsbGetFreeTxQSize(zdev_t *dev) -{ - struct usbdrv_private *macp = dev->ml_priv; - u32_t freeTxQSize; - unsigned long irqFlag; - /* zmw_declare_for_critical_section(); */ - - /* zmw_enter_critical_section(dev); */ - spin_lock_irqsave(&macp->cs_lock, irqFlag); - - freeTxQSize = ZM_MAX_TX_BUF_NUM - macp->TxBufCnt; - - /* zmw_leave_critical_section(dev); */ - spin_unlock_irqrestore(&macp->cs_lock, irqFlag); - - return freeTxQSize; -} - -u32_t zfwUsbGetMaxTxQSize(zdev_t *dev) -{ - return ZM_MAX_TX_BUF_NUM; -} - -u32_t zfwUsbEnableIntEpt(zdev_t *dev, u8_t endpt) -{ - /* Initialize USB TxQ */ - zfLnxInitUsbTxQ(dev); - - /* Initialize USB RxQ */ - zfLnxInitUsbRxQ(dev); - - /* Initialize USB Register In URB */ - /* zfwUsbSubmitRegIn(dev); */ - /* Initialize USB Register In URB */ - zfLnxSubmitRegInUrb(dev); - - return 0; -} - -int zfwUsbEnableRxEpt(zdev_t *dev, u8_t endpt) -{ - return 0; -} - -u32_t zfwUsbSubmitControl(zdev_t *dev, u8_t req, u16_t value, u16_t index, - void *data, u32_t size) -{ - int result = 0; - u32_t ret = 0; - struct usbdrv_private *macp = dev->ml_priv; - u8_t *buf; - - if (size > 0) { - buf = kmalloc(size, GFP_KERNEL); - if (buf == NULL) { - pr_err("zfwUsbSubmitControl() failed, " - "kmalloc() returned NULL\n"); - return 1; - } - memcpy(buf, (u8_t *)data, size); - } else - buf = NULL; - -#if 0 - printk(KERN_ERR "req = 0x%02x\n", req); - printk(KERN_ERR "value = 0x%04x\n", value); - printk(KERN_ERR "index = 0x%04x\n", index); - printk(KERN_ERR "data = 0x%lx\n", (u32_t) data); - printk(KERN_ERR "size = %ld\n", size); -#endif - - result = usb_control_msg(macp->udev, usb_sndctrlpipe(macp->udev, 0), - req, USB_DIR_OUT | 0x40, value, index, buf, size, HZ); - - if (result < 0) { - printk(KERN_ERR "zfwUsbSubmitControl() failed, result = 0x%x\n", - result); - ret = 1; - } - kfree(buf); - - return ret; -} - -void zfwUsbCmd(zdev_t *dev, u8_t endpt, u32_t *cmd, u16_t cmdLen) -{ - struct usbdrv_private *macp = dev->ml_priv; - u32_t ret; - - /* MPUsbCommand(dev, endpt, cmd, cmdLen); */ - ret = zfLnxUsbWriteReg(dev, cmd, cmdLen); - - /* - * if zfLnxUsbWriteReg() return error, free and allocate urb, - * resend again - */ - if (ret != 0) { - usb_free_urb(macp->RegOutUrb); - macp->RegOutUrb = usb_alloc_urb(0, GFP_ATOMIC); - ret = zfLnxUsbWriteReg(dev, cmd, cmdLen); - } -} - -u32_t zfwUsbSend(zdev_t *dev, u8_t endpt, u8_t *hdr, u16_t hdrlen, u8_t *snap, - u16_t snapLen, u8_t *tail, u16_t tailLen, - zbuf_t *buf, u16_t offset) -{ - u32_t status; - -#ifdef ZM_CONFIG_BIG_ENDIAN - u32_t ii = 0; - u16_t *pc = NULL; - - pc = (u16_t *)hdr; - for (ii = 0; ii < (hdrlen >> 1); ii++) - pc[ii] = cpu_to_le16(pc[ii]); - - pc = (u16_t *)snap; - for (ii = 0; ii < (snapLen >> 1); ii++) - pc[ii] = cpu_to_le16(pc[ii]); - - pc = (u16_t *)tail; - for (ii = 0; ii < (tailLen>>1); ii++) - pc[ii] = cpu_to_le16(pc[ii]); -#endif - - status = zfLnxUsbOut(dev, hdr, hdrlen, snap, snapLen, tail, tailLen, - buf, offset); - if (status == 0) - return 0; - else - return 1; -} - -/* Leave an empty line below to remove warning message on some compiler */ |