diff options
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.patch | 356 |
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; |