2019-03-01 14:50:12

by Måns Rullgård

[permalink] [raw]
Subject: [PATCH] usb: core: make default autosuspend delay configurable

Make the default autosuspend delay configurable at build time.
This is useful for systems that require a non-standard value as
it avoids relying on the command line being properly set.

Signed-off-by: Mans Rullgard <[email protected]>
---
drivers/usb/core/Kconfig | 8 ++++++++
drivers/usb/core/usb.c | 4 ++--
2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/core/Kconfig b/drivers/usb/core/Kconfig
index 4d75d9a80001..38ed837538c4 100644
--- a/drivers/usb/core/Kconfig
+++ b/drivers/usb/core/Kconfig
@@ -90,3 +90,11 @@ config USB_LEDS_TRIGGER_USBPORT
This driver allows LEDs to be controlled by USB events. Enabling this
trigger allows specifying list of USB ports that should turn on LED
when some USB device gets connected.
+
+config USB_AUTOSUSPEND_DELAY
+ int "Default autosuspend delay"
+ depends on USB
+ default 2
+ help
+ The default autosuspend delay in seconds. Can be overridden
+ with the usbcore.autosuspend command line or module parameter.
diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
index 4ebfbd737905..52e749386c1c 100644
--- a/drivers/usb/core/usb.c
+++ b/drivers/usb/core/usb.c
@@ -65,8 +65,8 @@ int usb_disabled(void)
EXPORT_SYMBOL_GPL(usb_disabled);

#ifdef CONFIG_PM
-static int usb_autosuspend_delay = 2; /* Default delay value,
- * in seconds */
+/* Default delay value, in seconds */
+static int usb_autosuspend_delay = CONFIG_USB_AUTOSUSPEND_DELAY;
module_param_named(autosuspend, usb_autosuspend_delay, int, 0644);
MODULE_PARM_DESC(autosuspend, "default autosuspend delay");

--
2.20.1



2019-03-01 16:24:50

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH] usb: core: make default autosuspend delay configurable

On Fri, Mar 01, 2019 at 02:26:46PM +0000, Mans Rullgard wrote:
> Make the default autosuspend delay configurable at build time.
> This is useful for systems that require a non-standard value as
> it avoids relying on the command line being properly set.
>
> Signed-off-by: Mans Rullgard <[email protected]>
> ---
> drivers/usb/core/Kconfig | 8 ++++++++
> drivers/usb/core/usb.c | 4 ++--
> 2 files changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/usb/core/Kconfig b/drivers/usb/core/Kconfig
> index 4d75d9a80001..38ed837538c4 100644
> --- a/drivers/usb/core/Kconfig
> +++ b/drivers/usb/core/Kconfig
> @@ -90,3 +90,11 @@ config USB_LEDS_TRIGGER_USBPORT
> This driver allows LEDs to be controlled by USB events. Enabling this
> trigger allows specifying list of USB ports that should turn on LED
> when some USB device gets connected.
> +
> +config USB_AUTOSUSPEND_DELAY
> + int "Default autosuspend delay"
> + depends on USB
> + default 2
> + help
> + The default autosuspend delay in seconds. Can be overridden
> + with the usbcore.autosuspend command line or module parameter.

As everyone is suddenly going to be hit with this for a new kernel
upate, you might want to put something in here that says:
The default value Linux has always had is 2 seconds. Change
this value if you want a different delay timeframe and can not
modify the command line or module parameter option.

to make people a lot more comfortable with this change.

thanks,

greg k-h

2019-03-01 17:55:48

by Måns Rullgård

[permalink] [raw]
Subject: [PATCH v2] usb: core: make default autosuspend delay configurable

Make the default autosuspend delay configurable at build time.
This is useful for systems that require a non-standard value as
it avoids relying on the command line being properly set.

Signed-off-by: Mans Rullgard <[email protected]>
---
Changes in v2:
- add explanatory text to Kconfig help
---
drivers/usb/core/Kconfig | 12 ++++++++++++
drivers/usb/core/usb.c | 4 ++--
2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/core/Kconfig b/drivers/usb/core/Kconfig
index 4d75d9a80001..cd91006e3f84 100644
--- a/drivers/usb/core/Kconfig
+++ b/drivers/usb/core/Kconfig
@@ -90,3 +90,15 @@ config USB_LEDS_TRIGGER_USBPORT
This driver allows LEDs to be controlled by USB events. Enabling this
trigger allows specifying list of USB ports that should turn on LED
when some USB device gets connected.
+
+config USB_AUTOSUSPEND_DELAY
+ int "Default autosuspend delay"
+ depends on USB
+ default 2
+ help
+ The default autosuspend delay in seconds. Can be overridden
+ with the usbcore.autosuspend command line or module parameter.
+
+ The default value Linux has always had is 2 seconds. Change
+ this value if you want a different delay and cannot modify
+ the command line or module parameter.
diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
index 4ebfbd737905..52e749386c1c 100644
--- a/drivers/usb/core/usb.c
+++ b/drivers/usb/core/usb.c
@@ -65,8 +65,8 @@ int usb_disabled(void)
EXPORT_SYMBOL_GPL(usb_disabled);

#ifdef CONFIG_PM
-static int usb_autosuspend_delay = 2; /* Default delay value,
- * in seconds */
+/* Default delay value, in seconds */
+static int usb_autosuspend_delay = CONFIG_USB_AUTOSUSPEND_DELAY;
module_param_named(autosuspend, usb_autosuspend_delay, int, 0644);
MODULE_PARM_DESC(autosuspend, "default autosuspend delay");

--
2.20.1


2019-03-01 18:00:52

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH v2] usb: core: make default autosuspend delay configurable

On Fri, Mar 01, 2019 at 04:43:20PM +0000, Mans Rullgard wrote:
> Make the default autosuspend delay configurable at build time.
> This is useful for systems that require a non-standard value as
> it avoids relying on the command line being properly set.
>
> Signed-off-by: Mans Rullgard <[email protected]>
> ---
> Changes in v2:
> - add explanatory text to Kconfig help

Much nicer, thanks!

greg k-h