From e5a9d62199af2ae6c4e7aa13614199b6dbaf5eb2 Mon Sep 17 00:00:00 2001 From: Peter Chen Date: Mon, 29 Sep 2014 10:09:31 +0800 Subject: [PATCH] usb: core: return -ENOTSUPP for all targeted hosts The current code only returns -ENOTSUPP for OTG host, but in fact, embedded host also needs to returns -ENOTSUPP if the peripheral is not at TPL. Signed-off-by: Peter Chen Signed-off-by: Greg Kroah-Hartman --- drivers/usb/core/hub.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c index 374b3f93071c..1d21b2c21f9b 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c @@ -2319,11 +2319,12 @@ static int usb_enumerate_device(struct usb_device *udev) return err; if (IS_ENABLED(CONFIG_USB_OTG_WHITELIST) && hcd->tpl_support && - !is_targeted(udev) && IS_ENABLED(CONFIG_USB_OTG)) { + !is_targeted(udev)) { /* Maybe it can talk to us, though we can't talk to it. * (Includes HNP test device.) */ - if (udev->bus->b_hnp_enable || udev->bus->is_b_host) { + if (IS_ENABLED(CONFIG_USB_OTG) && (udev->bus->b_hnp_enable + || udev->bus->is_b_host)) { err = usb_port_suspend(udev, PMSG_AUTO_SUSPEND); if (err < 0) dev_dbg(&udev->dev, "HNP fail, %d\n", err); -- 2.20.1