Re: [PATCH v9 16/19] usb: hub_handle_remote_wakeup() depends on CONFIG_PM_RUNTIME=y

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 7 May 2014, Dan Williams wrote:

> Per Alan:
> "You mean from within hub_handle_remote_wakeup()?  That routine will
> never get called if CONFIG_PM_RUNTIME isn't enabled, because khubd
> never sees wakeup requests if they arise during system suspend.
> 
> In fact, that routine ought to go inside the "#ifdef CONFIG_PM_RUNTIME"
> portion of hub.c, along with the other suspend/resume code."
> 
> Suggested-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>
> Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
> ---
>  drivers/usb/core/hub.c |    4 ++++
>  drivers/usb/core/usb.h |    5 -----
>  2 files changed, 4 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
> index d91e6493abf7..45ded752c2d8 100644
> --- a/drivers/usb/core/hub.c
> +++ b/drivers/usb/core/hub.c
> @@ -4700,6 +4700,7 @@ static void hub_port_connect_change(struct usb_hub *hub, int port1,
>  	usb_lock_port(port_dev);
>  }
>  
> +#ifdef CONFIG_PM_RUNTIME
>  /* Returns 1 if there was a remote wakeup and a connect status change. */
>  static int hub_handle_remote_wakeup(struct usb_hub *hub, unsigned int port,
>  		u16 portstatus, u16 portchange)
> @@ -4740,6 +4741,7 @@ static int hub_handle_remote_wakeup(struct usb_hub *hub, unsigned int port,
>  	dev_dbg(&port_dev->dev, "resume, status %d\n", ret);
>  	return connect_change;
>  }
> +#endif

I meant that instead of adding a new #ifdef section here, you could
move the subroutine inside the #ifdef that protects
usb_remote_wakeup().

>  static void port_event(struct usb_hub *hub, int port1)
>  		__must_hold(&port_dev->status_lock)
> @@ -4818,8 +4820,10 @@ static void port_event(struct usb_hub *hub, int port1)
>  	if (!pm_runtime_active(&port_dev->dev))
>  		return;
>  
> +#ifdef CONFIG_PM_RUNTIME
>  	if (hub_handle_remote_wakeup(hub, port1, portstatus, portchange))
>  		connect_change = 1;
> +#endif

Also, instead of adding another #ifdef here, you could add a #else
section to the existing #ifdef in which you define an inline version of
hub_handle_remote_wakeup() (or a macro version) that always returns 0.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux