summaryrefslogtreecommitdiff
path: root/target/linux/pxa/patches-2.6.21/037-gumstix-pxa270-usb-host.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/pxa/patches-2.6.21/037-gumstix-pxa270-usb-host.patch')
-rw-r--r--target/linux/pxa/patches-2.6.21/037-gumstix-pxa270-usb-host.patch356
1 files changed, 0 insertions, 356 deletions
diff --git a/target/linux/pxa/patches-2.6.21/037-gumstix-pxa270-usb-host.patch b/target/linux/pxa/patches-2.6.21/037-gumstix-pxa270-usb-host.patch
deleted file mode 100644
index 8b43765ce9..0000000000
--- a/target/linux/pxa/patches-2.6.21/037-gumstix-pxa270-usb-host.patch
+++ /dev/null
@@ -1,356 +0,0 @@
---- a/arch/arm/mach-pxa/gumstix.c
-+++ b/arch/arm/mach-pxa/gumstix.c
-@@ -22,6 +22,7 @@
- #include <asm/mach-types.h>
- #include <asm/mach/arch.h>
- #include <asm/mach/irq.h>
-+#include <asm/arch/ohci.h>
- #include <asm/arch/udc.h>
- #include <asm/arch/mmc.h>
- #include <asm/arch/pxa-regs.h>
-@@ -178,9 +179,34 @@ static struct platform_device *devices[]
- &gum_audio_device,
- };
-
-+#ifdef CONFIG_ARCH_GUMSTIX_VERDEX
-+static int gumstix_ohci_init(struct device *dev)
-+{
-+ /* setup Port1 GPIO pin. */
-+ //pxa_gpio_mode( 88 | GPIO_ALT_FN_1_IN); /* USBHPWR1 */
-+ //pxa_gpio_mode( 89 | GPIO_ALT_FN_2_OUT); /* USBHPEN1 */
-+
-+ // Turn on port 2 in host mode
-+ UP2OCR = UP2OCR_HXS | UP2OCR_HXOE | UP2OCR_DPPDE | UP2OCR_DMPDE;
-+
-+ UHCHR = (UHCHR) &
-+ ~(UHCHR_SSEP1 | UHCHR_SSEP2 | UHCHR_SSEP3 | UHCHR_SSE);
-+
-+ return 0;
-+}
-+
-+static struct pxaohci_platform_data gumstix_ohci_platform_data = {
-+ .port_mode = PMM_PERPORT_MODE,
-+ .init = gumstix_ohci_init,
-+};
-+#endif
-+
- static void __init gumstix_init(void)
- {
- pxa_set_mci_info(&gumstix_mci_platform_data);
-+#ifdef CONFIG_ARCH_GUMSTIX_VERDEX
-+ pxa_set_ohci_info(&gumstix_ohci_platform_data);
-+#endif
- pxa_set_udc_info(&gumstix_udc_info);
- #if defined(CONFIG_FB_PXA_ALPS_CDOLLAR) | defined(CONFIG_FB_PXA_SHARP_LQ043_PSP) | defined(CONFIG_FB_PXA_SAMSUNG_LTE430WQ_F0C)
- set_pxa_fb_info(&gumstix_fb_info);
---- a/drivers/usb/gadget/ether.c
-+++ b/drivers/usb/gadget/ether.c
-@@ -260,6 +260,8 @@ MODULE_PARM_DESC(host_addr, "Host Ethern
-
- #ifdef CONFIG_USB_GADGET_PXA27X
- #define DEV_CONFIG_CDC
-+extern struct usb_ep* pxa27x_ep_config(struct usb_gadget *gadget,
-+ struct usb_endpoint_descriptor *desc,int config,int interface,int alt);
- #endif
-
- #ifdef CONFIG_USB_GADGET_S3C2410
-@@ -482,15 +484,15 @@ eth_config = {
- #ifdef CONFIG_USB_ETH_RNDIS
- static struct usb_config_descriptor
- rndis_config = {
-- .bLength = sizeof rndis_config,
-+ .bLength = sizeof rndis_config,
- .bDescriptorType = USB_DT_CONFIG,
-
- /* compute wTotalLength on the fly */
-- .bNumInterfaces = 2,
-+ .bNumInterfaces = 2,
- .bConfigurationValue = DEV_RNDIS_CONFIG_VALUE,
-- .iConfiguration = STRING_RNDIS,
-+ .iConfiguration = STRING_RNDIS,
- .bmAttributes = USB_CONFIG_ATT_ONE | USB_CONFIG_ATT_SELFPOWER,
-- .bMaxPower = 50,
-+ .bMaxPower = 50,
- };
- #endif
-
-@@ -532,15 +534,15 @@ control_intf = {
- #ifdef CONFIG_USB_ETH_RNDIS
- static const struct usb_interface_descriptor
- rndis_control_intf = {
-- .bLength = sizeof rndis_control_intf,
-+ .bLength = sizeof rndis_control_intf,
- .bDescriptorType = USB_DT_INTERFACE,
-
- .bInterfaceNumber = 0,
-- .bNumEndpoints = 1,
-+ .bNumEndpoints = 1,
- .bInterfaceClass = USB_CLASS_COMM,
- .bInterfaceSubClass = USB_CDC_SUBCLASS_ACM,
- .bInterfaceProtocol = USB_CDC_ACM_PROTO_VENDOR,
-- .iInterface = STRING_RNDIS_CONTROL,
-+ .iInterface = STRING_RNDIS_CONTROL,
- };
- #endif
-
-@@ -1342,7 +1344,7 @@ static void rndis_response_complete (str
-
- static void rndis_command_complete (struct usb_ep *ep, struct usb_request *req)
- {
-- struct eth_dev *dev = ep->driver_data;
-+ struct eth_dev *dev = ep->driver_data;
- int status;
-
- /* received RNDIS command from USB_CDC_SEND_ENCAPSULATED_COMMAND */
-@@ -1578,7 +1580,7 @@ done_set_intf:
-
- /* return the result */
- buf = rndis_get_next_response (dev->rndis_config,
-- &value);
-+ &value);
- if (buf) {
- memcpy (req->buf, buf, value);
- req->complete = rndis_response_complete;
-@@ -2064,7 +2066,7 @@ static void eth_req_free (struct usb_ep
- static void
- rndis_control_ack_complete (struct usb_ep *ep, struct usb_request *req)
- {
-- struct eth_dev *dev = ep->driver_data;
-+ struct eth_dev *dev = ep->driver_data;
-
- if (req->status || req->actual != req->length)
- DEBUG (dev,
-@@ -2415,7 +2417,27 @@ eth_bind (struct usb_gadget *gadget)
-
- /* all we really need is bulk IN/OUT */
- usb_ep_autoconfig_reset (gadget);
-+#ifdef CONFIG_USB_GADGET_PXA27X
-+#ifdef CONFIG_USB_ETH_RNDIS
-+ in_ep = pxa27x_ep_config (gadget, &fs_source_desc,
-+ DEV_RNDIS_CONFIG_VALUE,
-+ (int)rndis_data_intf.bInterfaceNumber,
-+ (int)rndis_data_intf.bAlternateSetting);
-+#elif defined(DEV_CONFIG_CDC)
-+ in_ep = pxa27x_ep_config (gadget, &fs_source_desc,
-+ DEV_CONFIG_VALUE,
-+ (int)data_intf.bInterfaceNumber,
-+ (int)data_intf.bAlternateSetting);
-+#elif defined(DEV_CONFIG_SUBSET)
-+ in_ep = pxa27x_ep_config (gadget, &fs_source_desc,
-+ DEV_CONFIG_VALUE,
-+ (int)subset_data_intf.bInterfaceNumber,
-+ (int)subset_data_intf.bAlternateSetting);
-+
-+#endif //CONFIG_USB_ETH_RNDIS
-+#else
- in_ep = usb_ep_autoconfig (gadget, &fs_source_desc);
-+#endif //CONFIG_USB_GADGET_PXA27X
- if (!in_ep) {
- autoconf_fail:
- dev_err (&gadget->dev,
-@@ -2425,7 +2447,26 @@ autoconf_fail:
- }
- in_ep->driver_data = in_ep; /* claim */
-
-+#ifdef CONFIG_USB_GADGET_PXA27X
-+#ifdef CONFIG_USB_ETH_RNDIS
-+ out_ep = pxa27x_ep_config (gadget, &fs_sink_desc,
-+ DEV_RNDIS_CONFIG_VALUE,
-+ (int)rndis_data_intf.bInterfaceNumber,
-+ (int)rndis_data_intf.bAlternateSetting);
-+#elif defined(DEV_CONFIG_CDC)
-+ out_ep = pxa27x_ep_config (gadget, &fs_sink_desc,
-+ DEV_CONFIG_VALUE,
-+ (int)data_intf.bInterfaceNumber,
-+ (int)data_intf.bAlternateSetting);
-+#elif defined(DEV_CONFIG_SUBSET)
-+ out_ep = pxa27x_ep_config (gadget, &fs_sink_desc,
-+ DEV_CONFIG_VALUE,
-+ (int)subset_data_intf.bInterfaceNumber,
-+ (int)subset_data_intf.bAlternateSetting);
-+#endif //CONFIG_USB_ETH_RNDIS
-+#else
- out_ep = usb_ep_autoconfig (gadget, &fs_sink_desc);
-+#endif //CONFIG_USB_GADGET_PXA27X
- if (!out_ep)
- goto autoconf_fail;
- out_ep->driver_data = out_ep; /* claim */
-@@ -2435,7 +2476,22 @@ autoconf_fail:
- * Since some hosts expect one, try to allocate one anyway.
- */
- if (cdc || rndis) {
-+#ifdef CONFIG_USB_GADGET_PXA27X
-+#ifdef CONFIG_USB_ETH_RNDIS
-+ status_ep = pxa27x_ep_config (gadget, &fs_status_desc,
-+ DEV_RNDIS_CONFIG_VALUE,
-+ (int)rndis_control_intf.bInterfaceNumber,
-+ (int)rndis_control_intf.bAlternateSetting);
-+#elif defined(DEV_CONFIG_CDC)
-+ status_ep = pxa27x_ep_config (gadget, &fs_status_desc,
-+ DEV_CONFIG_VALUE,
-+ (int)control_intf.bInterfaceNumber,
-+ (int)control_intf.bAlternateSetting);
-+
-+#endif //CONFIG_USB_ETH_RNDIS
-+#else
- status_ep = usb_ep_autoconfig (gadget, &fs_status_desc);
-+#endif //CONFIG_USB_GADGET_PXA27X
- if (status_ep) {
- status_ep->driver_data = status_ep; /* claim */
- } else if (rndis) {
-@@ -2444,11 +2500,13 @@ autoconf_fail:
- gadget->name);
- return -ENODEV;
- #ifdef DEV_CONFIG_CDC
-+#ifndef CONFIG_USB_GADGET_PXA27X
- /* pxa25x only does CDC subset; often used with RNDIS */
- } else if (cdc) {
- control_intf.bNumEndpoints = 0;
- /* FIXME remove endpoint from descriptor list */
- #endif
-+#endif
- }
- }
- #endif
---- a/drivers/usb/gadget/file_storage.c
-+++ b/drivers/usb/gadget/file_storage.c
-@@ -280,6 +280,12 @@ MODULE_LICENSE("Dual BSD/GPL");
- #define DRIVER_PRODUCT_ID 0xa4a5 // Linux-USB File-backed Storage Gadget
-
-
-+
-+#ifdef CONFIG_USB_GADGET_PXA27X
-+extern struct usb_ep* pxa27x_ep_config(struct usb_gadget *gadget,
-+ struct usb_endpoint_descriptor *desc,int config,int interface,int alt);
-+#endif
-+
- /*
- * This driver assumes self-powered hardware and has no way for users to
- * trigger remote wakeup. It uses autoconfiguration to select endpoints
-@@ -3920,20 +3926,32 @@ static int __init fsg_bind(struct usb_ga
-
- /* Find all the endpoints we will use */
- usb_ep_autoconfig_reset(gadget);
-+#ifdef CONFIG_USB_GADGET_PXA27X
-+ ep = pxa27x_ep_config(gadget, &fs_bulk_in_desc, CONFIG_VALUE, 0, 0);
-+#else
- ep = usb_ep_autoconfig(gadget, &fs_bulk_in_desc);
-+#endif
- if (!ep)
- goto autoconf_fail;
- ep->driver_data = fsg; // claim the endpoint
- fsg->bulk_in = ep;
-
-+#ifdef CONFIG_USB_GADGET_PXA27X
-+ ep = pxa27x_ep_config(gadget, &fs_bulk_out_desc, CONFIG_VALUE, 0, 0);
-+#else
- ep = usb_ep_autoconfig(gadget, &fs_bulk_out_desc);
-+#endif
- if (!ep)
- goto autoconf_fail;
- ep->driver_data = fsg; // claim the endpoint
- fsg->bulk_out = ep;
-
- if (transport_is_cbi()) {
-+#ifdef CONFIG_USB_GADGET_PXA27X
-+ ep = pxa27x_ep_config(gadget, &fs_intr_in_desc, CONFIG_VALUE, 0, 0);
-+#else
- ep = usb_ep_autoconfig(gadget, &fs_intr_in_desc);
-+#endif
- if (!ep)
- goto autoconf_fail;
- ep->driver_data = fsg; // claim the endpoint
-@@ -4063,6 +4081,7 @@ autoconf_fail:
- rc = -ENOTSUPP;
-
- out:
-+ ERROR(fsg, "cleaning up on the way out\n");
- fsg->state = FSG_STATE_TERMINATED; // The thread is dead
- fsg_unbind(gadget);
- close_all_backing_files(fsg);
---- a/drivers/usb/gadget/serial.c
-+++ b/drivers/usb/gadget/serial.c
-@@ -126,6 +126,10 @@ static int debug = 1;
- #define GS_LOG2_NOTIFY_INTERVAL 5 /* 1 << 5 == 32 msec */
- #define GS_NOTIFY_MAXPACKET 8
-
-+#ifdef CONFIG_USB_GADGET_PXA27X
-+extern struct usb_ep* pxa27x_ep_config(struct usb_gadget *gadget,
-+ struct usb_endpoint_descriptor *desc,int config,int interface,int alt);
-+#endif
-
- /* Structures */
-
-@@ -1378,20 +1382,32 @@ static int __init gs_bind(struct usb_gad
-
- usb_ep_autoconfig_reset(gadget);
-
-+#ifdef CONFIG_USB_GADGET_PXA27X
-+ ep = pxa27x_ep_config(gadget, &gs_fullspeed_in_desc, use_acm ? GS_ACM_CONFIG_ID : GS_BULK_CONFIG_ID, gs_bulk_interface_desc.bInterfaceNumber, gs_bulk_interface_desc.bAlternateSetting);
-+#else
- ep = usb_ep_autoconfig(gadget, &gs_fullspeed_in_desc);
-+#endif
- if (!ep)
- goto autoconf_fail;
- EP_IN_NAME = ep->name;
- ep->driver_data = ep; /* claim the endpoint */
-
-+#ifdef CONFIG_USB_GADGET_PXA27X
-+ ep = pxa27x_ep_config(gadget, &gs_fullspeed_out_desc, use_acm ? GS_ACM_CONFIG_ID : GS_BULK_CONFIG_ID, gs_bulk_interface_desc.bInterfaceNumber, gs_bulk_interface_desc.bAlternateSetting);
-+#else
- ep = usb_ep_autoconfig(gadget, &gs_fullspeed_out_desc);
-+#endif
- if (!ep)
- goto autoconf_fail;
- EP_OUT_NAME = ep->name;
- ep->driver_data = ep; /* claim the endpoint */
-
- if (use_acm) {
-+#ifdef CONFIG_USB_GADGET_PXA27X
-+ ep = pxa27x_ep_config(gadget, &gs_fullspeed_notify_desc, GS_BULK_CONFIG_ID, gs_control_interface_desc.bInterfaceNumber, gs_control_interface_desc.bAlternateSetting);
-+#else
- ep = usb_ep_autoconfig(gadget, &gs_fullspeed_notify_desc);
-+#endif
- if (!ep) {
- printk(KERN_ERR "gs_bind: cannot run ACM on %s\n", gadget->name);
- goto autoconf_fail;
---- a/drivers/usb/gadget/zero.c
-+++ b/drivers/usb/gadget/zero.c
-@@ -212,6 +212,11 @@ module_param (loopdefault, bool, S_IRUGO
- #define STRING_SOURCE_SINK 250
- #define STRING_LOOPBACK 251
-
-+#ifdef CONFIG_USB_GADGET_PXA27X
-+extern struct usb_ep* pxa27x_ep_config(struct usb_gadget *gadget,
-+ struct usb_endpoint_descriptor *desc,int config,int interface,int alt);
-+#endif
-+
- /*
- * This device advertises two configurations; these numbers work
- * on a pxa250 as well as more flexible hardware.
-@@ -1155,7 +1160,11 @@ zero_bind (struct usb_gadget *gadget)
- * but there may also be important quirks to address.
- */
- usb_ep_autoconfig_reset (gadget);
-+#ifdef CONFIG_USB_GADGET_PXA27X
-+ ep = pxa27x_ep_config(gadget, &fs_source_desc, CONFIG_SOURCE_SINK, source_sink_intf.bInterfaceNumber, source_sink_intf.bAlternateSetting);
-+#else
- ep = usb_ep_autoconfig (gadget, &fs_source_desc);
-+#endif
- if (!ep) {
- autoconf_fail:
- printk (KERN_ERR "%s: can't autoconfigure on %s\n",
-@@ -1164,8 +1173,12 @@ autoconf_fail:
- }
- EP_IN_NAME = ep->name;
- ep->driver_data = ep; /* claim */
--
-+
-+#ifdef CONFIG_USB_GADGET_PXA27X
-+ ep = pxa27x_ep_config(gadget, &fs_sink_desc, CONFIG_SOURCE_SINK, source_sink_intf.bInterfaceNumber, source_sink_intf.bAlternateSetting);
-+#else
- ep = usb_ep_autoconfig (gadget, &fs_sink_desc);
-+#endif
- if (!ep)
- goto autoconf_fail;
- EP_OUT_NAME = ep->name;