Patch "usb: hub: Move hub_port_disable() to fix warning if PM is disabled" has been added to the 4.9-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
usb: hub: Move hub_port_disable() to fix warning if PM is disabled
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
usb-hub-move-hub_port_disable-to-fix-warning-if-pm-is-disabled.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
3bc02bce908c7250781376052248f5cd60a4e3d4Mon Sep 17 00:00:00 2001
From: Geert Uytterhoeven <[email protected]>
Date: Wed, 14 Dec 2016 15:37:30 +0100
Subject: usb: hub: Move hub_port_disable() to fix warning if PM is disabled
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
From: Geert Uytterhoeven <[email protected]>
commit 3bc02bce908c7250781376052248f5cd60a4e3d4 upstream.
If CONFIG_PM=n:
drivers/usb/core/hub.c:107: warning: ‘hub_usb3_port_prepare_disable’ declared inline after being called drivers/usb/core/hub.c:107: warning: previous declaration of ‘hub_usb3_port_prepare_disable’ was here
To fix this, move hub_port_disable() after hub_usb3_port_prepare_disable(), and adjust forward declarations.
--- drivers/usb/core/hub.c | 59 ++++++++++++++++++++++++------------------------- 1 file changed, 29 insertions(+), 30 deletions(-)
drivers/usb/core/hub.c +29 -30
@@ -101,8 +101,7 @@ EXPORT_SYMBOL_GPL(ehci_cf_port_reset_rwsstatic void hub_release (struct kref *kref);static int usb_reset_and_verify_device (struct usb_device *udev); -static void hub_usb3_port_prepare_disable (struct usb_hub *hub, -struct usb_port *port_dev); +static int hub_port_disable (struct usb_hub *hub,int port1,int set_state);static inline char *portspeed (struct usb_hub *hub,int portstatus) {
@@ -901,34 +900,6 @@ static int hub_set_port_link_state(struc }/* -* USB-3 does not have a similar link state as USB-2 that will avoid negotiating -* a connection with a plugged-in cable but will signal the host when the cable -* is unplugged. Disable remote wake and set link state to U3 for USB-3 devices -*/ -static int hub_port_disable (struct usb_hub *hub,int port1,int set_state) -{ -struct usb_port *port_dev = hub->ports[port1 -1 ]; -struct usb_device *hdev = hub->hdev; -int ret =0 ; - -if (!hub->error) { -if (hub_is_superspeed (hub->hdev)) { -hub_usb3_port_prepare_disable (hub, port_dev); - ret =hub_set_port_link_state (hub, port_dev->portnum, -USB_SS_PORT_LS_U3 ); - }else { - ret =usb_clear_port_feature (hdev, port1, -USB_PORT_FEAT_ENABLE ); - } - } -if (port_dev->child && set_state) -usb_set_device_state (port_dev->child,USB_STATE_NOTATTACHED ); -if (ret && ret != -ENODEV ) -dev_err (&port_dev->dev,"cannot disable (err = %d)\n" , ret); -return ret; -} - -/* * Disable a port and mark a logical connect-change event, so that some * time later hub_wq will disconnect() any existing usb_device on the port * and will re-enumerate if there actually is a device attached.
@@ -4153,6 +4124,34 @@ static int hub_handle_remote_wakeup(stru#endif /* CONFIG_PM */ +/* +* USB-3 does not have a similar link state as USB-2 that will avoid negotiating +* a connection with a plugged-in cable but will signal the host when the cable +* is unplugged. Disable remote wake and set link state to U3 for USB-3 devices +*/ +static int hub_port_disable (struct usb_hub *hub,int port1,int set_state) +{ +struct usb_port *port_dev = hub->ports[port1 -1 ]; +struct usb_device *hdev = hub->hdev; +int ret =0 ; + +if (!hub->error) { +if (hub_is_superspeed (hub->hdev)) { +hub_usb3_port_prepare_disable (hub, port_dev); + ret =hub_set_port_link_state (hub, port_dev->portnum, +USB_SS_PORT_LS_U3 ); + }else { + ret =usb_clear_port_feature (hdev, port1, +USB_PORT_FEAT_ENABLE ); + } + } +if (port_dev->child && set_state) +usb_set_device_state (port_dev->child,USB_STATE_NOTATTACHED ); +if (ret && ret != -ENODEV ) +dev_err (&port_dev->dev,"cannot disable (err = %d)\n" , ret); +return ret; +} +/* USB 2.0 spec, 7.1.7.3 / fig 7-29: *
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/usb-hub-move-hub_port_disable-to-fix-warning-if-pm-is-disabled.patch