Merge tag 'staging-3.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh...
[cascardo/linux.git] / drivers / staging / vt6656 / usbpipe.c
index 76fa19e..e4751b7 100644 (file)
  * Date: Mar. 29, 2005
  *
  * Functions:
- *      CONTROLnsRequestOut - Write variable length bytes to MEM/BB/MAC/EEPROM
- *      CONTROLnsRequestIn - Read variable length bytes from MEM/BB/MAC/EEPROM
- *      ControlvWriteByte - Write one byte to MEM/BB/MAC/EEPROM
- *      ControlvReadByte - Read one byte from MEM/BB/MAC/EEPROM
+ *     vnt_control_out - Write variable length bytes to MEM/BB/MAC/EEPROM
+ *     vnt_control_in - Read variable length bytes from MEM/BB/MAC/EEPROM
+ *     vnt_control_out_u8 - Write one byte to MEM/BB/MAC/EEPROM
+ *     vnt_control_in_u8 - Read one byte from MEM/BB/MAC/EEPROM
  *      ControlvMaskByte - Read one byte from MEM/BB/MAC/EEPROM and clear/set some bits in the same address
  *
  * Revision History:
@@ -41,9 +41,9 @@
 #include "int.h"
 #include "rxtx.h"
 #include "dpc.h"
-#include "control.h"
 #include "desc.h"
 #include "device.h"
+#include "usbpipe.h"
 
 //endpoint def
 //endpoint 0: control
@@ -61,7 +61,7 @@ static void s_nsInterruptUsbIoCompleteRead(struct urb *urb);
 static void s_nsBulkInUsbIoCompleteRead(struct urb *urb);
 static void s_nsBulkOutIoCompleteWrite(struct urb *urb);
 
-int PIPEnsControlOut(struct vnt_private *priv, u8 request, u16 value,
+int vnt_control_out(struct vnt_private *priv, u8 request, u16 value,
                u16 index, u16 length, u8 *buffer)
 {
        int status = 0;
@@ -83,28 +83,40 @@ int PIPEnsControlOut(struct vnt_private *priv, u8 request, u16 value,
        return STATUS_SUCCESS;
 }
 
-int PIPEnsControlIn(struct vnt_private *pDevice, u8 byRequest, u16 wValue,
-       u16 wIndex, u16 wLength, u8 *pbyBuffer)
+void vnt_control_out_u8(struct vnt_private *priv, u8 reg, u8 reg_off, u8 data)
 {
-       int ntStatus;
+       vnt_control_out(priv, MESSAGE_TYPE_WRITE,
+                                       reg_off, reg, sizeof(u8), &data);
+}
 
-       if (pDevice->Flags & fMP_DISCONNECTED)
+int vnt_control_in(struct vnt_private *priv, u8 request, u16 value,
+               u16 index, u16 length, u8 *buffer)
+{
+       int status;
+
+       if (priv->Flags & fMP_DISCONNECTED)
                return STATUS_FAILURE;
 
-       mutex_lock(&pDevice->usb_lock);
+       mutex_lock(&priv->usb_lock);
 
-       ntStatus = usb_control_msg(pDevice->usb,
-               usb_rcvctrlpipe(pDevice->usb, 0), byRequest, 0xc0, wValue,
-                       wIndex, pbyBuffer, wLength, USB_CTL_WAIT);
+       status = usb_control_msg(priv->usb,
+               usb_rcvctrlpipe(priv->usb, 0), request, 0xc0, value,
+                       index, buffer, length, USB_CTL_WAIT);
 
-       mutex_unlock(&pDevice->usb_lock);
+       mutex_unlock(&priv->usb_lock);
 
-       if (ntStatus < (int)wLength)
+       if (status < (int)length)
                return STATUS_FAILURE;
 
        return STATUS_SUCCESS;
 }
 
+void vnt_control_in_u8(struct vnt_private *priv, u8 reg, u8 reg_off, u8 *data)
+{
+       vnt_control_in(priv, MESSAGE_TYPE_READ,
+                       reg_off, reg, sizeof(u8), data);
+}
+
 /*
  * Description:
  *      Allocates an usb interrupt in irp and calls USBD.