mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-11-01 17:08:10 +00:00
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:
parent
32851b325e
commit
2ef0c05e80
3 changed files with 38 additions and 34 deletions
|
@ -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[];
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -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,
|
||||||
|
|
Loading…
Reference in a new issue