staging/easycap: replace NOREADBACK with moduel parameter

NOREADBACK doesn't justify Kconfig option so we use module
paramter for it.

Cc: Mike Thomas <rmthomas@sciolus.org>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
Tomas Winkler 2011-02-09 01:12:51 +02:00 committed by Greg Kroah-Hartman
parent 32851b325e
commit 2ef0c05e80
3 changed files with 38 additions and 34 deletions

View file

@ -657,6 +657,7 @@ extern int easycap_debug;
*/ */
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
extern bool easycap_readback;
extern const struct easycap_standard easycap_standard[]; extern const struct easycap_standard easycap_standard[];
extern struct easycap_format easycap_format[]; extern struct easycap_format easycap_format[];
extern struct v4l2_queryctrl easycap_control[]; extern struct v4l2_queryctrl easycap_control[];

View file

@ -275,54 +275,53 @@ static int regget(struct usb_device *pusb_device,
static int regset(struct usb_device *pusb_device, u16 index, u16 value) static int regset(struct usb_device *pusb_device, u16 index, u16 value)
{ {
int rc0, rc1; int rc;
u16 igot;
if (!pusb_device) if (!pusb_device)
return -ENODEV; return -ENODEV;
rc1 = 0; igot = 0; rc = usb_control_msg(pusb_device, usb_sndctrlpipe(pusb_device, 0),
rc0 = usb_control_msg(pusb_device, usb_sndctrlpipe(pusb_device, 0),
0x01, 0x01,
(USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE), (USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE),
value, index, NULL, 0, 500); value, index, NULL, 0, 500);
#ifdef NOREADBACK if (rc < 0)
# return rc;
#else
rc1 = regget(pusb_device, index, &igot, sizeof(igot));
igot = 0xFF & igot;
switch (index) {
case 0x000:
case 0x500:
case 0x502:
case 0x503:
case 0x504:
case 0x506:
case 0x507:
break;
case 0x204: if (easycap_readback) {
case 0x205: u16 igot = 0;
case 0x350: rc = regget(pusb_device, index, &igot, sizeof(igot));
case 0x351: igot = 0xFF & igot;
if (0 != (0xFF & igot)) { switch (index) {
JOT(8, "unexpected 0x%02X for STK register 0x%03X\n", case 0x000:
igot, index); case 0x500:
} case 0x502:
break; case 0x503:
case 0x504:
case 0x506:
case 0x507:
break;
default: case 0x204:
if ((0xFF & value) != (0xFF & igot)) { case 0x205:
JOT(8, "unexpected 0x%02X != 0x%02X " case 0x350:
"for STK register 0x%03X\n", case 0x351:
if (igot)
JOT(8, "unexpected 0x%02X "
"for STK register 0x%03X\n",
igot, index);
break;
default:
if ((0xFF & value) != igot)
JOT(8, "unexpected 0x%02X != 0x%02X "
"for STK register 0x%03X\n",
igot, value, index); igot, value, index);
break;
} }
break;
} }
#endif /* ! NOREADBACK*/
return (0 > rc0) ? rc0 : rc1; return rc;
} }
/*****************************************************************************/ /*****************************************************************************/

View file

@ -42,6 +42,10 @@ module_param_named(debug, easycap_debug, int, S_IRUGO | S_IWUSR);
MODULE_PARM_DESC(debug, "Debug level: 0(default),1,2,...,9"); MODULE_PARM_DESC(debug, "Debug level: 0(default),1,2,...,9");
#endif /* CONFIG_EASYCAP_DEBUG */ #endif /* CONFIG_EASYCAP_DEBUG */
bool easycap_readback;
module_param_named(readback, easycap_readback, bool, S_IRUGO | S_IWUSR);
MODULE_PARM_DESC(readback, "read back written registers: (default false)");
static int easycap_bars = 1; static int easycap_bars = 1;
module_param_named(bars, easycap_bars, int, S_IRUGO | S_IWUSR); module_param_named(bars, easycap_bars, int, S_IRUGO | S_IWUSR);
MODULE_PARM_DESC(bars, MODULE_PARM_DESC(bars,