Skip to content

Commit

Permalink
staging/easycap: replace NOREADBACK with moduel parameter
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Tomas Winkler authored and Greg Kroah-Hartman committed Feb 9, 2011
1 parent 32851b3 commit 2ef0c05
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 34 deletions.
1 change: 1 addition & 0 deletions drivers/staging/easycap/easycap.h
Original file line number Diff line number Diff line change
Expand Up @@ -657,6 +657,7 @@ extern int easycap_debug;
*/
/*---------------------------------------------------------------------------*/

extern bool easycap_readback;
extern const struct easycap_standard easycap_standard[];
extern struct easycap_format easycap_format[];
extern struct v4l2_queryctrl easycap_control[];
Expand Down
67 changes: 33 additions & 34 deletions drivers/staging/easycap/easycap_low.c
Original file line number Diff line number Diff line change
Expand Up @@ -275,54 +275,53 @@ static int regget(struct usb_device *pusb_device,

static int regset(struct usb_device *pusb_device, u16 index, u16 value)
{
int rc0, rc1;
u16 igot;
int rc;

if (!pusb_device)
return -ENODEV;

rc1 = 0; igot = 0;
rc0 = usb_control_msg(pusb_device, usb_sndctrlpipe(pusb_device, 0),
rc = usb_control_msg(pusb_device, usb_sndctrlpipe(pusb_device, 0),
0x01,
(USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE),
value, index, NULL, 0, 500);

#ifdef NOREADBACK
#
#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;
if (rc < 0)
return rc;

if (easycap_readback) {
u16 igot = 0;
rc = 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:
case 0x205:
case 0x350:
case 0x351:
if (0 != (0xFF & igot)) {
JOT(8, "unexpected 0x%02X for STK register 0x%03X\n",
igot, index);
}
break;
case 0x204:
case 0x205:
case 0x350:
case 0x351:
if (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",
default:
if ((0xFF & value) != igot)
JOT(8, "unexpected 0x%02X != 0x%02X "
"for STK register 0x%03X\n",
igot, value, index);
break;
}
break;
}
#endif /* ! NOREADBACK*/

return (0 > rc0) ? rc0 : rc1;
return rc;
}
/*****************************************************************************/

Expand Down
4 changes: 4 additions & 0 deletions drivers/staging/easycap/easycap_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -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");
#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;
module_param_named(bars, easycap_bars, int, S_IRUGO | S_IWUSR);
MODULE_PARM_DESC(bars,
Expand Down

0 comments on commit 2ef0c05

Please sign in to comment.