diff options
Diffstat (limited to 'drivers/usb/core/port.c')
| -rw-r--r-- | drivers/usb/core/port.c | 10 | 
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/usb/core/port.c b/drivers/usb/core/port.c index bbbb35fa639f..235a7c645503 100644 --- a/drivers/usb/core/port.c +++ b/drivers/usb/core/port.c @@ -213,7 +213,10 @@ static int usb_port_runtime_resume(struct device *dev)  	if (!port_dev->is_superspeed && peer)  		pm_runtime_get_sync(&peer->dev); -	usb_autopm_get_interface(intf); +	retval = usb_autopm_get_interface(intf); +	if (retval < 0) +		return retval; +  	retval = usb_hub_set_port_power(hdev, hub, port1, true);  	msleep(hub_power_on_good_delay(hub));  	if (udev && !retval) { @@ -266,7 +269,10 @@ static int usb_port_runtime_suspend(struct device *dev)  	if (usb_port_block_power_off)  		return -EBUSY; -	usb_autopm_get_interface(intf); +	retval = usb_autopm_get_interface(intf); +	if (retval < 0) +		return retval; +  	retval = usb_hub_set_port_power(hdev, hub, port1, false);  	usb_clear_port_feature(hdev, port1, USB_PORT_FEAT_C_CONNECTION);  	if (!port_dev->is_superspeed)  |