Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6: (70 commits) USB: remove duplicate device id from zc0301 USB: remove duplicate device id from usb_storage USB: remove duplicate device id from keyspan USB: remove duplicate device id from ftdi_sio USB: remove duplicate device id from visor USB: a bit more coding style cleanup usbcore: trivial whitespace fixes usb-storage: use first bulk endpoints, not last EHCI: fix interrupt-driven remote wakeup USB: switch ehci-hcd to new polling scheme USB: autosuspend for usb printer driver USB Input: Added kernel module to support all GTCO CalComp USB InterWrite School products USB: Sierra Wireless auto set D0 USB: usb ethernet gadget recognizes HUSB2DEV USB: list atmel husb2_udc gadget controller USB: gadgetfs AIO tweaks USB: gadgetfs behaves better on userspace init bug USB: gadgetfs race fix USB: gadgetfs simplifications USB: gadgetfs cleanups ...
This commit is contained in:
commit
c96e2c9207
139 changed files with 5825 additions and 1568 deletions
|
@ -11,6 +11,7 @@ header-y += netfilter_arp/
|
|||
header-y += netfilter_bridge/
|
||||
header-y += netfilter_ipv4/
|
||||
header-y += netfilter_ipv6/
|
||||
header-y += usb/
|
||||
|
||||
header-y += affs_hardblocks.h
|
||||
header-y += aio_abi.h
|
||||
|
@ -326,7 +327,6 @@ unifdef-y += udp.h
|
|||
unifdef-y += uinput.h
|
||||
unifdef-y += uio.h
|
||||
unifdef-y += unistd.h
|
||||
unifdef-y += usb_ch9.h
|
||||
unifdef-y += usbdevice_fs.h
|
||||
unifdef-y += user.h
|
||||
unifdef-y += utsname.h
|
||||
|
|
|
@ -266,6 +266,7 @@ struct hid_item {
|
|||
#define HID_QUIRK_BAD_RELATIVE_KEYS 0x00010000
|
||||
#define HID_QUIRK_SKIP_OUTPUT_REPORTS 0x00020000
|
||||
#define HID_QUIRK_IGNORE_MOUSE 0x00040000
|
||||
#define HID_QUIRK_SONY_PS3_CONTROLLER 0x00080000
|
||||
|
||||
/*
|
||||
* This is the global environment of the parser. This information is
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
#define __LINUX_USB_H
|
||||
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/usb_ch9.h>
|
||||
#include <linux/usb/ch9.h>
|
||||
|
||||
#define USB_MAJOR 180
|
||||
#define USB_DEVICE_MAJOR 189
|
||||
|
@ -107,7 +107,8 @@ enum usb_interface_condition {
|
|||
* @needs_remote_wakeup: flag set when the driver requires remote-wakeup
|
||||
* capability during autosuspend.
|
||||
* @dev: driver model's view of this device
|
||||
* @class_dev: driver model's class view of this device.
|
||||
* @usb_dev: if an interface is bound to the USB major, this will point
|
||||
* to the sysfs representation for that device.
|
||||
* @pm_usage_cnt: PM usage counter for this interface; autosuspend is not
|
||||
* allowed unless the counter is 0.
|
||||
*
|
||||
|
@ -152,7 +153,7 @@ struct usb_interface {
|
|||
unsigned needs_remote_wakeup:1; /* driver requires remote wakeup */
|
||||
|
||||
struct device dev; /* interface specific device info */
|
||||
struct class_device *class_dev;
|
||||
struct device *usb_dev; /* pointer to the usb class's device, if any */
|
||||
int pm_usage_cnt; /* usage counter for autosuspend */
|
||||
};
|
||||
#define to_usb_interface(d) container_of(d, struct usb_interface, dev)
|
||||
|
@ -372,7 +373,7 @@ struct usb_device {
|
|||
char *serial; /* iSerialNumber string, if present */
|
||||
|
||||
struct list_head filelist;
|
||||
struct class_device *class_dev;
|
||||
struct device *usbfs_dev;
|
||||
struct dentry *usbfs_dentry; /* usbfs dentry entry for the device */
|
||||
|
||||
/*
|
||||
|
@ -475,6 +476,8 @@ extern void usb_driver_release_interface(struct usb_driver *driver,
|
|||
struct usb_interface *iface);
|
||||
const struct usb_device_id *usb_match_id(struct usb_interface *interface,
|
||||
const struct usb_device_id *id);
|
||||
extern int usb_match_one_id(struct usb_interface *interface,
|
||||
const struct usb_device_id *id);
|
||||
|
||||
extern struct usb_interface *usb_find_interface(struct usb_driver *drv,
|
||||
int minor);
|
||||
|
@ -553,6 +556,18 @@ static inline int usb_endpoint_xfer_bulk(const struct usb_endpoint_descriptor *e
|
|||
USB_ENDPOINT_XFER_BULK);
|
||||
}
|
||||
|
||||
/**
|
||||
* usb_endpoint_xfer_control - check if the endpoint has control transfer type
|
||||
* @epd: endpoint to be checked
|
||||
*
|
||||
* Returns true if the endpoint is of type control, otherwise it returns false.
|
||||
*/
|
||||
static inline int usb_endpoint_xfer_control(const struct usb_endpoint_descriptor *epd)
|
||||
{
|
||||
return ((epd->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) ==
|
||||
USB_ENDPOINT_XFER_CONTROL);
|
||||
}
|
||||
|
||||
/**
|
||||
* usb_endpoint_xfer_int - check if the endpoint has interrupt transfer type
|
||||
* @epd: endpoint to be checked
|
||||
|
@ -723,11 +738,21 @@ static inline int usb_endpoint_is_isoc_out(const struct usb_endpoint_descriptor
|
|||
|
||||
/* ----------------------------------------------------------------------- */
|
||||
|
||||
/* Stuff for dynamic usb ids */
|
||||
struct usb_dynids {
|
||||
spinlock_t lock;
|
||||
struct list_head list;
|
||||
};
|
||||
|
||||
struct usb_dynid {
|
||||
struct list_head node;
|
||||
struct usb_device_id id;
|
||||
};
|
||||
|
||||
extern ssize_t usb_store_new_id(struct usb_dynids *dynids,
|
||||
struct device_driver *driver,
|
||||
const char *buf, size_t count);
|
||||
|
||||
/**
|
||||
* struct usbdrv_wrap - wrapper for driver-model structure
|
||||
* @driver: The driver-model core driver structure.
|
||||
|
@ -1086,7 +1111,6 @@ struct urb
|
|||
struct kref kref; /* reference count of the URB */
|
||||
spinlock_t lock; /* lock for the URB */
|
||||
void *hcpriv; /* private data for host controller */
|
||||
int bandwidth; /* bandwidth for INT/ISO request */
|
||||
atomic_t use_count; /* concurrent submissions counter */
|
||||
u8 reject; /* submissions will fail */
|
||||
|
||||
|
|
5
include/linux/usb/Kbuild
Normal file
5
include/linux/usb/Kbuild
Normal file
|
@ -0,0 +1,5 @@
|
|||
unifdef-y += audio.h
|
||||
unifdef-y += cdc.h
|
||||
unifdef-y += ch9.h
|
||||
unifdef-y += midi.h
|
||||
|
|
@ -224,6 +224,7 @@ struct usb_device_descriptor {
|
|||
#define USB_CLASS_CONTENT_SEC 0x0d /* content security */
|
||||
#define USB_CLASS_VIDEO 0x0e
|
||||
#define USB_CLASS_WIRELESS_CONTROLLER 0xe0
|
||||
#define USB_CLASS_MISC 0xef
|
||||
#define USB_CLASS_APP_SPEC 0xfe
|
||||
#define USB_CLASS_VENDOR_SPEC 0xff
|
||||
|
|
@ -179,6 +179,9 @@ static inline void usb_set_serial_data (struct usb_serial *serial, void *data)
|
|||
* memory structure allocation at this point in time.
|
||||
* @shutdown: pointer to the driver's shutdown function. This will be
|
||||
* called when the device is removed from the system.
|
||||
* @usb_driver: pointer to the struct usb_driver that controls this
|
||||
* device. This is necessary to allow dynamic ids to be added to
|
||||
* the driver from sysfs.
|
||||
*
|
||||
* This structure is defines a USB Serial driver. It provides all of
|
||||
* the information that the USB serial core code needs. If the function
|
||||
|
@ -202,6 +205,8 @@ struct usb_serial_driver {
|
|||
|
||||
struct list_head driver_list;
|
||||
struct device_driver driver;
|
||||
struct usb_driver *usb_driver;
|
||||
struct usb_dynids dynids;
|
||||
|
||||
int (*probe) (struct usb_serial *serial, const struct usb_device_id *id);
|
||||
int (*attach) (struct usb_serial *serial);
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
#include <asm/types.h>
|
||||
#include <asm/ioctl.h>
|
||||
|
||||
#include <linux/usb_ch9.h>
|
||||
#include <linux/usb/ch9.h>
|
||||
|
||||
/*
|
||||
* Filesystem based user-mode API to USB Gadget controller hardware
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue