USB: Fix of_usb_get_dr_mode_by_phy with a shared phy block
authorHans de Goede <hdegoede@redhat.com>
Fri, 10 Jun 2016 09:46:25 +0000 (11:46 +0200)
committerFelipe Balbi <felipe.balbi@linux.intel.com>
Tue, 21 Jun 2016 07:52:39 +0000 (10:52 +0300)
commitce15ed4c5dfb3f7757e6611902aed5db253af977
tree1aca75d0045e608b29c3451acc09a67d64198c27
parent882bd9fc46321c9d4721b376039a142cbfe8a17a
USB: Fix of_usb_get_dr_mode_by_phy with a shared phy block

Some SoCs have a single phy-hw-block with multiple phys, this is
modelled by a single phy dts node, so we end up with multiple
controller nodes with a phys property pointing to the phy-node
of the otg-phy.

Only one of these controllers typically is an otg controller, yet we
were checking the first controller who uses a phy from the block and
then end up looking for a dr_mode property in e.g. the ehci controller.

This commit fixes this by adding an arg0 parameter to
of_usb_get_dr_mode_by_phy and make of_usb_get_dr_mode_by_phy
check that this matches the phandle args[0] value when looking for
the otg controller.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
drivers/usb/common/common.c
drivers/usb/phy/phy-am335x.c
include/linux/usb/of.h