usb: exynos: add workaround for the USB device bindings conflict
authorMarek Szyprowski <m.szyprowski@samsung.com>
Mon, 20 May 2019 09:08:23 +0000 (11:08 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 21 May 2019 06:34:49 +0000 (08:34 +0200)
commit01d4071486fe18ec91f78725d81c7e46557c629a
treecd7dd0cbccbfeace82a48d4b4f0135babafcbf5d
parent3a38e874d70b1c80a3e3118be6fc010b558cc050
usb: exynos: add workaround for the USB device bindings conflict

Commit 69bec7259853 ("USB: core: let USB device know device node") added
support for attaching devicetree node for USB devices. Those nodes are
children of their USB host controller. However Exynos EHCI and OHCI
driver bindings already define child-nodes for each physical root hub
port and assigns respective PHY controller and parameters to them. Those
bindings predates support for USB device tree nodes.

To mitigate the side-effects of the conflict between those bindings,
lets reset Exynos host controller of_node pointer before registering it
to USB subsystem. This fixes the issue raised by the commit 01fdf179f4b0
("usb: core: skip interfaces disabled in devicetree"), which incorrectly
disabled some devices on Exynos based boards.

Reported-by: Markus Reichl <m.reichl@fivetechno.de>
Suggested-by: Måns Rullgård <mans@mansr.com>
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/ehci-exynos.c
drivers/usb/host/ohci-exynos.c