2017-12-26 02:55:28

by Lipengcheng

[permalink] [raw]
Subject: [PATCH] usb: gadget: uvc:change the UVC_NUM_REQUESTS value

The value is 4, it can cache four descriptors. When streaming_interval = 1,
it can tolerate 500us. Some busy scenes, it may be more than 500us because
cpu scheduling is not timely. There will have some problems. It is better
set to eight.

Signed-off-by: Pengcheng Li <[email protected]>
---
drivers/usb/gadget/function/uvc.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/gadget/function/uvc.h b/drivers/usb/gadget/function/uvc.h
index a64e07e..901487e 100644
--- a/drivers/usb/gadget/function/uvc.h
+++ b/drivers/usb/gadget/function/uvc.h
@@ -90,7 +90,7 @@ extern unsigned int uvc_gadget_trace_param;
* Driver specific constants
*/

-#define UVC_NUM_REQUESTS 4
+#define UVC_NUM_REQUESTS 8
#define UVC_MAX_REQUEST_SIZE 64
#define UVC_MAX_EVENTS 4

--
2.7.4



2017-12-26 05:00:41

by Manu Gautam

[permalink] [raw]
Subject: Re: [PATCH] usb: gadget: uvc:change the UVC_NUM_REQUESTS value

Hi,


On 12/26/2017 8:22 AM, Lipengcheng wrote:
> The value is 4, it can cache four descriptors. When streaming_interval = 1,
> it can tolerate 500us. Some busy scenes, it may be more than 500us because
> cpu scheduling is not timely. There will have some problems. It is better
> set to eight.
>
> Signed-off-by: Pengcheng Li <[email protected]>
> ---
> drivers/usb/gadget/function/uvc.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/usb/gadget/function/uvc.h b/drivers/usb/gadget/function/uvc.h
> index a64e07e..901487e 100644
> --- a/drivers/usb/gadget/function/uvc.h
> +++ b/drivers/usb/gadget/function/uvc.h
> @@ -90,7 +90,7 @@ extern unsigned int uvc_gadget_trace_param;
> * Driver specific constants
> */
>
> -#define UVC_NUM_REQUESTS 4
> +#define UVC_NUM_REQUESTS 8

Can we rather make it 16?
I ran into similar issue on QCOM platform with DWC3 and with 8 requests also data loss
was observed. 16 requests (i.e. ~2msec) worked fine.

> #define UVC_MAX_REQUEST_SIZE 64
> #define UVC_MAX_EVENTS 4
>
> --
> 2.7.4
>
> N�����r��y���b�X��ǧv�^�)޺{.n�+����{�����^n�r���z���h����&���G���h�(�階�ݢj"���m�����z�ޖ���f���h���~�mml==

--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project

2017-12-26 05:11:42

by Lipengcheng

[permalink] [raw]
Subject: RE: [PATCH] usb: gadget: uvc:change the UVC_NUM_REQUESTS value

Hi,

> -----Original Message-----
> From: Manu Gautam [mailto:[email protected]]
> Sent: Tuesday, December 26, 2017 1:01 PM
> To: Lipengcheng; [email protected]
> Cc: [email protected]; [email protected]; [email protected]
> Subject: Re: [PATCH] usb: gadget: uvc:change the UVC_NUM_REQUESTS value
>
> Hi,
>
>
> On 12/26/2017 8:22 AM, Lipengcheng wrote:
> > The value is 4, it can cache four descriptors. When streaming_interval
> > = 1, it can tolerate 500us. Some busy scenes, it may be more than
> > 500us because cpu scheduling is not timely. There will have some
> > problems. It is better set to eight.
> >
> > Signed-off-by: Pengcheng Li <[email protected]>
> > ---
> > drivers/usb/gadget/function/uvc.h | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/usb/gadget/function/uvc.h
> > b/drivers/usb/gadget/function/uvc.h
> > index a64e07e..901487e 100644
> > --- a/drivers/usb/gadget/function/uvc.h
> > +++ b/drivers/usb/gadget/function/uvc.h
> > @@ -90,7 +90,7 @@ extern unsigned int uvc_gadget_trace_param;
> > * Driver specific constants
> > */
> >
> > -#define UVC_NUM_REQUESTS 4
> > +#define UVC_NUM_REQUESTS 8
>
> Can we rather make it 16?
> I ran into similar issue on QCOM platform with DWC3 and with 8 requests also data loss was observed. 16 requests (i.e. ~2msec) worked fine.
I think 16 is ok. The value 4 has a bit too small .In hisilicon asic, I set the value 32(4ms) and it is ok. The bad impact is the need to expend more memory space. So therefore need to match with the respective chip platform to find the appropriate value.
>
> > #define UVC_MAX_REQUEST_SIZE 64
> > #define UVC_MAX_EVENTS 4
> >
> > --
> > 2.7.4
> >
> > N r y b X ǧv ^ )޺{.n + { ^n r z  h &  G h (
> > 階 ݢj"  m z ޖ f h ~ mml==
>
> --
> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project


2018-01-08 11:55:42

by Felipe Balbi

[permalink] [raw]
Subject: Re: [PATCH] usb: gadget: uvc:change the UVC_NUM_REQUESTS value


Hi,

Lipengcheng <[email protected]> writes:
> The value is 4, it can cache four descriptors. When streaming_interval = 1,
> it can tolerate 500us. Some busy scenes, it may be more than 500us because
> cpu scheduling is not timely. There will have some problems. It is better
> set to eight.
>
> Signed-off-by: Pengcheng Li <[email protected]>
> ---
> drivers/usb/gadget/function/uvc.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/usb/gadget/function/uvc.h b/drivers/usb/gadget/function/uvc.h
> index a64e07e..901487e 100644
> --- a/drivers/usb/gadget/function/uvc.h
> +++ b/drivers/usb/gadget/function/uvc.h
> @@ -90,7 +90,7 @@ extern unsigned int uvc_gadget_trace_param;
> * Driver specific constants
> */
>
> -#define UVC_NUM_REQUESTS 4
> +#define UVC_NUM_REQUESTS 8

if you want to be taken seriously, the bare minimum you can do is to use
scripts/get_maintainer.pl to help with a proper Cc list:

$ scripts/get_maintainer.pl -f drivers/usb/gadget/function/uvc.h
Laurent Pinchart <[email protected]> (maintainer:USB WEBCAM GADGET)
Felipe Balbi <[email protected]> (maintainer:USB GADGET/PERIPHERAL SUBSYSTEM)
Greg Kroah-Hartman <[email protected]> (supporter:USB SUBSYSTEM)
[email protected] (open list:USB WEBCAM GADGET)
[email protected] (open list)

Laurent, what do you think about this?

--
balbi


Attachments:
signature.asc (832.00 B)