Commit 47aaca96 authored by Jean-Francois Moine's avatar Jean-Francois Moine Committed by Mauro Carvalho Chehab
Browse files

V4L/DVB (13866): gspca - main: Add the cam flag 'no_urb_create'.



This flag permits subdrivers to create specific transfer URBs.

Signed-off-by: default avatarJean-Francois Moine <moinejf@free.fr>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent db870875
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -607,12 +607,15 @@ static int gspca_init_transfer(struct gspca_dev *gspca_dev)
		goto out;
	}
	for (;;) {
		PDEBUG(D_STREAM, "init transfer alt %d", gspca_dev->alt);
		if (!gspca_dev->cam.no_urb_create) {
			PDEBUG(D_STREAM, "init transfer alt %d",
				gspca_dev->alt);
			ret = create_urbs(gspca_dev, ep);
			if (ret < 0) {
				destroy_urbs(gspca_dev);
				goto out;
			}
		}

		/* clear the bulk endpoint */
		if (gspca_dev->cam.bulk)
+6 −5
Original line number Diff line number Diff line
@@ -54,20 +54,21 @@ struct framerates {

/* device information - set at probe time */
struct cam {
	int bulk_size;		/* buffer size when image transfer by bulk */
	const struct v4l2_pix_format *cam_mode;	/* size nmodes */
	char nmodes;
	const struct framerates *mode_framerates; /* must have size nmode,
						   * just like cam_mode */
	__u8 bulk_nurbs;	/* number of URBs in bulk mode
	u32 bulk_size;		/* buffer size when image transfer by bulk */
	u32 input_flags;	/* value for ENUM_INPUT status flags */
	u8 nmodes;		/* size of cam_mode */
	u8 no_urb_create;	/* don't create transfer URBs */
	u8 bulk_nurbs;		/* number of URBs in bulk mode
				 * - cannot be > MAX_NURBS
				 * - when 0 and bulk_size != 0 means
				 *   1 URB and submit done by subdriver */
	u8 bulk;		/* image transfer by 0:isoc / 1:bulk */
	u8 npkt;		/* number of packets in an ISOC message
				 * 0 is the default value: 32 packets */
	u32 input_flags;	/* value for ENUM_INPUT status flags */
	char reverse_alts;	/* Alt settings are in high to low order */
	u8 reverse_alts;	/* Alt settings are in high to low order */
};

struct gspca_dev;