Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2ef0c05e authored by Tomas Winkler's avatar Tomas Winkler Committed by Greg Kroah-Hartman
Browse files

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: default avatarTomas Winkler <tomas.winkler@intel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 32851b32
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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[];
+33 −34
Original line number Diff line number Diff line
@@ -275,22 +275,22 @@ 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));
	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:
@@ -306,23 +306,22 @@ static int regset(struct usb_device *pusb_device, u16 index, u16 value)
		case 0x205:
		case 0x350:
		case 0x351:
		if (0 != (0xFF & igot)) {
			JOT(8, "unexpected 0x%02X for STK register 0x%03X\n",
			if (igot)
				JOT(8, "unexpected 0x%02X "
					"for STK register 0x%03X\n",
					igot, index);
		}
			break;

		default:
		if ((0xFF & value) != (0xFF & igot)) {
			if ((0xFF & value) != 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;
	return rc;
}
/*****************************************************************************/

+4 −0
Original line number Diff line number Diff line
@@ -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,