On Tuesday, August 19, 2014 9:56 AM, Peter Chen wrote:
>
> linux-2.6/drivers/usb/dwc2/gadget.c: In function 's3c_hsotg_irq_enumdone':
> linux-2.6/drivers/usb/dwc2/gadget.c:1904: warning: 'ep_mps' may be used
> uninitialized in this function
>
> Acked-by: Paul Zimmerman <[email protected]>
> Signed-off-by: Peter Chen <[email protected]>
> ---
> Changes for v2:
> - Add Paul's suggestion and ack
>
> drivers/usb/dwc2/gadget.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c
> index 2421eaa..6bcc644 100644
> --- a/drivers/usb/dwc2/gadget.c
> +++ b/drivers/usb/dwc2/gadget.c
> @@ -1901,7 +1901,7 @@ static void s3c_hsotg_epint(struct s3c_hsotg *hsotg,
> unsigned int idx,
> static void s3c_hsotg_irq_enumdone(struct s3c_hsotg *hsotg)
> {
> u32 dsts = readl(hsotg->regs + DSTS);
> - int ep0_mps = 0, ep_mps;
> + int ep0_mps = 0, ep_mps = 1023;
(+cc Dinh Nguyen)
static void s3c_hsotg_irq_enumdone(struct s3c_hsotg *hsotg)
{
u32 dsts = readl(hsotg->regs + DSTS);
int ep0_mps = 0, ep_mps;
.....
case DSTS_ENUMSPD_FS:
case DSTS_ENUMSPD_FS48:
ep0_mps = EP0_MPS_LIMIT;
ep_mps = 1023;
break;
case DSTS_ENUMSPD_HS:
ep0_mps = EP0_MPS_LIMIT;
ep_mps = 1024;
break;
case DSTS_ENUMSPD_LS:
hsotg->gadget.speed = USB_SPEED_LOW;
break;
Only low-speed does NOT set 'ep_mps'. Thus, the default value
of 'ep_mps' should be considered for the case of low-speed.
According to the USB2.0 spec, the maximum data payload size
allowed for low-speed devices is 8 bytes. So, this patch should set
the 'ep_mps' as '8' for the low-speed.
What I mean is as follows:
- int ep0_mps = 0, ep_mps;
+ int ep0_mps = 0, ep_mps = 8;
Best regards,
Jingoo Han
>
> /*
> * This should signal the finish of the enumeration phase
> --
> 1.7.9.5
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html