Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (220 commits) USB: backlight, appledisplay: fix incomplete registration failure handling USB: pl2303: remove unnecessary reset of usb_device in urbs USB: ftdi_sio: remove obsolete check in unthrottle USB: ftdi_sio: remove unused tx_bytes counter USB: qcaux: driver for auxiliary serial ports on Qualcomm devices USB: pl2303: initial TIOCGSERIAL support USB: option: add Longcheer/Longsung vendor ID USB: fix I2C API usage in ohci-pnx4008. USB: usbmon: mask seconds properly in text API USB: sisusbvga: no unnecessary GFP_ATOMIC USB: storage: onetouch: unnecessary GFP_ATOMIC USB: serial: ftdi: add CONTEC vendor and product id USB: remove references to port->port.count from the serial drivers USB: tty: Prune uses of tty_request_room in the USB layer USB: tty: Add a function to insert a string of characters with the same flag USB: don't read past config->interface[] if usb_control_msg() fails in usb_reset_configuration() USB: tty: kill request_room for USB ACM class USB: tty: sort out the request_room handling for whiteheat USB: storage: fix misplaced parenthesis USB: vstusb.c: removal of driver for Vernier Software & Technology, Inc., devices and spectrometers ...
This commit is contained in:
@@ -9,6 +9,8 @@
|
||||
#ifndef __LINUX_USB_OTG_H
|
||||
#define __LINUX_USB_OTG_H
|
||||
|
||||
#include <linux/notifier.h>
|
||||
|
||||
/* OTG defines lots of enumeration states before device reset */
|
||||
enum usb_otg_state {
|
||||
OTG_STATE_UNDEFINED = 0,
|
||||
@@ -33,6 +35,14 @@ enum usb_otg_state {
|
||||
OTG_STATE_A_VBUS_ERR,
|
||||
};
|
||||
|
||||
enum usb_xceiv_events {
|
||||
USB_EVENT_NONE, /* no events or cable disconnected */
|
||||
USB_EVENT_VBUS, /* vbus valid event */
|
||||
USB_EVENT_ID, /* id was grounded */
|
||||
USB_EVENT_CHARGER, /* usb dedicated charger */
|
||||
USB_EVENT_ENUMERATED, /* gadget driver enumerated */
|
||||
};
|
||||
|
||||
#define USB_OTG_PULLUP_ID (1 << 0)
|
||||
#define USB_OTG_PULLDOWN_DP (1 << 1)
|
||||
#define USB_OTG_PULLDOWN_DM (1 << 2)
|
||||
@@ -70,6 +80,9 @@ struct otg_transceiver {
|
||||
struct otg_io_access_ops *io_ops;
|
||||
void __iomem *io_priv;
|
||||
|
||||
/* for notification of usb_xceiv_events */
|
||||
struct blocking_notifier_head notifier;
|
||||
|
||||
/* to pass extra port status to the root hub */
|
||||
u16 port_status;
|
||||
u16 port_change;
|
||||
@@ -213,6 +226,18 @@ otg_start_srp(struct otg_transceiver *otg)
|
||||
return otg->start_srp(otg);
|
||||
}
|
||||
|
||||
/* notifiers */
|
||||
static inline int
|
||||
otg_register_notifier(struct otg_transceiver *otg, struct notifier_block *nb)
|
||||
{
|
||||
return blocking_notifier_chain_register(&otg->notifier, nb);
|
||||
}
|
||||
|
||||
static inline void
|
||||
otg_unregister_notifier(struct otg_transceiver *otg, struct notifier_block *nb)
|
||||
{
|
||||
blocking_notifier_chain_unregister(&otg->notifier, nb);
|
||||
}
|
||||
|
||||
/* for OTG controller drivers (and maybe other stuff) */
|
||||
extern int usb_bus_start_enum(struct usb_bus *bus, unsigned port_num);
|
||||
|
Reference in New Issue
Block a user