Re: [PATCH v3 1/5] usb: chipidea: udc: fix setup of endpoint maxpacket size

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Marc Kleine-Budde <mkl@xxxxxxxxxxxxxx> writes:

> From: Michael Grzeschik <m.grzeschik@xxxxxxxxxxxxxx>
>
> This patch changes the setup of the endpoint maxpacket size. All non control
> endpoints are initialized with an undefined ((unsigned short)~0) maxpacket
> size. The maxpacket size of Endpoint 0 will be kept at CTRL_PAYLOAD_MAX.
>
> Some gadget drivers check for the maxpacket size before they enable the
> endpoint, which leads to a wrong state in these drivers.
>
> Cc: <stable@xxxxxxxxxxxxxxx>
> Signed-off-by: Michael Grzeschik <m.grzeschik@xxxxxxxxxxxxxx>
> Signed-off-by: Marc Kleine-Budde <mkl@xxxxxxxxxxxxxx>
> Acked-by: Felipe Balbi <balbi@xxxxxx>

Acked-by: Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx>

> ---
> changes since v1:
> - reworded patch description
> - Added Felipe's Ack
>
>  drivers/usb/chipidea/udc.c |    8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c
> index c7a032a..7801a3f 100644
> --- a/drivers/usb/chipidea/udc.c
> +++ b/drivers/usb/chipidea/udc.c
> @@ -1455,7 +1455,12 @@ static int init_eps(struct ci13xxx *ci)
>  
>  			mEp->ep.name      = mEp->name;
>  			mEp->ep.ops       = &usb_ep_ops;
> -			mEp->ep.maxpacket = CTRL_PAYLOAD_MAX;
> +			/*
> +			 * for ep0: maxP defined in desc, for other
> +			 * eps, maxP is set by epautoconfig() called
> +			 * by gadget layer
> +			 */
> +			mEp->ep.maxpacket = (unsigned short)~0;
>  
>  			INIT_LIST_HEAD(&mEp->qh.queue);
>  			mEp->qh.ptr = dma_pool_alloc(ci->qh_pool, GFP_KERNEL,
> @@ -1475,6 +1480,7 @@ static int init_eps(struct ci13xxx *ci)
>  				else
>  					ci->ep0in = mEp;
>  
> +				mEp->ep.maxpacket = CTRL_PAYLOAD_MAX;
>  				continue;
>  			}
>  
> -- 
> 1.7.10.4
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux