Re: [PATCH 02/17 v2] USB: mv_udc: fix kernel panic on some platform

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

 



On Thu, Sep 22, 2011 at 03:03:49PM +0800, Neil Zhang wrote:
> Some platform will use usb to download image, it may not disconnect usb

platforms

> gadget in uboot before loading kernel. In some cases, it may pending an
> interrupt there, and it will be triggered immediately when we finish
> request irq. But we haven't finished init the device at this time.
> So first stop udc here to ensure that udc is stopped before we probe
> the device in kernel.

this sentences are fishy, please rephrase.

> Signed-off-by: Neil Zhang <zhangwm@xxxxxxxxxxx>
> ---
>  drivers/usb/gadget/mv_udc_core.c |    7 +++++++
>  1 files changed, 7 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/usb/gadget/mv_udc_core.c b/drivers/usb/gadget/mv_udc_core.c
> index 2153da1..fce4236 100644
> --- a/drivers/usb/gadget/mv_udc_core.c
> +++ b/drivers/usb/gadget/mv_udc_core.c
> @@ -2038,6 +2038,13 @@ static int __devinit mv_udc_probe(struct platform_device *dev)
>  			& CAPLENGTH_MASK));
>  	udc->max_eps = readl(&udc->cap_regs->dccparams) & DCCPARAMS_DEN_MASK;
>  
> +	/*
> +	* some platform will use usb to download image, it may not disconnect
> +	* usb gadget before loading kernel. So first stop udc here.
> +	*/

wrong comment style.

> +	udc_stop(udc);
> +	writel(0xFFFFFFFF, &udc->op_regs->usbsts);
> +
>  	size = udc->max_eps * sizeof(struct mv_dqh) * 2;
>  	size = (size + DQH_ALIGNMENT - 1) & ~(DQH_ALIGNMENT - 1);
>  	udc->ep_dqh = dma_alloc_coherent(&dev->dev, size,
> -- 
> 1.7.1
> 

-- 
balbi

Attachment: signature.asc
Description: Digital signature


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

  Powered by Linux