Merge branch 'ioat-md-accel-for-linus' of git://lost.foo-projects.org/~dwillia2/git/iop
[linux-2.6] / drivers / usb / core / Kconfig
1 #
2 # USB Core configuration
3 #
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.
11
12 comment "Miscellaneous USB options"
13         depends on USB
14
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.
27
28           You may need to mount the usbfs file system to see the files, use
29           mount -t usbfs none /proc/bus/usb
30
31           For the format of the various /proc/bus/usb/ files, please read
32           <file:Documentation/usb/proc_usb_info.txt>.
33
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.
39
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.
48
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.
56
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"
62
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).
71
72           If you are unsure about this, say N here.
73
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.
81
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.
86
87           If you are unsure about this, say N here.
88
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
95           If you say Y here and enable the "power/persist" attribute
96           for a USB device, the device's data structures will remain
97           persistent across system suspend, even if the USB bus loses
98           power.  (This includes hibernation, also known as swsusp or
99           suspend-to-disk.)  The devices will reappear as if by magic
100           when the system wakes up, with no need to unmount USB
101           filesystems, rmmod host-controller drivers, or do anything
102           else.
103
104                 WARNING: This option can be dangerous!
105
106           If a USB device is replaced by another of the same type while
107           the system is asleep, there's a good chance the kernel won't
108           detect the change.  Likewise if the media in a USB storage
109           device is replaced.  When this happens it's almost certain to
110           cause data corruption and maybe even crash your system.
111
112           If you are unsure, say N here.
113
114 config USB_OTG
115         bool
116         depends on USB && EXPERIMENTAL
117         select USB_SUSPEND
118         default n
119
120
121 config USB_OTG_WHITELIST
122         bool "Rely on OTG Targeted Peripherals List"
123         depends on USB_OTG
124         default y
125         help
126           If you say Y here, the "otg_whitelist.h" file will be used as a
127           product whitelist, so USB peripherals not listed there will be
128           rejected during enumeration.  This behavior is required by the
129           USB OTG specification for all devices not on your product's
130           "Targeted Peripherals List".
131
132           Otherwise, peripherals not listed there will only generate a
133           warning and enumeration will continue.  That's more like what
134           normal Linux-USB hosts do (other than the warning), and is
135           convenient for many stages of product development.
136
137 config USB_OTG_BLACKLIST_HUB
138         bool "Disable external hubs"
139         depends on USB_OTG
140         help
141           If you say Y here, then Linux will refuse to enumerate
142           external hubs.  OTG hosts are allowed to reduce hardware
143           and software costs by not supporting external hubs.
144