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

Commit bab6f66c authored by Laurent Pinchart's avatar Laurent Pinchart Committed by Mauro Carvalho Chehab
Browse files

V4L/DVB (12327): uvcvideo: Add PROBE_DEF quirk and enable it for the MT6227 device



At least one MT6227 model crashes when receiving a GET_DEF request on the
video probe control. As the various models can't be told apart based on the
descriptors, add a PROBE_DEF quirk to avoid sending the GET_DEF request and
enable the quirk for all models.

Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@skynet.be>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 76594c53
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -1884,7 +1884,8 @@ static struct usb_device_id uvc_ids[] = {
	  .bInterfaceClass	= USB_CLASS_VIDEO,
	  .bInterfaceSubClass	= 1,
	  .bInterfaceProtocol	= 0,
	  .driver_info		= UVC_QUIRK_PROBE_MINMAX },
	  .driver_info		= UVC_QUIRK_PROBE_MINMAX
				| UVC_QUIRK_PROBE_DEF },
	/* Syntek (HP Spartan) */
	{ .match_flags		= USB_DEVICE_ID_MATCH_DEVICE
				| USB_DEVICE_ID_MATCH_INT_INFO,
+3 −0
Original line number Diff line number Diff line
@@ -128,6 +128,9 @@ static int uvc_get_video_ctrl(struct uvc_video_device *video,
	if (data == NULL)
		return -ENOMEM;

	if ((video->dev->quirks & UVC_QUIRK_PROBE_DEF) && query == UVC_GET_DEF)
		return -EIO;

	ret = __uvc_query_ctrl(video->dev, query, 0, video->streaming->intfnum,
		probe ? UVC_VS_PROBE_CONTROL : UVC_VS_COMMIT_CONTROL, data,
		size, UVC_CTRL_STREAMING_TIMEOUT);
+1 −0
Original line number Diff line number Diff line
@@ -156,6 +156,7 @@ struct uvc_xu_control {
#define UVC_QUIRK_STREAM_NO_FID		0x00000010
#define UVC_QUIRK_IGNORE_SELECTOR_UNIT	0x00000020
#define UVC_QUIRK_FIX_BANDWIDTH		0x00000080
#define UVC_QUIRK_PROBE_DEF		0x00000100

/* Format flags */
#define UVC_FMT_FLAG_COMPRESSED		0x00000001