diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-01-09 15:09:47 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-01-09 15:09:47 -0500 |
| commit | 55b81e6f2795484ea8edf5805c95c007cacfa736 (patch) | |
| tree | c3724975107857fcc03b5dd649c462e4f72397be /include/linux | |
| parent | 5983faf942f260023e547f3c5f38c1033c35cc9b (diff) | |
| parent | 08e87d0d773dc9ca5faf4c3306e238ed0ea129b0 (diff) | |
Merge branch 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
* 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (232 commits)
USB: Add USB-ID for Multiplex RC serial adapter to cp210x.c
xhci: Clean up 32-bit build warnings.
USB: update documentation for usbmon
usb: usb-storage doesn't support dynamic id currently, the patch disables the feature to fix an oops
drivers/usb/class/cdc-acm.c: clear dangling pointer
drivers/usb/dwc3/dwc3-pci.c: introduce missing kfree
drivers/usb/host/isp1760-if.c: introduce missing kfree
usb: option: add ZD Incorporated HSPA modem
usb: ch9: fix up MaxStreams helper
USB: usb-skeleton.c: cleanup open_count
USB: usb-skeleton.c: fix open/disconnect race
xhci: Properly handle COMP_2ND_BW_ERR
USB: remove dead code from suspend/resume path
USB: add quirk for another camera
drivers: usb: wusbcore: Fix dependency for USB_WUSB
xhci: Better debugging for critical host errors.
xhci: Be less verbose during URB cancellation.
xhci: Remove debugging about ring structure allocation.
xhci: Remove debugging about toggling cycle bits.
xhci: Remove debugging for individual transfers.
...
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/nls.h | 5 | ||||
| -rw-r--r-- | include/linux/platform_data/mv_usb.h | 18 | ||||
| -rw-r--r-- | include/linux/platform_data/s3c-hsudc.h | 34 | ||||
| -rw-r--r-- | include/linux/usb.h | 14 | ||||
| -rw-r--r-- | include/linux/usb/ch11.h | 31 | ||||
| -rw-r--r-- | include/linux/usb/ch9.h | 20 | ||||
| -rw-r--r-- | include/linux/usb/gadget.h | 26 | ||||
| -rw-r--r-- | include/linux/usb/hcd.h | 2 | ||||
| -rw-r--r-- | include/linux/usb/renesas_usbhs.h | 10 | ||||
| -rw-r--r-- | include/linux/usb/serial.h | 11 |
10 files changed, 146 insertions, 25 deletions
diff --git a/include/linux/nls.h b/include/linux/nls.h index d47beef08dfd..5dc635f8d79e 100644 --- a/include/linux/nls.h +++ b/include/linux/nls.h | |||
| @@ -43,7 +43,7 @@ enum utf16_endian { | |||
| 43 | UTF16_BIG_ENDIAN | 43 | UTF16_BIG_ENDIAN |
| 44 | }; | 44 | }; |
| 45 | 45 | ||
| 46 | /* nls.c */ | 46 | /* nls_base.c */ |
| 47 | extern int register_nls(struct nls_table *); | 47 | extern int register_nls(struct nls_table *); |
| 48 | extern int unregister_nls(struct nls_table *); | 48 | extern int unregister_nls(struct nls_table *); |
| 49 | extern struct nls_table *load_nls(char *); | 49 | extern struct nls_table *load_nls(char *); |
| @@ -52,7 +52,8 @@ extern struct nls_table *load_nls_default(void); | |||
| 52 | 52 | ||
| 53 | extern int utf8_to_utf32(const u8 *s, int len, unicode_t *pu); | 53 | extern int utf8_to_utf32(const u8 *s, int len, unicode_t *pu); |
| 54 | extern int utf32_to_utf8(unicode_t u, u8 *s, int maxlen); | 54 | extern int utf32_to_utf8(unicode_t u, u8 *s, int maxlen); |
| 55 | extern int utf8s_to_utf16s(const u8 *s, int len, wchar_t *pwcs); | 55 | extern int utf8s_to_utf16s(const u8 *s, int len, |
| 56 | enum utf16_endian endian, wchar_t *pwcs, int maxlen); | ||
| 56 | extern int utf16s_to_utf8s(const wchar_t *pwcs, int len, | 57 | extern int utf16s_to_utf8s(const wchar_t *pwcs, int len, |
| 57 | enum utf16_endian endian, u8 *s, int maxlen); | 58 | enum utf16_endian endian, u8 *s, int maxlen); |
| 58 | 59 | ||
diff --git a/include/linux/platform_data/mv_usb.h b/include/linux/platform_data/mv_usb.h index e9d9149ddf38..d94804aca764 100644 --- a/include/linux/platform_data/mv_usb.h +++ b/include/linux/platform_data/mv_usb.h | |||
| @@ -42,9 +42,23 @@ struct mv_usb_platform_data { | |||
| 42 | /* only valid for HCD. OTG or Host only*/ | 42 | /* only valid for HCD. OTG or Host only*/ |
| 43 | unsigned int mode; | 43 | unsigned int mode; |
| 44 | 44 | ||
| 45 | int (*phy_init)(unsigned int regbase); | 45 | /* This flag is used for that needs id pin checked by otg */ |
| 46 | void (*phy_deinit)(unsigned int regbase); | 46 | unsigned int disable_otg_clock_gating:1; |
| 47 | /* Force a_bus_req to be asserted */ | ||
| 48 | unsigned int otg_force_a_bus_req:1; | ||
| 49 | |||
| 50 | int (*phy_init)(void __iomem *regbase); | ||
| 51 | void (*phy_deinit)(void __iomem *regbase); | ||
| 47 | int (*set_vbus)(unsigned int vbus); | 52 | int (*set_vbus)(unsigned int vbus); |
| 53 | int (*private_init)(void __iomem *opregs, void __iomem *phyregs); | ||
| 48 | }; | 54 | }; |
| 49 | 55 | ||
| 56 | #ifndef CONFIG_HAVE_CLK | ||
| 57 | /* Dummy stub for clk framework */ | ||
| 58 | #define clk_get(dev, id) NULL | ||
| 59 | #define clk_put(clock) do {} while (0) | ||
| 60 | #define clk_enable(clock) do {} while (0) | ||
| 61 | #define clk_disable(clock) do {} while (0) | ||
| 62 | #endif | ||
| 63 | |||
| 50 | #endif | 64 | #endif |
diff --git a/include/linux/platform_data/s3c-hsudc.h b/include/linux/platform_data/s3c-hsudc.h new file mode 100644 index 000000000000..6fa109339bf9 --- /dev/null +++ b/include/linux/platform_data/s3c-hsudc.h | |||
| @@ -0,0 +1,34 @@ | |||
| 1 | /* | ||
| 2 | * S3C24XX USB 2.0 High-speed USB controller gadget driver | ||
| 3 | * | ||
| 4 | * Copyright (c) 2010 Samsung Electronics Co., Ltd. | ||
| 5 | * http://www.samsung.com/ | ||
| 6 | * | ||
| 7 | * The S3C24XX USB 2.0 high-speed USB controller supports upto 9 endpoints. | ||
| 8 | * Each endpoint can be configured as either in or out endpoint. Endpoints | ||
| 9 | * can be configured for Bulk or Interrupt transfer mode. | ||
| 10 | * | ||
| 11 | * This program is free software; you can redistribute it and/or modify | ||
| 12 | * it under the terms of the GNU General Public License version 2 as | ||
| 13 | * published by the Free Software Foundation. | ||
| 14 | */ | ||
| 15 | |||
| 16 | #ifndef __LINUX_USB_S3C_HSUDC_H | ||
| 17 | #define __LINUX_USB_S3C_HSUDC_H | ||
| 18 | |||
| 19 | /** | ||
| 20 | * s3c24xx_hsudc_platdata - Platform data for USB High-Speed gadget controller. | ||
| 21 | * @epnum: Number of endpoints to be instantiated by the controller driver. | ||
| 22 | * @gpio_init: Platform specific USB related GPIO initialization. | ||
| 23 | * @gpio_uninit: Platform specific USB releted GPIO uninitialzation. | ||
| 24 | * | ||
| 25 | * Representation of platform data for the S3C24XX USB 2.0 High Speed gadget | ||
| 26 | * controllers. | ||
| 27 | */ | ||
| 28 | struct s3c24xx_hsudc_platdata { | ||
| 29 | unsigned int epnum; | ||
| 30 | void (*gpio_init)(void); | ||
| 31 | void (*gpio_uninit)(void); | ||
| 32 | }; | ||
| 33 | |||
| 34 | #endif /* __LINUX_USB_S3C_HSUDC_H */ | ||
diff --git a/include/linux/usb.h b/include/linux/usb.h index 7f8d4d61ca47..27a4e16d2bf1 100644 --- a/include/linux/usb.h +++ b/include/linux/usb.h | |||
| @@ -1233,6 +1233,7 @@ struct urb { | |||
| 1233 | void *transfer_buffer; /* (in) associated data buffer */ | 1233 | void *transfer_buffer; /* (in) associated data buffer */ |
| 1234 | dma_addr_t transfer_dma; /* (in) dma addr for transfer_buffer */ | 1234 | dma_addr_t transfer_dma; /* (in) dma addr for transfer_buffer */ |
| 1235 | struct scatterlist *sg; /* (in) scatter gather buffer list */ | 1235 | struct scatterlist *sg; /* (in) scatter gather buffer list */ |
| 1236 | int num_mapped_sgs; /* (internal) mapped sg entries */ | ||
| 1236 | int num_sgs; /* (in) number of entries in the sg list */ | 1237 | int num_sgs; /* (in) number of entries in the sg list */ |
| 1237 | u32 transfer_buffer_length; /* (in) data buffer length */ | 1238 | u32 transfer_buffer_length; /* (in) data buffer length */ |
| 1238 | u32 actual_length; /* (return) actual transfer length */ | 1239 | u32 actual_length; /* (return) actual transfer length */ |
| @@ -1610,6 +1611,19 @@ usb_maxpacket(struct usb_device *udev, int pipe, int is_out) | |||
| 1610 | 1611 | ||
| 1611 | /* ----------------------------------------------------------------------- */ | 1612 | /* ----------------------------------------------------------------------- */ |
| 1612 | 1613 | ||
| 1614 | /* translate USB error codes to codes user space understands */ | ||
| 1615 | static inline int usb_translate_errors(int error_code) | ||
| 1616 | { | ||
| 1617 | switch (error_code) { | ||
| 1618 | case 0: | ||
| 1619 | case -ENOMEM: | ||
| 1620 | case -ENODEV: | ||
| 1621 | return error_code; | ||
| 1622 | default: | ||
| 1623 | return -EIO; | ||
| 1624 | } | ||
| 1625 | } | ||
| 1626 | |||
| 1613 | /* Events from the usb core */ | 1627 | /* Events from the usb core */ |
| 1614 | #define USB_DEVICE_ADD 0x0001 | 1628 | #define USB_DEVICE_ADD 0x0001 |
| 1615 | #define USB_DEVICE_REMOVE 0x0002 | 1629 | #define USB_DEVICE_REMOVE 0x0002 |
diff --git a/include/linux/usb/ch11.h b/include/linux/usb/ch11.h index 4ebaf0824179..31fdb4c6ee3d 100644 --- a/include/linux/usb/ch11.h +++ b/include/linux/usb/ch11.h | |||
| @@ -26,7 +26,6 @@ | |||
| 26 | #define HUB_RESET_TT 9 | 26 | #define HUB_RESET_TT 9 |
| 27 | #define HUB_GET_TT_STATE 10 | 27 | #define HUB_GET_TT_STATE 10 |
| 28 | #define HUB_STOP_TT 11 | 28 | #define HUB_STOP_TT 11 |
| 29 | #define HUB_SET_DEPTH 12 | ||
| 30 | 29 | ||
| 31 | /* | 30 | /* |
| 32 | * Hub class additional requests defined by USB 3.0 spec | 31 | * Hub class additional requests defined by USB 3.0 spec |
| @@ -165,11 +164,20 @@ struct usb_port_status { | |||
| 165 | * wHubCharacteristics (masks) | 164 | * wHubCharacteristics (masks) |
| 166 | * See USB 2.0 spec Table 11-13, offset 3 | 165 | * See USB 2.0 spec Table 11-13, offset 3 |
| 167 | */ | 166 | */ |
| 168 | #define HUB_CHAR_LPSM 0x0003 /* D1 .. D0 */ | 167 | #define HUB_CHAR_LPSM 0x0003 /* Logical Power Switching Mode mask */ |
| 169 | #define HUB_CHAR_COMPOUND 0x0004 /* D2 */ | 168 | #define HUB_CHAR_COMMON_LPSM 0x0000 /* All ports power control at once */ |
| 170 | #define HUB_CHAR_OCPM 0x0018 /* D4 .. D3 */ | 169 | #define HUB_CHAR_INDV_PORT_LPSM 0x0001 /* per-port power control */ |
| 171 | #define HUB_CHAR_TTTT 0x0060 /* D6 .. D5 */ | 170 | #define HUB_CHAR_NO_LPSM 0x0002 /* no power switching */ |
| 172 | #define HUB_CHAR_PORTIND 0x0080 /* D7 */ | 171 | |
| 172 | #define HUB_CHAR_COMPOUND 0x0004 /* hub is part of a compound device */ | ||
| 173 | |||
| 174 | #define HUB_CHAR_OCPM 0x0018 /* Over-Current Protection Mode mask */ | ||
| 175 | #define HUB_CHAR_COMMON_OCPM 0x0000 /* All ports Over-Current reporting */ | ||
| 176 | #define HUB_CHAR_INDV_PORT_OCPM 0x0008 /* per-port Over-current reporting */ | ||
| 177 | #define HUB_CHAR_NO_OCPM 0x0010 /* No Over-current Protection support */ | ||
| 178 | |||
| 179 | #define HUB_CHAR_TTTT 0x0060 /* TT Think Time mask */ | ||
| 180 | #define HUB_CHAR_PORTIND 0x0080 /* per-port indicators (LEDs) */ | ||
| 173 | 181 | ||
| 174 | struct usb_hub_status { | 182 | struct usb_hub_status { |
| 175 | __le16 wHubStatus; | 183 | __le16 wHubStatus; |
| @@ -198,6 +206,17 @@ struct usb_hub_status { | |||
| 198 | #define USB_DT_HUB_NONVAR_SIZE 7 | 206 | #define USB_DT_HUB_NONVAR_SIZE 7 |
| 199 | #define USB_DT_SS_HUB_SIZE 12 | 207 | #define USB_DT_SS_HUB_SIZE 12 |
| 200 | 208 | ||
| 209 | /* | ||
| 210 | * Hub Device descriptor | ||
| 211 | * USB Hub class device protocols | ||
| 212 | */ | ||
| 213 | |||
| 214 | #define USB_HUB_PR_FS 0 /* Full speed hub */ | ||
| 215 | #define USB_HUB_PR_HS_NO_TT 0 /* Hi-speed hub without TT */ | ||
| 216 | #define USB_HUB_PR_HS_SINGLE_TT 1 /* Hi-speed hub with single TT */ | ||
| 217 | #define USB_HUB_PR_HS_MULTI_TT 2 /* Hi-speed hub with multiple TT */ | ||
| 218 | #define USB_HUB_PR_SS 3 /* Super speed hub */ | ||
| 219 | |||
| 201 | struct usb_hub_descriptor { | 220 | struct usb_hub_descriptor { |
| 202 | __u8 bDescLength; | 221 | __u8 bDescLength; |
| 203 | __u8 bDescriptorType; | 222 | __u8 bDescriptorType; |
diff --git a/include/linux/usb/ch9.h b/include/linux/usb/ch9.h index d5da6c68c250..61b29057b054 100644 --- a/include/linux/usb/ch9.h +++ b/include/linux/usb/ch9.h | |||
| @@ -605,8 +605,26 @@ struct usb_ss_ep_comp_descriptor { | |||
| 605 | } __attribute__ ((packed)); | 605 | } __attribute__ ((packed)); |
| 606 | 606 | ||
| 607 | #define USB_DT_SS_EP_COMP_SIZE 6 | 607 | #define USB_DT_SS_EP_COMP_SIZE 6 |
| 608 | |||
| 608 | /* Bits 4:0 of bmAttributes if this is a bulk endpoint */ | 609 | /* Bits 4:0 of bmAttributes if this is a bulk endpoint */ |
| 609 | #define USB_SS_MAX_STREAMS(p) (1 << ((p) & 0x1f)) | 610 | static inline int |
| 611 | usb_ss_max_streams(const struct usb_ss_ep_comp_descriptor *comp) | ||
| 612 | { | ||
| 613 | int max_streams; | ||
| 614 | |||
| 615 | if (!comp) | ||
| 616 | return 0; | ||
| 617 | |||
| 618 | max_streams = comp->bmAttributes & 0x1f; | ||
| 619 | |||
| 620 | if (!max_streams) | ||
| 621 | return 0; | ||
| 622 | |||
| 623 | max_streams = 1 << max_streams; | ||
| 624 | |||
| 625 | return max_streams; | ||
| 626 | } | ||
| 627 | |||
| 610 | /* Bits 1:0 of bmAttributes if this is an isoc endpoint */ | 628 | /* Bits 1:0 of bmAttributes if this is an isoc endpoint */ |
| 611 | #define USB_SS_MULT(p) (1 + ((p) & 0x3)) | 629 | #define USB_SS_MULT(p) (1 + ((p) & 0x3)) |
| 612 | 630 | ||
diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h index 1d3a67523ffc..da653b5c7134 100644 --- a/include/linux/usb/gadget.h +++ b/include/linux/usb/gadget.h | |||
| @@ -20,6 +20,7 @@ | |||
| 20 | #include <linux/init.h> | 20 | #include <linux/init.h> |
| 21 | #include <linux/list.h> | 21 | #include <linux/list.h> |
| 22 | #include <linux/slab.h> | 22 | #include <linux/slab.h> |
| 23 | #include <linux/scatterlist.h> | ||
| 23 | #include <linux/types.h> | 24 | #include <linux/types.h> |
| 24 | #include <linux/usb/ch9.h> | 25 | #include <linux/usb/ch9.h> |
| 25 | 26 | ||
| @@ -32,6 +33,9 @@ struct usb_ep; | |||
| 32 | * @dma: DMA address corresponding to 'buf'. If you don't set this | 33 | * @dma: DMA address corresponding to 'buf'. If you don't set this |
| 33 | * field, and the usb controller needs one, it is responsible | 34 | * field, and the usb controller needs one, it is responsible |
| 34 | * for mapping and unmapping the buffer. | 35 | * for mapping and unmapping the buffer. |
| 36 | * @sg: a scatterlist for SG-capable controllers. | ||
| 37 | * @num_sgs: number of SG entries | ||
| 38 | * @num_mapped_sgs: number of SG entries mapped to DMA (internal) | ||
| 35 | * @length: Length of that data | 39 | * @length: Length of that data |
| 36 | * @stream_id: The stream id, when USB3.0 bulk streams are being used | 40 | * @stream_id: The stream id, when USB3.0 bulk streams are being used |
| 37 | * @no_interrupt: If true, hints that no completion irq is needed. | 41 | * @no_interrupt: If true, hints that no completion irq is needed. |
| @@ -88,6 +92,10 @@ struct usb_request { | |||
| 88 | unsigned length; | 92 | unsigned length; |
| 89 | dma_addr_t dma; | 93 | dma_addr_t dma; |
| 90 | 94 | ||
| 95 | struct scatterlist *sg; | ||
| 96 | unsigned num_sgs; | ||
| 97 | unsigned num_mapped_sgs; | ||
| 98 | |||
| 91 | unsigned stream_id:16; | 99 | unsigned stream_id:16; |
| 92 | unsigned no_interrupt:1; | 100 | unsigned no_interrupt:1; |
| 93 | unsigned zero:1; | 101 | unsigned zero:1; |
| @@ -164,7 +172,7 @@ struct usb_ep { | |||
| 164 | unsigned maxpacket:16; | 172 | unsigned maxpacket:16; |
| 165 | unsigned max_streams:16; | 173 | unsigned max_streams:16; |
| 166 | unsigned mult:2; | 174 | unsigned mult:2; |
| 167 | unsigned maxburst:4; | 175 | unsigned maxburst:5; |
| 168 | u8 address; | 176 | u8 address; |
| 169 | const struct usb_endpoint_descriptor *desc; | 177 | const struct usb_endpoint_descriptor *desc; |
| 170 | const struct usb_ss_ep_comp_descriptor *comp_desc; | 178 | const struct usb_ss_ep_comp_descriptor *comp_desc; |
| @@ -477,8 +485,9 @@ struct usb_gadget_ops { | |||
| 477 | * driver setup() requests | 485 | * driver setup() requests |
| 478 | * @ep_list: List of other endpoints supported by the device. | 486 | * @ep_list: List of other endpoints supported by the device. |
| 479 | * @speed: Speed of current connection to USB host. | 487 | * @speed: Speed of current connection to USB host. |
| 480 | * @is_dualspeed: True if the controller supports both high and full speed | 488 | * @max_speed: Maximal speed the UDC can handle. UDC must support this |
| 481 | * operation. If it does, the gadget driver must also support both. | 489 | * and all slower speeds. |
| 490 | * @sg_supported: true if we can handle scatter-gather | ||
| 482 | * @is_otg: True if the USB device port uses a Mini-AB jack, so that the | 491 | * @is_otg: True if the USB device port uses a Mini-AB jack, so that the |
| 483 | * gadget driver must provide a USB OTG descriptor. | 492 | * gadget driver must provide a USB OTG descriptor. |
| 484 | * @is_a_peripheral: False unless is_otg, the "A" end of a USB cable | 493 | * @is_a_peripheral: False unless is_otg, the "A" end of a USB cable |
| @@ -518,7 +527,8 @@ struct usb_gadget { | |||
| 518 | struct usb_ep *ep0; | 527 | struct usb_ep *ep0; |
| 519 | struct list_head ep_list; /* of usb_ep */ | 528 | struct list_head ep_list; /* of usb_ep */ |
| 520 | enum usb_device_speed speed; | 529 | enum usb_device_speed speed; |
| 521 | unsigned is_dualspeed:1; | 530 | enum usb_device_speed max_speed; |
| 531 | unsigned sg_supported:1; | ||
| 522 | unsigned is_otg:1; | 532 | unsigned is_otg:1; |
| 523 | unsigned is_a_peripheral:1; | 533 | unsigned is_a_peripheral:1; |
| 524 | unsigned b_hnp_enable:1; | 534 | unsigned b_hnp_enable:1; |
| @@ -549,7 +559,7 @@ static inline struct usb_gadget *dev_to_usb_gadget(struct device *dev) | |||
| 549 | static inline int gadget_is_dualspeed(struct usb_gadget *g) | 559 | static inline int gadget_is_dualspeed(struct usb_gadget *g) |
| 550 | { | 560 | { |
| 551 | #ifdef CONFIG_USB_GADGET_DUALSPEED | 561 | #ifdef CONFIG_USB_GADGET_DUALSPEED |
| 552 | /* runtime test would check "g->is_dualspeed" ... that might be | 562 | /* runtime test would check "g->max_speed" ... that might be |
| 553 | * useful to work around hardware bugs, but is mostly pointless | 563 | * useful to work around hardware bugs, but is mostly pointless |
| 554 | */ | 564 | */ |
| 555 | return 1; | 565 | return 1; |
| @@ -567,7 +577,7 @@ static inline int gadget_is_superspeed(struct usb_gadget *g) | |||
| 567 | { | 577 | { |
| 568 | #ifdef CONFIG_USB_GADGET_SUPERSPEED | 578 | #ifdef CONFIG_USB_GADGET_SUPERSPEED |
| 569 | /* | 579 | /* |
| 570 | * runtime test would check "g->is_superspeed" ... that might be | 580 | * runtime test would check "g->max_speed" ... that might be |
| 571 | * useful to work around hardware bugs, but is mostly pointless | 581 | * useful to work around hardware bugs, but is mostly pointless |
| 572 | */ | 582 | */ |
| 573 | return 1; | 583 | return 1; |
| @@ -760,7 +770,7 @@ static inline int usb_gadget_disconnect(struct usb_gadget *gadget) | |||
| 760 | /** | 770 | /** |
| 761 | * struct usb_gadget_driver - driver for usb 'slave' devices | 771 | * struct usb_gadget_driver - driver for usb 'slave' devices |
| 762 | * @function: String describing the gadget's function | 772 | * @function: String describing the gadget's function |
| 763 | * @speed: Highest speed the driver handles. | 773 | * @max_speed: Highest speed the driver handles. |
| 764 | * @setup: Invoked for ep0 control requests that aren't handled by | 774 | * @setup: Invoked for ep0 control requests that aren't handled by |
| 765 | * the hardware level driver. Most calls must be handled by | 775 | * the hardware level driver. Most calls must be handled by |
| 766 | * the gadget driver, including descriptor and configuration | 776 | * the gadget driver, including descriptor and configuration |
| @@ -824,7 +834,7 @@ static inline int usb_gadget_disconnect(struct usb_gadget *gadget) | |||
| 824 | */ | 834 | */ |
| 825 | struct usb_gadget_driver { | 835 | struct usb_gadget_driver { |
| 826 | char *function; | 836 | char *function; |
| 827 | enum usb_device_speed speed; | 837 | enum usb_device_speed max_speed; |
| 828 | void (*unbind)(struct usb_gadget *); | 838 | void (*unbind)(struct usb_gadget *); |
| 829 | int (*setup)(struct usb_gadget *, | 839 | int (*setup)(struct usb_gadget *, |
| 830 | const struct usb_ctrlrequest *); | 840 | const struct usb_ctrlrequest *); |
diff --git a/include/linux/usb/hcd.h b/include/linux/usb/hcd.h index 03354d557b79..b2f62f3a32af 100644 --- a/include/linux/usb/hcd.h +++ b/include/linux/usb/hcd.h | |||
| @@ -99,7 +99,6 @@ struct usb_hcd { | |||
| 99 | */ | 99 | */ |
| 100 | unsigned long flags; | 100 | unsigned long flags; |
| 101 | #define HCD_FLAG_HW_ACCESSIBLE 0 /* at full power */ | 101 | #define HCD_FLAG_HW_ACCESSIBLE 0 /* at full power */ |
| 102 | #define HCD_FLAG_SAW_IRQ 1 | ||
| 103 | #define HCD_FLAG_POLL_RH 2 /* poll for rh status? */ | 102 | #define HCD_FLAG_POLL_RH 2 /* poll for rh status? */ |
| 104 | #define HCD_FLAG_POLL_PENDING 3 /* status has changed? */ | 103 | #define HCD_FLAG_POLL_PENDING 3 /* status has changed? */ |
| 105 | #define HCD_FLAG_WAKEUP_PENDING 4 /* root hub is resuming? */ | 104 | #define HCD_FLAG_WAKEUP_PENDING 4 /* root hub is resuming? */ |
| @@ -110,7 +109,6 @@ struct usb_hcd { | |||
| 110 | * be slightly faster than test_bit(). | 109 | * be slightly faster than test_bit(). |
| 111 | */ | 110 | */ |
| 112 | #define HCD_HW_ACCESSIBLE(hcd) ((hcd)->flags & (1U << HCD_FLAG_HW_ACCESSIBLE)) | 111 | #define HCD_HW_ACCESSIBLE(hcd) ((hcd)->flags & (1U << HCD_FLAG_HW_ACCESSIBLE)) |
| 113 | #define HCD_SAW_IRQ(hcd) ((hcd)->flags & (1U << HCD_FLAG_SAW_IRQ)) | ||
| 114 | #define HCD_POLL_RH(hcd) ((hcd)->flags & (1U << HCD_FLAG_POLL_RH)) | 112 | #define HCD_POLL_RH(hcd) ((hcd)->flags & (1U << HCD_FLAG_POLL_RH)) |
| 115 | #define HCD_POLL_PENDING(hcd) ((hcd)->flags & (1U << HCD_FLAG_POLL_PENDING)) | 113 | #define HCD_POLL_PENDING(hcd) ((hcd)->flags & (1U << HCD_FLAG_POLL_PENDING)) |
| 116 | #define HCD_WAKEUP_PENDING(hcd) ((hcd)->flags & (1U << HCD_FLAG_WAKEUP_PENDING)) | 114 | #define HCD_WAKEUP_PENDING(hcd) ((hcd)->flags & (1U << HCD_FLAG_WAKEUP_PENDING)) |
diff --git a/include/linux/usb/renesas_usbhs.h b/include/linux/usb/renesas_usbhs.h index e5a40c318548..0d3f98879256 100644 --- a/include/linux/usb/renesas_usbhs.h +++ b/include/linux/usb/renesas_usbhs.h | |||
| @@ -67,6 +67,14 @@ struct renesas_usbhs_platform_callback { | |||
| 67 | /* | 67 | /* |
| 68 | * option: | 68 | * option: |
| 69 | * | 69 | * |
| 70 | * for board specific clock control | ||
| 71 | */ | ||
| 72 | void (*power_ctrl)(struct platform_device *pdev, | ||
| 73 | void __iomem *base, int enable); | ||
| 74 | |||
| 75 | /* | ||
| 76 | * option: | ||
| 77 | * | ||
| 70 | * Phy reset for platform | 78 | * Phy reset for platform |
| 71 | */ | 79 | */ |
| 72 | void (*phy_reset)(struct platform_device *pdev); | 80 | void (*phy_reset)(struct platform_device *pdev); |
| @@ -118,7 +126,7 @@ struct renesas_usbhs_driver_param { | |||
| 118 | * | 126 | * |
| 119 | * delay time from notify_hotplug callback | 127 | * delay time from notify_hotplug callback |
| 120 | */ | 128 | */ |
| 121 | int detection_delay; | 129 | int detection_delay; /* msec */ |
| 122 | 130 | ||
| 123 | /* | 131 | /* |
| 124 | * option: | 132 | * option: |
diff --git a/include/linux/usb/serial.h b/include/linux/usb/serial.h index b29f70b2ecae..4267a9c717ba 100644 --- a/include/linux/usb/serial.h +++ b/include/linux/usb/serial.h | |||
| @@ -58,11 +58,13 @@ enum port_dev_state { | |||
| 58 | * @read_urb: pointer to the bulk in struct urb for this port. | 58 | * @read_urb: pointer to the bulk in struct urb for this port. |
| 59 | * @bulk_in_endpointAddress: endpoint address for the bulk in pipe for this | 59 | * @bulk_in_endpointAddress: endpoint address for the bulk in pipe for this |
| 60 | * port. | 60 | * port. |
| 61 | * @bulk_in_buffers: pointers to the bulk in buffers for this port | ||
| 62 | * @read_urbs: pointers to the bulk in urbs for this port | ||
| 63 | * @read_urbs_free: status bitmap the for bulk in urbs | ||
| 61 | * @bulk_out_buffer: pointer to the bulk out buffer for this port. | 64 | * @bulk_out_buffer: pointer to the bulk out buffer for this port. |
| 62 | * @bulk_out_size: the size of the bulk_out_buffer, in bytes. | 65 | * @bulk_out_size: the size of the bulk_out_buffer, in bytes. |
| 63 | * @write_urb: pointer to the bulk out struct urb for this port. | 66 | * @write_urb: pointer to the bulk out struct urb for this port. |
| 64 | * @write_fifo: kfifo used to buffer outgoing data | 67 | * @write_fifo: kfifo used to buffer outgoing data |
| 65 | * @write_urb_busy: port`s writing status | ||
| 66 | * @bulk_out_buffers: pointers to the bulk out buffers for this port | 68 | * @bulk_out_buffers: pointers to the bulk out buffers for this port |
| 67 | * @write_urbs: pointers to the bulk out urbs for this port | 69 | * @write_urbs: pointers to the bulk out urbs for this port |
| 68 | * @write_urbs_free: status bitmap the for bulk out urbs | 70 | * @write_urbs_free: status bitmap the for bulk out urbs |
| @@ -99,11 +101,14 @@ struct usb_serial_port { | |||
| 99 | struct urb *read_urb; | 101 | struct urb *read_urb; |
| 100 | __u8 bulk_in_endpointAddress; | 102 | __u8 bulk_in_endpointAddress; |
| 101 | 103 | ||
| 104 | unsigned char *bulk_in_buffers[2]; | ||
| 105 | struct urb *read_urbs[2]; | ||
| 106 | unsigned long read_urbs_free; | ||
| 107 | |||
| 102 | unsigned char *bulk_out_buffer; | 108 | unsigned char *bulk_out_buffer; |
| 103 | int bulk_out_size; | 109 | int bulk_out_size; |
| 104 | struct urb *write_urb; | 110 | struct urb *write_urb; |
| 105 | struct kfifo write_fifo; | 111 | struct kfifo write_fifo; |
| 106 | int write_urb_busy; | ||
| 107 | 112 | ||
| 108 | unsigned char *bulk_out_buffers[2]; | 113 | unsigned char *bulk_out_buffers[2]; |
| 109 | struct urb *write_urbs[2]; | 114 | struct urb *write_urbs[2]; |
| @@ -340,7 +345,7 @@ extern void usb_serial_generic_disconnect(struct usb_serial *serial); | |||
| 340 | extern void usb_serial_generic_release(struct usb_serial *serial); | 345 | extern void usb_serial_generic_release(struct usb_serial *serial); |
| 341 | extern int usb_serial_generic_register(int debug); | 346 | extern int usb_serial_generic_register(int debug); |
| 342 | extern void usb_serial_generic_deregister(void); | 347 | extern void usb_serial_generic_deregister(void); |
| 343 | extern int usb_serial_generic_submit_read_urb(struct usb_serial_port *port, | 348 | extern int usb_serial_generic_submit_read_urbs(struct usb_serial_port *port, |
| 344 | gfp_t mem_flags); | 349 | gfp_t mem_flags); |
| 345 | extern void usb_serial_generic_process_read_urb(struct urb *urb); | 350 | extern void usb_serial_generic_process_read_urb(struct urb *urb); |
| 346 | extern int usb_serial_generic_prepare_write_buffer(struct usb_serial_port *port, | 351 | extern int usb_serial_generic_prepare_write_buffer(struct usb_serial_port *port, |
