Re: [PATCH] usb: musb: ux500: don't propagate the OF node

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

 



On Tue, 10 Jun 2014, Linus Walleij wrote:

> There is a regression in the upcoming v3.16-rc1, that is caused
> by a problem that has been around for a while but now finally
> hangs the system. The bootcrawl looks like this:
> 
> pinctrl-nomadik soc:pinctrl: pin GPIO256_AF28 already
> requested by a03e0000.usb_per5; cannot claim for musb-hdrc.0.auto
> pinctrl-nomadik soc:pinctrl: pin-256 (musb-hdrc.0.auto) status -22
> pinctrl-nomadik soc:pinctrl: could not request pin 256
> (GPIO256_AF28) from group usb_a_1  on device pinctrl-nomadik
> musb-hdrc musb-hdrc.0.auto: Error applying setting, reverse
> things back
> HS USB OTG: no transceiver configured
> musb-hdrc musb-hdrc.0.auto: musb_init_controller failed
> with status -517
> platform musb-hdrc.0.auto: Driver musb-hdrc requests
> probe deferral
> (...)
> 
> The ux500 MUSB driver propagates the OF node to the dynamically
> created musb-hdrc device, which is incorrect as it makes the OF
> core believe there are two devices spun from the very same
> DT node, which confuses other parts of the device core, notably
> the pin control subsystem, which will try to apply all the pin
> control settings also to the HDRC device as it gets
> instantiated. (The OMAP2430 for example, does not set the
> of_node member.)
> 
> Cc: stable@xxxxxxxxxxxxxxx
> Cc: Lee Jones <lee.jones@xxxxxxxxxx>
> Cc: Arnd Bergmann <arnd@xxxxxxxx>
> Cc: Felipe Balbi <balbi@xxxxxx>
> Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
> ---
>  drivers/usb/musb/ux500.c | 1 -
>  1 file changed, 1 deletion(-)

Looks good.  Assuming it's fully tested:
  Acked-by: Lee Jones <lee.jones@xxxxxxxxxx>

> diff --git a/drivers/usb/musb/ux500.c b/drivers/usb/musb/ux500.c
> index c2e45e632723..f202e5088461 100644
> --- a/drivers/usb/musb/ux500.c
> +++ b/drivers/usb/musb/ux500.c
> @@ -274,7 +274,6 @@ static int ux500_probe(struct platform_device *pdev)
>  	musb->dev.parent		= &pdev->dev;
>  	musb->dev.dma_mask		= &pdev->dev.coherent_dma_mask;
>  	musb->dev.coherent_dma_mask	= pdev->dev.coherent_dma_mask;
> -	musb->dev.of_node		= pdev->dev.of_node;
>  
>  	glue->dev			= &pdev->dev;
>  	glue->musb			= musb;

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]