USB: add USB-Persist facility
[linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git] / drivers / usb / core / Kconfig
blob5113ef4cb7f6f24961cd2787a742e108fe485d2d
2 # USB Core configuration
4 config USB_DEBUG
5         bool "USB verbose debug messages"
6         depends on USB
7         help
8           Say Y here if you want the USB core & hub drivers to produce a bunch
9           of debug messages to the system log. Select this if you are having a
10           problem with USB support and want to see more of what is going on.
12 comment "Miscellaneous USB options"
13         depends on USB
15 config USB_DEVICEFS
16         bool "USB device filesystem"
17         depends on USB
18         ---help---
19           If you say Y here (and to "/proc file system support" in the "File
20           systems" section, above), you will get a file /proc/bus/usb/devices
21           which lists the devices currently connected to your USB bus or
22           busses, and for every connected device a file named
23           "/proc/bus/usb/xxx/yyy", where xxx is the bus number and yyy the
24           device number; the latter files can be used by user space programs
25           to talk directly to the device. These files are "virtual", meaning
26           they are generated on the fly and not stored on the hard drive.
28           You may need to mount the usbfs file system to see the files, use
29           mount -t usbfs none /proc/bus/usb
31           For the format of the various /proc/bus/usb/ files, please read
32           <file:Documentation/usb/proc_usb_info.txt>.
34           Usbfs files can't handle Access Control Lists (ACL), which are the
35           default way to grant access to USB devices for untrusted users of a
36           desktop system. The usbfs functionality is replaced by real
37           device-nodes managed by udev. These nodes live in /dev/bus/usb and
38           are used by libusb.
40 config USB_DEVICE_CLASS
41         bool "USB device class-devices (DEPRECATED)"
42         depends on USB
43         default y
44         ---help---
45           Userspace access to USB devices is granted by device-nodes exported
46           directly from the usbdev in sysfs. Old versions of the driver
47           core and udev needed additional class devices to export device nodes.
49           These additional devices are difficult to handle in userspace, if
50           information about USB interfaces must be available. One device
51           contains the device node, the other device contains the interface
52           data. Both devices are at the same level in sysfs (siblings) and one
53           can't access the other. The device node created directly by the
54           usb device is the parent device of the interface and therefore
55           easily accessible from the interface event.
57           This option provides backward compatibility for libusb device
58           nodes (lsusb) when usbfs is not used, and the following udev rule
59           doesn't exist:
60             SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", \
61             NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", MODE="0644"
63 config USB_DYNAMIC_MINORS
64         bool "Dynamic USB minor allocation (EXPERIMENTAL)"
65         depends on USB && EXPERIMENTAL
66         help
67           If you say Y here, the USB subsystem will use dynamic minor
68           allocation for any device that uses the USB major number.
69           This means that you can have more than 16 of a single type
70           of device (like USB printers).
72           If you are unsure about this, say N here.
74 config USB_SUSPEND
75         bool "USB selective suspend/resume and wakeup (EXPERIMENTAL)"
76         depends on USB && PM && EXPERIMENTAL
77         help
78           If you say Y here, you can use driver calls or the sysfs
79           "power/state" file to suspend or resume individual USB
80           peripherals.
82           Also, USB "remote wakeup" signaling is supported, whereby some
83           USB devices (like keyboards and network adapters) can wake up
84           their parent hub.  That wakeup cascades up the USB tree, and
85           could wake the system from states like suspend-to-RAM.
87           If you are unsure about this, say N here.
89 config USB_PERSIST
90         bool "USB device persistence during system suspend (DANGEROUS)"
91         depends on USB && PM && EXPERIMENTAL
92         default n
93         help
94           If you say Y here, USB device data structures will remain
95           persistent across system suspend, even if the USB bus loses
96           power.  (This includes software-suspend, also known as swsusp,
97           or suspend-to-disk.)  The devices will reappear as if by magic
98           when the system wakes up, with no need to unmount USB filesystems,
99           rmmod host-controller drivers, or do anything else.
101                 WARNING: This option can be dangerous!
103           If a USB device is replaced by another of the same type while
104           the system is asleep, there's a good chance the kernel won't
105           detect the change.  Likewise if the media in a USB storage
106           device is replaced.  When this happens it's almost certain to
107           cause data corruption and maybe even crash your system.
109           If you are unsure, say N here.
111 config USB_OTG
112         bool
113         depends on USB && EXPERIMENTAL
114         select USB_SUSPEND
115         default n
118 config USB_OTG_WHITELIST
119         bool "Rely on OTG Targeted Peripherals List"
120         depends on USB_OTG
121         default y
122         help
123           If you say Y here, the "otg_whitelist.h" file will be used as a
124           product whitelist, so USB peripherals not listed there will be
125           rejected during enumeration.  This behavior is required by the
126           USB OTG specification for all devices not on your product's
127           "Targeted Peripherals List".
129           Otherwise, peripherals not listed there will only generate a
130           warning and enumeration will continue.  That's more like what
131           normal Linux-USB hosts do (other than the warning), and is
132           convenient for many stages of product development.
134 config USB_OTG_BLACKLIST_HUB
135         bool "Disable external hubs"
136         depends on USB_OTG
137         help
138           If you say Y here, then Linux will refuse to enumerate
139           external hubs.  OTG hosts are allowed to reduce hardware
140           and software costs by not supporting external hubs.