Received: by 10.192.165.148 with SMTP id m20csp4985923imm; Tue, 8 May 2018 19:16:22 -0700 (PDT) X-Google-Smtp-Source: AB8JxZqNNo7pup355ydR8HZzj8lU5AdNVDNYTuXjJ0L8fBYZedWx9jB+CWzCLgdigOJR9lHy7LM0 X-Received: by 2002:a17:902:6903:: with SMTP id j3-v6mr22824135plk.313.1525832182226; Tue, 08 May 2018 19:16:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525832182; cv=none; d=google.com; s=arc-20160816; b=c+b5ZYTdyThUcjKjC7h7hXgsjN07WjQvOA6c5Dc5q2z+ZfOb4kbtkHGctL0JVX80zq VXEY3PlMiN4A3d/Zr9woy7fhjlnZIj9vjs6nV7viE/LZ8lw+GJIdWQNp3w0txu8T8AvS fydrA30iGspSPwPUTFjhccBe/VWBcSWgPjVXtzGixU8OXlkTxub3py705n+/haogjFyk Oj2qYsafyhtGf4PDfPYmqkoAK6VhmOzEoldYWsZKhU9zsLb6UkdshBiBp7MXTQavTa3S oMAgdJCJRaQ7s+QE8lU9afQZoS/lJ6DXFMxwYP9/ntUokaWM+oGtem/DM4AeMT3KOS3F Yy7A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:message-id:date:subject:cc :to:from:authenticated-by:arc-authentication-results; bh=03eiX/Qm9mGlFrnhKN/gupVPhP3HXZJO2oFFHOKwGPk=; b=O1Eu2TbMgDdRVpUBzfOoW9O4ZaNQzW+CYkiEpadjYpDPbfwylzzjrrx563PpZL4VhM QMIlaAd78eEdhkjUBGcpF6Chzf+YUusbuqstUsLr5F+onT1nfUktTPS64WlkR2VX8Csv lLkfUSnr8q/MYtnTFpLxSJZoU5k6UjNHDnQQCas9Ompu5nsnLnrrIOQ+FHLCuJj35mX7 h08bTmbOxcCLBRG0U9da3T/F7GMq1oMT43gYpTiArPx6MjRMe7Xf7Tp1eajddObzQ/ll aezBQ8NdDBr4U03eyok22uRI3oRvyYM2sG2Sic6Edhyy0Sqx1vLsTU+yYPF1JQYdqFqV bHlA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 43-v6si11483079plb.511.2018.05.08.19.16.05; Tue, 08 May 2018 19:16:22 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933522AbeEICNa (ORCPT + 99 others); Tue, 8 May 2018 22:13:30 -0400 Received: from rtits2.realtek.com ([211.75.126.72]:51026 "EHLO rtits2.realtek.com.tw" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932484AbeEICN3 (ORCPT ); Tue, 8 May 2018 22:13:29 -0400 Authenticated-By: X-SpamFilter-By: BOX Solutions SpamTrap 5.62 with qID w492DAUA017835, This message is accepted by code: ctaloc0852 Received: from RS-CAS01.realsil.com.cn (rsl1.realsil.com.cn [172.29.17.2] (may be forged)) by rtits2.realtek.com.tw (8.15.2/2.57/5.78) with ESMTP id w492DAUA017835; Wed, 9 May 2018 10:13:10 +0800 Received: from localhost (172.29.40.144) by RS-CAS01.realsil.com.cn (172.29.17.2) with Microsoft SMTP Server id 14.3.319.2; Wed, 9 May 2018 10:13:10 +0800 From: To: Laurent Pinchart CC: Mauro Carvalho Chehab , , , ming_qian Subject: [PATCH] media: uvcvideo: Support realtek's UVC 1.5 device Date: Wed, 9 May 2018 10:13:08 +0800 Message-ID: <1525831988-32017-1-git-send-email-ming_qian@realsil.com.cn> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [172.29.40.144] Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: ming_qian The length of UVC 1.5 video control is 48, and it id 34 for UVC 1.1. Change it to 48 for UVC 1.5 device, and the UVC 1.5 device can be recognized. More changes to the driver are needed for full UVC 1.5 compatibility. However, at least the UVC 1.5 Realtek RTS5847/RTS5852 cameras have been reported to work well. Signed-off-by: ming_qian --- drivers/media/usb/uvc/uvc_video.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/media/usb/uvc/uvc_video.c b/drivers/media/usb/uvc/uvc_video.c index aa0082f..32dfb32 100644 --- a/drivers/media/usb/uvc/uvc_video.c +++ b/drivers/media/usb/uvc/uvc_video.c @@ -171,6 +171,8 @@ static int uvc_get_video_ctrl(struct uvc_streaming *stream, int ret; size = stream->dev->uvc_version >= 0x0110 ? 34 : 26; + if (stream->dev->uvc_version >= 0x0150) + size = 48; if ((stream->dev->quirks & UVC_QUIRK_PROBE_DEF) && query == UVC_GET_DEF) return -EIO; @@ -259,6 +261,8 @@ static int uvc_set_video_ctrl(struct uvc_streaming *stream, int ret; size = stream->dev->uvc_version >= 0x0110 ? 34 : 26; + if (stream->dev->uvc_version >= 0x0150) + size = 48; data = kzalloc(size, GFP_KERNEL); if (data == NULL) return -ENOMEM; -- 2.7.4