| From 238e0268c82789e4c107a37045d529a6dbce51a9 Mon Sep 17 00:00:00 2001 |
| From: Fabrizio Castro <fabrizio.castro@bp.renesas.com> |
| Date: Fri, 1 Mar 2019 11:05:45 +0000 |
| Subject: usb: common: Consider only available nodes for dr_mode |
| |
| From: Fabrizio Castro <fabrizio.castro@bp.renesas.com> |
| |
| commit 238e0268c82789e4c107a37045d529a6dbce51a9 upstream. |
| |
| There are cases where multiple device tree nodes point to the |
| same phy node by means of the "phys" property, but we should |
| only consider those nodes that are marked as available rather |
| than just any node. |
| |
| Fixes: 98bfb3946695 ("usb: of: add an api to get dr_mode by the phy node") |
| Cc: stable@vger.kernel.org # v4.4+ |
| Signed-off-by: Fabrizio Castro <fabrizio.castro@bp.renesas.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/usb/common/common.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| --- a/drivers/usb/common/common.c |
| +++ b/drivers/usb/common/common.c |
| @@ -148,6 +148,8 @@ enum usb_dr_mode of_usb_get_dr_mode_by_p |
| |
| do { |
| controller = of_find_node_with_property(controller, "phys"); |
| + if (!of_device_is_available(controller)) |
| + continue; |
| index = 0; |
| do { |
| if (arg0 == -1) { |