• Peter Chen's avatar
    usb: core: move root hub's device node assignment after it is added to bus · dc5878ab
    Peter Chen authored
    When the root hub device is added to the bus, it tries to get pins
    information from pinctrl (see pinctrl_bind_pins, at really_probe), if
    the pin information is described at DT, it will show below error since
    the root hub's device node is the same with controller's, but controller's
    pin has already been requested when it is added to platform bus.
    
    	imx6q-pinctrl 20e0000.iomuxc: pin MX6Q_PAD_GPIO_1 already
           	requested by 2184000.usb; cannot claim for usb1
    	imx6q-pinctrl 20e0000.iomuxc: pin-137 (usb1) status -22
    	imx6q-pinctrl 20e0000.iomuxc: could not request pin 137
           	(MX6Q_PAD_GPIO_1) from group usbotggrp-3 on device 20e0000.iomuxc
    	usb usb1: Error applying setting, reverse things back
    
    To fix this issue, we move the root hub's device node assignment (equals
    to contrller's) after device is added to bus, we only need to know root
    hub's device node information after the device under root hub is created,
    so this movement will not affect current function.
    Signed-off-by: default avatarPeter Chen <peter.chen@nxp.com>
    Reported-by: default avatarLars Steubesand <lars.steubesand@philips.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    dc5878ab
usb.c 31.5 KB