Message ID | 1525831988-32017-1-git-send-email-ming_qian@realsil.com.cn (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
at 10:13, ming_qian@realsil.com.cn wrote: > From: ming_qian <ming_qian@realsil.com.cn> > > 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. I think this should also Cc: stable. Tested-by: Kai-Heng Feng <kai.heng.feng@canonical.com> > > Signed-off-by: ming_qian <ming_qian@realsil.com.cn> > --- > 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
Hi, On 09-05-18 04:13, ming_qian@realsil.com.cn wrote: > From: ming_qian <ming_qian@realsil.com.cn> > > 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 <ming_qian@realsil.com.cn> > Tested-by: Kai-Heng Feng <kai.heng.feng@canonical.com> Looks good to me: Reviewed-by: Hans de Goede <hdegoede@redhat.com> Regards, Hans > --- > 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; >
> 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 <ming_qian@realsil.com.cn> > Tested-by: Kai-Heng Feng <kai.heng.feng@canonical.com> Hello! I have sucessfully tested this patch on Kernel 4.16.1 (Fedora 28) with Dell XPS 9370 using following device (output from lsusb): Bus 001 Device 002: ID 0bda:58f4 Realtek Semiconductor Corp. You can also find related dmesg output at https://bugs.launchpad.net/dell-sputnik/+bug/1763748/comments/35 Tested-by: Josef Šimánek <josef.simanek@gmail.com> > Reviewed-by: Hans de Goede <hdegoede@redhat.com> > --- > 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;
On Wed, May 09, 2018 at 10:13:08AM +0800, ming_qian@realsil.com.cn wrote: > From: ming_qian <ming_qian@realsil.com.cn> > > 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 <ming_qian@realsil.com.cn> > Tested-by: Kai-Heng Feng <kai.heng.feng@canonical.com> > Reviewed-by: Hans de Goede <hdegoede@redhat.com> > Tested-by: Josef Šimánek <josef.simanek@gmail.com> It works perfectly here on 4.16.5 with a Dell XPS 9370 in Debian. Tested-by: Ana Guerrero Lopez <ana.guerrero@collabora.com> Cheers, Ana
On Fri, May 18, 2018 at 04:04:35PM +0200, Ana Guerrero Lopez wrote: > On Wed, May 09, 2018 at 10:13:08AM +0800, ming_qian@realsil.com.cn wrote: > > From: ming_qian <ming_qian@realsil.com.cn> > > > > 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 <ming_qian@realsil.com.cn> > > Tested-by: Kai-Heng Feng <kai.heng.feng@canonical.com> > > Reviewed-by: Hans de Goede <hdegoede@redhat.com> > > Tested-by: Josef Šimánek <josef.simanek@gmail.com> > > It works perfectly here on 4.16.5 with a Dell XPS 9370 in Debian. > > Tested-by: Ana Guerrero Lopez <ana.guerrero@collabora.com> I worked with Eilís Ní Fhlannagáin on social media who has also confirmed this to solve her camera issue with her Dell XPS 13 (I didn't get the specific model). Took a looking at linux-next today, I didn't see it. Anything else needed to get this queued up? We'd love to get this in the 4.18 merge window, and stable if possible.
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;