Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 235882
b: refs/heads/master
c: 73132ce
h: refs/heads/master
v: v3
  • Loading branch information
Tomas Winkler authored and Greg Kroah-Hartman committed Feb 9, 2011
1 parent bbeae2c commit b5dd928
Show file tree
Hide file tree
Showing 3 changed files with 101 additions and 106 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: 4d59fde3d18a8adc8d35ff595daf1253783d3847
refs/heads/master: 73132ce45a011ef76340e3d6393e79d8377e4312
23 changes: 0 additions & 23 deletions trunk/drivers/staging/easycap/easycap.h
Original file line number Diff line number Diff line change
Expand Up @@ -575,8 +575,6 @@ int stop_100(struct usb_device *);
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 {
Expand All @@ -585,27 +583,6 @@ 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
Expand Down
182 changes: 100 additions & 82 deletions trunk/drivers/staging/easycap/easycap_low.c
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,23 @@

#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;
Expand Down Expand Up @@ -238,7 +255,89 @@ static const struct saa7113config saa7113configNTSC[256] = {

{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
Expand Down Expand Up @@ -903,87 +1002,6 @@ for (k = 0; k < max; k++) {
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)
Expand Down

0 comments on commit b5dd928

Please sign in to comment.