USB: remove usb_find_device
[safe/jmp/linux-2.6] / drivers / usb / core / Kconfig
index 6e3b535..7e59444 100644 (file)
@@ -9,11 +9,26 @@ config USB_DEBUG
          of debug messages to the system log. Select this if you are having a
          problem with USB support and want to see more of what is going on.
 
+config USB_ANNOUNCE_NEW_DEVICES
+       bool "USB announce new devices"
+       depends on USB
+       default N
+       help
+         Say Y here if you want the USB core to always announce the
+         idVendor, idProduct, Manufacturer, Product, and SerialNumber
+         strings for every new USB device to the syslog.  This option is
+         usually used by distro vendors to help with debugging and to
+         let users know what specific device was added to the machine
+         in what location.
+
+         If you do not want this kind of information sent to the system
+         log, or have any doubts about this, say N here.
+
 comment "Miscellaneous USB options"
        depends on USB
 
 config USB_DEVICEFS
-       bool "USB device filesystem"
+       bool "USB device filesystem (DEPRECATED)"
        depends on USB
        ---help---
          If you say Y here (and to "/proc file system support" in the "File
@@ -31,24 +46,42 @@ config USB_DEVICEFS
          For the format of the various /proc/bus/usb/ files, please read
          <file:Documentation/usb/proc_usb_info.txt>.
 
-         Most users want to say Y here.
+         Modern Linux systems do not use this.
 
-config USB_BANDWIDTH
-       bool "Enforce USB bandwidth allocation (EXPERIMENTAL)"
-       depends on USB && EXPERIMENTAL
-       help
-         If you say Y here, the USB subsystem enforces USB bandwidth
-         allocation and will prevent some device opens from succeeding
-         if they would cause USB bandwidth usage to go above 90% of
-         the bus bandwidth.
+         Usbfs entries are files and not character devices; usbfs can't
+         handle Access Control Lists (ACL) which are the default way to
+         grant access to USB devices for untrusted users of a desktop
+         system.
+
+         The usbfs functionality is replaced by real device-nodes managed by
+         udev.  These nodes lived in /dev/bus/usb and are used by libusb.
 
-         If you say N here, these conditions will cause warning messages
-         about USB bandwidth usage to be logged and some devices or
-         drivers may not work correctly.
+config USB_DEVICE_CLASS
+       bool "USB device class-devices (DEPRECATED)"
+       depends on USB
+       default y
+       ---help---
+         Userspace access to USB devices is granted by device-nodes exported
+         directly from the usbdev in sysfs. Old versions of the driver
+         core and udev needed additional class devices to export device nodes.
+
+         These additional devices are difficult to handle in userspace, if
+         information about USB interfaces must be available. One device
+         contains the device node, the other device contains the interface
+         data. Both devices are at the same level in sysfs (siblings) and one
+         can't access the other. The device node created directly by the
+         usb device is the parent device of the interface and therefore
+         easily accessible from the interface event.
+
+         This option provides backward compatibility for libusb device
+         nodes (lsusb) when usbfs is not used, and the following udev rule
+         doesn't exist:
+           SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", \
+           NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", MODE="0644"
 
 config USB_DYNAMIC_MINORS
-       bool "Dynamic USB minor allocation (EXPERIMENTAL)"
-       depends on USB && EXPERIMENTAL
+       bool "Dynamic USB minor allocation"
+       depends on USB
        help
          If you say Y here, the USB subsystem will use dynamic minor
          allocation for any device that uses the USB major number.
@@ -58,12 +91,13 @@ config USB_DYNAMIC_MINORS
          If you are unsure about this, say N here.
 
 config USB_SUSPEND
-       bool "USB selective suspend/resume and wakeup (EXPERIMENTAL)"
-       depends on USB && PM && EXPERIMENTAL
+       bool "USB runtime power management (suspend/resume and wakeup)"
+       depends on USB && PM_RUNTIME
        help
          If you say Y here, you can use driver calls or the sysfs
-         "power/state" file to suspend or resume individual USB
-         peripherals.
+         "power/level" file to suspend or resume individual USB
+         peripherals and to enable or disable autosuspend (see
+         Documentation/usb/power-management.txt for more details).
 
          Also, USB "remote wakeup" signaling is supported, whereby some
          USB devices (like keyboards and network adapters) can wake up
@@ -72,24 +106,25 @@ config USB_SUSPEND
 
          If you are unsure about this, say N here.
 
-
 config USB_OTG
        bool
        depends on USB && EXPERIMENTAL
-       select USB_SUSPEND
+       depends on USB_SUSPEND
        default n
 
 
 config USB_OTG_WHITELIST
        bool "Rely on OTG Targeted Peripherals List"
-       depends on USB_OTG
-       default y
+       depends on USB_OTG || EMBEDDED
+       default y if USB_OTG
+       default n if EMBEDDED
        help
          If you say Y here, the "otg_whitelist.h" file will be used as a
          product whitelist, so USB peripherals not listed there will be
          rejected during enumeration.  This behavior is required by the
          USB OTG specification for all devices not on your product's
-         "Targeted Peripherals List".
+         "Targeted Peripherals List".  "Embedded Hosts" are likewise
+         allowed to support only a limited number of peripherals.
 
          Otherwise, peripherals not listed there will only generate a
          warning and enumeration will continue.  That's more like what
@@ -98,9 +133,10 @@ config USB_OTG_WHITELIST
 
 config USB_OTG_BLACKLIST_HUB
        bool "Disable external hubs"
-       depends on USB_OTG
+       depends on USB_OTG || EMBEDDED
        help
          If you say Y here, then Linux will refuse to enumerate
          external hubs.  OTG hosts are allowed to reduce hardware
-         and software costs by not supporting external hubs.
+         and software costs by not supporting external hubs.  So
+         are "Embedded Hosts" that don't offer OTG support.