From: Julius Werner <jwerner@chromium.org>
To: linux-kernel@vger.kernel.org
Cc: linux-usb@vger.kernel.org,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Lan Tianyu <tianyu.lan@intel.com>,
Alan Stern <stern@rowland.harvard.edu>,
Sameer Nanda <snanda@chromium.org>,
Vincent Palatin <vpalatin@chromium.org>,
Luigi Semenzato <semenzato@chromium.org>,
Julius Werner <jwerner@chromium.org>
Subject: [PATCH] usb: Make USB persist default configurable
Date: Wed, 13 Mar 2013 15:57:31 -0700 [thread overview]
Message-ID: <1363215451-26111-1-git-send-email-jwerner@chromium.org> (raw)
Commit 9214d1d8 set the USB persist flag as a default for all devices.
This might be desirable for some distributions, but it certainly has its
trade-offs... most importantly, it can significantly increase system
resume time, because the kernel blocks on resuming (and sometimes
resetting) USB devices before it unfreezes userspace.
This patch introduces a new config option CONFIG_USB_DEFAULT_PERSIST,
which allows distributions to make this decision on their own without
the need to carry a custom patch or revert the kernel's setting in
userspace.
Signed-off-by: Julius Werner <jwerner@chromium.org>
---
drivers/usb/core/Kconfig | 14 ++++++++++++++
drivers/usb/core/quirks.c | 16 +++++-----------
2 files changed, 19 insertions(+), 11 deletions(-)
diff --git a/drivers/usb/core/Kconfig b/drivers/usb/core/Kconfig
index f70c1a1..dfc1360 100644
--- a/drivers/usb/core/Kconfig
+++ b/drivers/usb/core/Kconfig
@@ -27,6 +27,20 @@ config USB_ANNOUNCE_NEW_DEVICES
comment "Miscellaneous USB options"
depends on USB
+config USB_DEFAULT_PERSIST
+ bool "Enable USB persist by default"
+ depends on USB
+ default y
+ help
+ Say N here if you don't want USB power session persistance
+ enabled by default. This will make suspended USB devices that
+ lose power get reenumerated as if they had been unplugged,
+ but may reduce your system's resume time and eliminates any
+ chance of file system corruption by confusing two devices with
+ the same vendor and product ID. The persist feature can still
+ be enabled for individual devices through the power/persist
+ sysfs node. See Documentation/usb/persist.txt for more info.
+
config USB_DYNAMIC_MINORS
bool "Dynamic USB minor allocation"
depends on USB
diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
index 3113c1d..ab5638d 100644
--- a/drivers/usb/core/quirks.c
+++ b/drivers/usb/core/quirks.c
@@ -201,20 +201,14 @@ void usb_detect_quirks(struct usb_device *udev)
dev_dbg(&udev->dev, "USB quirks for this device: %x\n",
udev->quirks);
- /* For the present, all devices default to USB-PERSIST enabled */
-#if 0 /* was: #ifdef CONFIG_PM */
- /* Hubs are automatically enabled for USB-PERSIST */
- if (udev->descriptor.bDeviceClass == USB_CLASS_HUB)
+#ifdef CONFIG_USB_DEFAULT_PERSIST
+ if (!(udev->quirks & USB_QUIRK_RESET))
udev->persist_enabled = 1;
-
#else
- /* In the absence of PM, we can safely enable USB-PERSIST
- * for all devices. It will affect things like hub resets
- * and EMF-related port disables.
- */
- if (!(udev->quirks & USB_QUIRK_RESET))
+ /* Hubs are automatically enabled for USB-PERSIST */
+ if (udev->descriptor.bDeviceClass == USB_CLASS_HUB)
udev->persist_enabled = 1;
-#endif /* CONFIG_PM */
+#endif /* CONFIG_USB_DEFAULT_PERSIST */
}
void usb_detect_interface_quirks(struct usb_device *udev)
--
1.7.12.4
next reply other threads:[~2013-03-13 22:58 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-13 22:57 Julius Werner [this message]
2013-03-18 23:09 ` Greg Kroah-Hartman
2013-03-19 0:02 ` Julius Werner
2013-03-19 0:06 ` Greg Kroah-Hartman
2013-03-19 1:04 ` Julius Werner
2013-03-19 14:56 ` Alan Stern
2013-03-19 15:06 ` Vincent Palatin
2013-03-19 15:42 ` Alan Stern
2013-03-19 17:29 ` Julius Werner
2013-03-20 14:49 ` Alan Stern
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1363215451-26111-1-git-send-email-jwerner@chromium.org \
--to=jwerner@chromium.org \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=semenzato@chromium.org \
--cc=snanda@chromium.org \
--cc=stern@rowland.harvard.edu \
--cc=tianyu.lan@intel.com \
--cc=vpalatin@chromium.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®