int write_300(struct usb_device *);
int read_vt(struct usb_device *, u16);
int write_vt(struct usb_device *, u16, u16);
-int regset(struct usb_device *, u16, u16);
-int regget(struct usb_device *, u16, void *);
int isdongle(struct easycap *);
/*---------------------------------------------------------------------------*/
struct signed_div_result {
} signed_div(long long int, long long int);
-/*---------------------------------------------------------------------------*/
-/*
- * MACROS
- */
-/*---------------------------------------------------------------------------*/
-#define GET(X, Y, Z) do { \
- int __rc; \
- *(Z) = (u16)0; \
- __rc = regget(X, Y, Z); \
- if (0 > __rc) { \
- JOT(8, ":-(%i\n", __LINE__); return __rc; \
- } \
-} while (0)
-
-#define SET(X, Y, Z) do { \
- int __rc; \
- __rc = regset(X, Y, Z); \
- if (0 > __rc) { \
- JOT(8, ":-(%i\n", __LINE__); return __rc; \
- } \
-} while (0)
/*---------------------------------------------------------------------------*/
/*
* MACROS SAM(...) AND JOM(...) ALLOW DIAGNOSTIC OUTPUT TO BE TAGGED WITH
#include "easycap.h"
+#define GET(X, Y, Z) do { \
+ int __rc; \
+ *(Z) = (u16)0; \
+ __rc = regget(X, Y, Z); \
+ if (0 > __rc) { \
+ JOT(8, ":-(%i\n", __LINE__); return __rc; \
+ } \
+} while (0)
+
+#define SET(X, Y, Z) do { \
+ int __rc; \
+ __rc = regset(X, Y, Z); \
+ if (0 > __rc) { \
+ JOT(8, ":-(%i\n", __LINE__); return __rc; \
+ } \
+} while (0)
+
/*--------------------------------------------------------------------------*/
static const struct stk1160config {
int reg;
{0xFF, 0xFF}
};
-/*--------------------------------------------------------------------------*/
+
+static int regget(struct usb_device *pusb_device, u16 index, void *pvoid)
+{
+ int rc;
+
+ if (!pusb_device)
+ return -ENODEV;
+
+ rc = usb_control_msg(pusb_device, usb_rcvctrlpipe(pusb_device, 0),
+ (u8)0x00,
+ (u8)(USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE),
+ (u16)0x00,
+ (u16)index,
+ (void *)pvoid,
+ sizeof(u8),
+ (int)50000);
+
+ return 0xFF & rc;
+}
+
+static int regset(struct usb_device *pusb_device, u16 index, u16 value)
+{
+ u16 igot;
+ int rc0, rc1;
+
+ if (!pusb_device)
+ return -ENODEV;
+
+ rc1 = 0; igot = 0;
+ rc0 = usb_control_msg(pusb_device, usb_sndctrlpipe(pusb_device, 0),
+ (u8)0x01,
+ (u8)(USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE),
+ (u16)value,
+ (u16)index,
+ NULL,
+ (u16)0,
+ (int)500);
+
+#ifdef NOREADBACK
+#
+#else
+ rc1 = usb_control_msg(pusb_device, usb_rcvctrlpipe(pusb_device, 0),
+ (u8)0x00,
+ (u8)(USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE),
+ (u16)0x00,
+ (u16)index,
+ (void *)&igot,
+ (u16)sizeof(u16),
+ (int)50000);
+ igot = 0xFF & igot;
+ switch (index) {
+ case 0x000:
+ case 0x500:
+ case 0x502:
+ case 0x503:
+ case 0x504:
+ case 0x506:
+ case 0x507:
+ break;
+
+ case 0x204:
+ case 0x205:
+ case 0x350:
+ case 0x351:
+ if (0 != (0xFF & igot)) {
+ JOT(8, "unexpected 0x%02X for STK register 0x%03X\n",
+ igot, index);
+ }
+ break;
+
+ default:
+ if ((0xFF & value) != (0xFF & igot)) {
+ JOT(8, "unexpected 0x%02X != 0x%02X "
+ "for STK register 0x%03X\n",
+ igot, value, index);
+ }
+ break;
+ }
+#endif /* ! NOREADBACK*/
+
+ return (0 > rc0) ? rc0 : rc1;
+}
+/*****************************************************************************/
/****************************************************************************/
int
return -1;
}
/****************************************************************************/
-int regset(struct usb_device *pusb_device, u16 index, u16 value)
-{
- u16 igot;
- int rc0, rc1;
-
- if (!pusb_device)
- return -ENODEV;
-
- rc1 = 0; igot = 0;
- rc0 = usb_control_msg(pusb_device, usb_sndctrlpipe(pusb_device, 0),
- (u8)0x01,
- (u8)(USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE),
- (u16)value,
- (u16)index,
- NULL,
- (u16)0,
- (int)500);
-
-#ifdef NOREADBACK
-#
-#else
- rc1 = usb_control_msg(pusb_device, usb_rcvctrlpipe(pusb_device, 0),
- (u8)0x00,
- (u8)(USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE),
- (u16)0x00,
- (u16)index,
- (void *)&igot,
- (u16)sizeof(u16),
- (int)50000);
- igot = 0xFF & igot;
- switch (index) {
- case 0x000:
- case 0x500:
- case 0x502:
- case 0x503:
- case 0x504:
- case 0x506:
- case 0x507:
- break;
-
- case 0x204:
- case 0x205:
- case 0x350:
- case 0x351:
- if (0 != (0xFF & igot)) {
- JOT(8, "unexpected 0x%02X for STK register 0x%03X\n",
- igot, index);
- }
- break;
-
- default:
- if ((0xFF & value) != (0xFF & igot)) {
- JOT(8, "unexpected 0x%02X != 0x%02X "
- "for STK register 0x%03X\n",
- igot, value, index);
- }
- break;
- }
-#endif /* ! NOREADBACK*/
-
- return (0 > rc0) ? rc0 : rc1;
-}
-/*****************************************************************************/
-int regget(struct usb_device *pusb_device, u16 index, void *pvoid)
-{
- int rc;
-
- if (!pusb_device)
- return -ENODEV;
-
- rc = usb_control_msg(pusb_device, usb_rcvctrlpipe(pusb_device, 0),
- (u8)0x00,
- (u8)(USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE),
- (u16)0x00,
- (u16)index,
- (void *)pvoid,
- sizeof(u8),
- (int)50000);
-
- return 0xFF & rc;
-}
/*****************************************************************************/
int
wakeup_device(struct usb_device *pusb_device)