diff options
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/core/hcd-pci.c | 9 | ||||
-rw-r--r-- | drivers/usb/core/message.c | 2 | ||||
-rw-r--r-- | drivers/usb/core/usb.c | 6 | ||||
-rw-r--r-- | drivers/usb/gadget/pxa2xx_udc.c | 4 | ||||
-rw-r--r-- | drivers/usb/gadget/pxa2xx_udc.h | 8 | ||||
-rw-r--r-- | drivers/usb/host/ohci-lh7a404.c | 2 | ||||
-rw-r--r-- | drivers/usb/host/ohci-omap.c | 1 | ||||
-rw-r--r-- | drivers/usb/host/ohci-s3c2410.c | 1 | ||||
-rw-r--r-- | drivers/usb/host/sl811-hcd.c | 16 | ||||
-rw-r--r-- | drivers/usb/media/vicam.c | 4 | ||||
-rw-r--r-- | drivers/usb/net/pegasus.c | 29 | ||||
-rw-r--r-- | drivers/usb/serial/airprime.c | 3 | ||||
-rw-r--r-- | drivers/usb/serial/ftdi_sio.c | 8 | ||||
-rw-r--r-- | drivers/usb/serial/option.c | 11 |
14 files changed, 63 insertions, 41 deletions
diff --git a/drivers/usb/core/hcd-pci.c b/drivers/usb/core/hcd-pci.c index cbb451d227d2..6385d1a99b60 100644 --- a/drivers/usb/core/hcd-pci.c +++ b/drivers/usb/core/hcd-pci.c | |||
@@ -242,7 +242,6 @@ int usb_hcd_pci_suspend (struct pci_dev *dev, pm_message_t message) | |||
242 | case HC_STATE_SUSPENDED: | 242 | case HC_STATE_SUSPENDED: |
243 | /* no DMA or IRQs except when HC is active */ | 243 | /* no DMA or IRQs except when HC is active */ |
244 | if (dev->current_state == PCI_D0) { | 244 | if (dev->current_state == PCI_D0) { |
245 | free_irq (hcd->irq, hcd); | ||
246 | pci_save_state (dev); | 245 | pci_save_state (dev); |
247 | pci_disable_device (dev); | 246 | pci_disable_device (dev); |
248 | } | 247 | } |
@@ -374,14 +373,6 @@ int usb_hcd_pci_resume (struct pci_dev *dev) | |||
374 | 373 | ||
375 | hcd->state = HC_STATE_RESUMING; | 374 | hcd->state = HC_STATE_RESUMING; |
376 | hcd->saw_irq = 0; | 375 | hcd->saw_irq = 0; |
377 | retval = request_irq (dev->irq, usb_hcd_irq, SA_SHIRQ, | ||
378 | hcd->irq_descr, hcd); | ||
379 | if (retval < 0) { | ||
380 | dev_err (hcd->self.controller, | ||
381 | "can't restore IRQ after resume!\n"); | ||
382 | usb_hc_died (hcd); | ||
383 | return retval; | ||
384 | } | ||
385 | 376 | ||
386 | retval = hcd->driver->resume (hcd); | 377 | retval = hcd->driver->resume (hcd); |
387 | if (!HC_IS_RUNNING (hcd->state)) { | 378 | if (!HC_IS_RUNNING (hcd->state)) { |
diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c index c47c8052b486..f1fb67fe22a8 100644 --- a/drivers/usb/core/message.c +++ b/drivers/usb/core/message.c | |||
@@ -987,7 +987,7 @@ void usb_disable_device(struct usb_device *dev, int skip_ep0) | |||
987 | 987 | ||
988 | /* remove this interface if it has been registered */ | 988 | /* remove this interface if it has been registered */ |
989 | interface = dev->actconfig->interface[i]; | 989 | interface = dev->actconfig->interface[i]; |
990 | if (!klist_node_attached(&interface->dev.knode_bus)) | 990 | if (!device_is_registered(&interface->dev)) |
991 | continue; | 991 | continue; |
992 | dev_dbg (&dev->dev, "unregistering interface %s\n", | 992 | dev_dbg (&dev->dev, "unregistering interface %s\n", |
993 | interface->dev.bus_id); | 993 | interface->dev.bus_id); |
diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c index 087af73a59dd..7d131509e419 100644 --- a/drivers/usb/core/usb.c +++ b/drivers/usb/core/usb.c | |||
@@ -303,7 +303,7 @@ int usb_driver_claim_interface(struct usb_driver *driver, | |||
303 | /* if interface was already added, bind now; else let | 303 | /* if interface was already added, bind now; else let |
304 | * the future device_add() bind it, bypassing probe() | 304 | * the future device_add() bind it, bypassing probe() |
305 | */ | 305 | */ |
306 | if (klist_node_attached(&dev->knode_bus)) | 306 | if (device_is_registered(dev)) |
307 | device_bind_driver(dev); | 307 | device_bind_driver(dev); |
308 | 308 | ||
309 | return 0; | 309 | return 0; |
@@ -336,8 +336,8 @@ void usb_driver_release_interface(struct usb_driver *driver, | |||
336 | if (iface->condition != USB_INTERFACE_BOUND) | 336 | if (iface->condition != USB_INTERFACE_BOUND) |
337 | return; | 337 | return; |
338 | 338 | ||
339 | /* release only after device_add() */ | 339 | /* don't release if the interface hasn't been added yet */ |
340 | if (klist_node_attached(&dev->knode_bus)) { | 340 | if (device_is_registered(dev)) { |
341 | iface->condition = USB_INTERFACE_UNBINDING; | 341 | iface->condition = USB_INTERFACE_UNBINDING; |
342 | device_release_driver(dev); | 342 | device_release_driver(dev); |
343 | } | 343 | } |
diff --git a/drivers/usb/gadget/pxa2xx_udc.c b/drivers/usb/gadget/pxa2xx_udc.c index 1507738337c4..73f8c9404156 100644 --- a/drivers/usb/gadget/pxa2xx_udc.c +++ b/drivers/usb/gadget/pxa2xx_udc.c | |||
@@ -422,7 +422,7 @@ static inline void ep0_idle (struct pxa2xx_udc *dev) | |||
422 | } | 422 | } |
423 | 423 | ||
424 | static int | 424 | static int |
425 | write_packet(volatile u32 *uddr, struct pxa2xx_request *req, unsigned max) | 425 | write_packet(volatile unsigned long *uddr, struct pxa2xx_request *req, unsigned max) |
426 | { | 426 | { |
427 | u8 *buf; | 427 | u8 *buf; |
428 | unsigned length, count; | 428 | unsigned length, count; |
@@ -2602,7 +2602,7 @@ static int __exit pxa2xx_udc_remove(struct device *_dev) | |||
2602 | * VBUS IRQs should probably be ignored so that the PXA device just acts | 2602 | * VBUS IRQs should probably be ignored so that the PXA device just acts |
2603 | * "dead" to USB hosts until system resume. | 2603 | * "dead" to USB hosts until system resume. |
2604 | */ | 2604 | */ |
2605 | static int pxa2xx_udc_suspend(struct device *dev, u32 state, u32 level) | 2605 | static int pxa2xx_udc_suspend(struct device *dev, pm_message_t state, u32 level) |
2606 | { | 2606 | { |
2607 | struct pxa2xx_udc *udc = dev_get_drvdata(dev); | 2607 | struct pxa2xx_udc *udc = dev_get_drvdata(dev); |
2608 | 2608 | ||
diff --git a/drivers/usb/gadget/pxa2xx_udc.h b/drivers/usb/gadget/pxa2xx_udc.h index d0bc396a85d5..a58f3e6e71f1 100644 --- a/drivers/usb/gadget/pxa2xx_udc.h +++ b/drivers/usb/gadget/pxa2xx_udc.h | |||
@@ -69,11 +69,11 @@ struct pxa2xx_ep { | |||
69 | * UDDR = UDC Endpoint Data Register (the fifo) | 69 | * UDDR = UDC Endpoint Data Register (the fifo) |
70 | * DRCM = DMA Request Channel Map | 70 | * DRCM = DMA Request Channel Map |
71 | */ | 71 | */ |
72 | volatile u32 *reg_udccs; | 72 | volatile unsigned long *reg_udccs; |
73 | volatile u32 *reg_ubcr; | 73 | volatile unsigned long *reg_ubcr; |
74 | volatile u32 *reg_uddr; | 74 | volatile unsigned long *reg_uddr; |
75 | #ifdef USE_DMA | 75 | #ifdef USE_DMA |
76 | volatile u32 *reg_drcmr; | 76 | volatile unsigned long *reg_drcmr; |
77 | #define drcmr(n) .reg_drcmr = & DRCMR ## n , | 77 | #define drcmr(n) .reg_drcmr = & DRCMR ## n , |
78 | #else | 78 | #else |
79 | #define drcmr(n) | 79 | #define drcmr(n) |
diff --git a/drivers/usb/host/ohci-lh7a404.c b/drivers/usb/host/ohci-lh7a404.c index 817620d73841..859aca7be753 100644 --- a/drivers/usb/host/ohci-lh7a404.c +++ b/drivers/usb/host/ohci-lh7a404.c | |||
@@ -17,8 +17,6 @@ | |||
17 | */ | 17 | */ |
18 | 18 | ||
19 | #include <asm/hardware.h> | 19 | #include <asm/hardware.h> |
20 | #include <asm/mach-types.h> | ||
21 | #include <asm/arch/hardware.h> | ||
22 | 20 | ||
23 | 21 | ||
24 | extern int usb_disabled(void); | 22 | extern int usb_disabled(void); |
diff --git a/drivers/usb/host/ohci-omap.c b/drivers/usb/host/ohci-omap.c index 5cde76faab93..d8f3ba7ad52e 100644 --- a/drivers/usb/host/ohci-omap.c +++ b/drivers/usb/host/ohci-omap.c | |||
@@ -18,7 +18,6 @@ | |||
18 | #include <asm/io.h> | 18 | #include <asm/io.h> |
19 | #include <asm/mach-types.h> | 19 | #include <asm/mach-types.h> |
20 | 20 | ||
21 | #include <asm/arch/hardware.h> | ||
22 | #include <asm/arch/mux.h> | 21 | #include <asm/arch/mux.h> |
23 | #include <asm/arch/irqs.h> | 22 | #include <asm/arch/irqs.h> |
24 | #include <asm/arch/gpio.h> | 23 | #include <asm/arch/gpio.h> |
diff --git a/drivers/usb/host/ohci-s3c2410.c b/drivers/usb/host/ohci-s3c2410.c index 3d9bcf78a9a4..da7d5478f74d 100644 --- a/drivers/usb/host/ohci-s3c2410.c +++ b/drivers/usb/host/ohci-s3c2410.c | |||
@@ -20,7 +20,6 @@ | |||
20 | */ | 20 | */ |
21 | 21 | ||
22 | #include <asm/hardware.h> | 22 | #include <asm/hardware.h> |
23 | #include <asm/mach-types.h> | ||
24 | #include <asm/hardware/clock.h> | 23 | #include <asm/hardware/clock.h> |
25 | #include <asm/arch/usb-control.h> | 24 | #include <asm/arch/usb-control.h> |
26 | 25 | ||
diff --git a/drivers/usb/host/sl811-hcd.c b/drivers/usb/host/sl811-hcd.c index d2a1fd40dfcb..d42a15d10a46 100644 --- a/drivers/usb/host/sl811-hcd.c +++ b/drivers/usb/host/sl811-hcd.c | |||
@@ -782,6 +782,9 @@ retry: | |||
782 | /* usb 1.1 says max 90% of a frame is available for periodic transfers. | 782 | /* usb 1.1 says max 90% of a frame is available for periodic transfers. |
783 | * this driver doesn't promise that much since it's got to handle an | 783 | * this driver doesn't promise that much since it's got to handle an |
784 | * IRQ per packet; irq handling latencies also use up that time. | 784 | * IRQ per packet; irq handling latencies also use up that time. |
785 | * | ||
786 | * NOTE: the periodic schedule is a sparse tree, with the load for | ||
787 | * each branch minimized. see fig 3.5 in the OHCI spec for example. | ||
785 | */ | 788 | */ |
786 | #define MAX_PERIODIC_LOAD 500 /* out of 1000 usec */ | 789 | #define MAX_PERIODIC_LOAD 500 /* out of 1000 usec */ |
787 | 790 | ||
@@ -843,6 +846,7 @@ static int sl811h_urb_enqueue( | |||
843 | if (!(sl811->port1 & (1 << USB_PORT_FEAT_ENABLE)) | 846 | if (!(sl811->port1 & (1 << USB_PORT_FEAT_ENABLE)) |
844 | || !HC_IS_RUNNING(hcd->state)) { | 847 | || !HC_IS_RUNNING(hcd->state)) { |
845 | retval = -ENODEV; | 848 | retval = -ENODEV; |
849 | kfree(ep); | ||
846 | goto fail; | 850 | goto fail; |
847 | } | 851 | } |
848 | 852 | ||
@@ -911,8 +915,16 @@ static int sl811h_urb_enqueue( | |||
911 | case PIPE_ISOCHRONOUS: | 915 | case PIPE_ISOCHRONOUS: |
912 | case PIPE_INTERRUPT: | 916 | case PIPE_INTERRUPT: |
913 | urb->interval = ep->period; | 917 | urb->interval = ep->period; |
914 | if (ep->branch < PERIODIC_SIZE) | 918 | if (ep->branch < PERIODIC_SIZE) { |
919 | /* NOTE: the phase is correct here, but the value | ||
920 | * needs offsetting by the transfer queue depth. | ||
921 | * All current drivers ignore start_frame, so this | ||
922 | * is unlikely to ever matter... | ||
923 | */ | ||
924 | urb->start_frame = (sl811->frame & (PERIODIC_SIZE - 1)) | ||
925 | + ep->branch; | ||
915 | break; | 926 | break; |
927 | } | ||
916 | 928 | ||
917 | retval = balance(sl811, ep->period, ep->load); | 929 | retval = balance(sl811, ep->period, ep->load); |
918 | if (retval < 0) | 930 | if (retval < 0) |
@@ -1122,7 +1134,7 @@ sl811h_hub_descriptor ( | |||
1122 | desc->wHubCharacteristics = (__force __u16)cpu_to_le16(temp); | 1134 | desc->wHubCharacteristics = (__force __u16)cpu_to_le16(temp); |
1123 | 1135 | ||
1124 | /* two bitmaps: ports removable, and legacy PortPwrCtrlMask */ | 1136 | /* two bitmaps: ports removable, and legacy PortPwrCtrlMask */ |
1125 | desc->bitmap[0] = 1 << 1; | 1137 | desc->bitmap[0] = 0 << 1; |
1126 | desc->bitmap[1] = ~0; | 1138 | desc->bitmap[1] = ~0; |
1127 | } | 1139 | } |
1128 | 1140 | ||
diff --git a/drivers/usb/media/vicam.c b/drivers/usb/media/vicam.c index 4a5857c53f11..0bc0b1247a6b 100644 --- a/drivers/usb/media/vicam.c +++ b/drivers/usb/media/vicam.c | |||
@@ -1148,7 +1148,7 @@ vicam_write_proc_gain(struct file *file, const char *buffer, | |||
1148 | static void | 1148 | static void |
1149 | vicam_create_proc_root(void) | 1149 | vicam_create_proc_root(void) |
1150 | { | 1150 | { |
1151 | vicam_proc_root = create_proc_entry("video/vicam", S_IFDIR, 0); | 1151 | vicam_proc_root = proc_mkdir("video/vicam", NULL); |
1152 | 1152 | ||
1153 | if (vicam_proc_root) | 1153 | if (vicam_proc_root) |
1154 | vicam_proc_root->owner = THIS_MODULE; | 1154 | vicam_proc_root->owner = THIS_MODULE; |
@@ -1181,7 +1181,7 @@ vicam_create_proc_entry(struct vicam_camera *cam) | |||
1181 | 1181 | ||
1182 | sprintf(name, "video%d", cam->vdev.minor); | 1182 | sprintf(name, "video%d", cam->vdev.minor); |
1183 | 1183 | ||
1184 | cam->proc_dir = create_proc_entry(name, S_IFDIR, vicam_proc_root); | 1184 | cam->proc_dir = proc_mkdir(name, vicam_proc_root); |
1185 | 1185 | ||
1186 | if ( !cam->proc_dir ) | 1186 | if ( !cam->proc_dir ) |
1187 | return; // FIXME: We should probably return an error here | 1187 | return; // FIXME: We should probably return an error here |
diff --git a/drivers/usb/net/pegasus.c b/drivers/usb/net/pegasus.c index 7484d34780fc..6a4ffe6c3977 100644 --- a/drivers/usb/net/pegasus.c +++ b/drivers/usb/net/pegasus.c | |||
@@ -648,6 +648,13 @@ static void read_bulk_callback(struct urb *urb, struct pt_regs *regs) | |||
648 | } | 648 | } |
649 | 649 | ||
650 | /* | 650 | /* |
651 | * If the packet is unreasonably long, quietly drop it rather than | ||
652 | * kernel panicing by calling skb_put. | ||
653 | */ | ||
654 | if (pkt_len > PEGASUS_MTU) | ||
655 | goto goon; | ||
656 | |||
657 | /* | ||
651 | * at this point we are sure pegasus->rx_skb != NULL | 658 | * at this point we are sure pegasus->rx_skb != NULL |
652 | * so we go ahead and pass up the packet. | 659 | * so we go ahead and pass up the packet. |
653 | */ | 660 | */ |
@@ -886,15 +893,17 @@ static inline void get_interrupt_interval(pegasus_t * pegasus) | |||
886 | __u8 data[2]; | 893 | __u8 data[2]; |
887 | 894 | ||
888 | read_eprom_word(pegasus, 4, (__u16 *) data); | 895 | read_eprom_word(pegasus, 4, (__u16 *) data); |
889 | if (data[1] < 0x80) { | 896 | if (pegasus->usb->speed != USB_SPEED_HIGH) { |
890 | if (netif_msg_timer(pegasus)) | 897 | if (data[1] < 0x80) { |
891 | dev_info(&pegasus->intf->dev, | 898 | if (netif_msg_timer(pegasus)) |
892 | "intr interval changed from %ums to %ums\n", | 899 | dev_info(&pegasus->intf->dev, "intr interval " |
893 | data[1], 0x80); | 900 | "changed from %ums to %ums\n", |
894 | data[1] = 0x80; | 901 | data[1], 0x80); |
895 | #ifdef PEGASUS_WRITE_EEPROM | 902 | data[1] = 0x80; |
896 | write_eprom_word(pegasus, 4, *(__u16 *) data); | 903 | #ifdef PEGASUS_WRITE_EEPROM |
904 | write_eprom_word(pegasus, 4, *(__u16 *) data); | ||
897 | #endif | 905 | #endif |
906 | } | ||
898 | } | 907 | } |
899 | pegasus->intr_interval = data[1]; | 908 | pegasus->intr_interval = data[1]; |
900 | } | 909 | } |
@@ -904,8 +913,9 @@ static void set_carrier(struct net_device *net) | |||
904 | pegasus_t *pegasus = netdev_priv(net); | 913 | pegasus_t *pegasus = netdev_priv(net); |
905 | u16 tmp; | 914 | u16 tmp; |
906 | 915 | ||
907 | if (read_mii_word(pegasus, pegasus->phy, MII_BMSR, &tmp)) | 916 | if (!read_mii_word(pegasus, pegasus->phy, MII_BMSR, &tmp)) |
908 | return; | 917 | return; |
918 | |||
909 | if (tmp & BMSR_LSTATUS) | 919 | if (tmp & BMSR_LSTATUS) |
910 | netif_carrier_on(net); | 920 | netif_carrier_on(net); |
911 | else | 921 | else |
@@ -1355,6 +1365,7 @@ static void pegasus_disconnect(struct usb_interface *intf) | |||
1355 | cancel_delayed_work(&pegasus->carrier_check); | 1365 | cancel_delayed_work(&pegasus->carrier_check); |
1356 | unregister_netdev(pegasus->net); | 1366 | unregister_netdev(pegasus->net); |
1357 | usb_put_dev(interface_to_usbdev(intf)); | 1367 | usb_put_dev(interface_to_usbdev(intf)); |
1368 | unlink_all_urbs(pegasus); | ||
1358 | free_all_urbs(pegasus); | 1369 | free_all_urbs(pegasus); |
1359 | free_skb_pool(pegasus); | 1370 | free_skb_pool(pegasus); |
1360 | if (pegasus->rx_skb) | 1371 | if (pegasus->rx_skb) |
diff --git a/drivers/usb/serial/airprime.c b/drivers/usb/serial/airprime.c index a4ce0008d69b..926d4c2c1600 100644 --- a/drivers/usb/serial/airprime.c +++ b/drivers/usb/serial/airprime.c | |||
@@ -16,7 +16,8 @@ | |||
16 | #include "usb-serial.h" | 16 | #include "usb-serial.h" |
17 | 17 | ||
18 | static struct usb_device_id id_table [] = { | 18 | static struct usb_device_id id_table [] = { |
19 | { USB_DEVICE(0xf3d, 0x0112) }, | 19 | { USB_DEVICE(0xf3d, 0x0112) }, /* AirPrime CDMA Wireless PC Card */ |
20 | { USB_DEVICE(0x1410, 0x1110) }, /* Novatel Wireless Merlin CDMA */ | ||
20 | { }, | 21 | { }, |
21 | }; | 22 | }; |
22 | MODULE_DEVICE_TABLE(usb, id_table); | 23 | MODULE_DEVICE_TABLE(usb, id_table); |
diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c index 4e434cb10bb1..5a8631c8a4a7 100644 --- a/drivers/usb/serial/ftdi_sio.c +++ b/drivers/usb/serial/ftdi_sio.c | |||
@@ -1846,10 +1846,12 @@ static void ftdi_set_termios (struct usb_serial_port *port, struct termios *old_ | |||
1846 | } else { | 1846 | } else { |
1847 | /* set the baudrate determined before */ | 1847 | /* set the baudrate determined before */ |
1848 | if (change_speed(port)) { | 1848 | if (change_speed(port)) { |
1849 | err("%s urb failed to set baurdrate", __FUNCTION__); | 1849 | err("%s urb failed to set baudrate", __FUNCTION__); |
1850 | } | ||
1851 | /* Ensure RTS and DTR are raised when baudrate changed from 0 */ | ||
1852 | if ((old_termios->c_cflag & CBAUD) == B0) { | ||
1853 | set_mctrl(port, TIOCM_DTR | TIOCM_RTS); | ||
1850 | } | 1854 | } |
1851 | /* Ensure RTS and DTR are raised */ | ||
1852 | set_mctrl(port, TIOCM_DTR | TIOCM_RTS); | ||
1853 | } | 1855 | } |
1854 | 1856 | ||
1855 | /* Set flow control */ | 1857 | /* Set flow control */ |
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c index 92d0f925d053..4989e5740d18 100644 --- a/drivers/usb/serial/option.c +++ b/drivers/usb/serial/option.c | |||
@@ -25,6 +25,9 @@ | |||
25 | 2005-06-20 v0.4.1 add missing braces :-/ | 25 | 2005-06-20 v0.4.1 add missing braces :-/ |
26 | killed end-of-line whitespace | 26 | killed end-of-line whitespace |
27 | 2005-07-15 v0.4.2 rename WLAN product to FUSION, add FUSION2 | 27 | 2005-07-15 v0.4.2 rename WLAN product to FUSION, add FUSION2 |
28 | 2005-09-10 v0.4.3 added HUAWEI E600 card and Audiovox AirCard | ||
29 | 2005-09-20 v0.4.4 increased recv buffer size: the card sometimes | ||
30 | wants to send >2000 bytes. | ||
28 | 31 | ||
29 | Work sponsored by: Sigos GmbH, Germany <info@sigos.de> | 32 | Work sponsored by: Sigos GmbH, Germany <info@sigos.de> |
30 | 33 | ||
@@ -71,15 +74,21 @@ static int option_send_setup(struct usb_serial_port *port); | |||
71 | 74 | ||
72 | /* Vendor and product IDs */ | 75 | /* Vendor and product IDs */ |
73 | #define OPTION_VENDOR_ID 0x0AF0 | 76 | #define OPTION_VENDOR_ID 0x0AF0 |
77 | #define HUAWEI_VENDOR_ID 0x12D1 | ||
78 | #define AUDIOVOX_VENDOR_ID 0x0F3D | ||
74 | 79 | ||
75 | #define OPTION_PRODUCT_OLD 0x5000 | 80 | #define OPTION_PRODUCT_OLD 0x5000 |
76 | #define OPTION_PRODUCT_FUSION 0x6000 | 81 | #define OPTION_PRODUCT_FUSION 0x6000 |
77 | #define OPTION_PRODUCT_FUSION2 0x6300 | 82 | #define OPTION_PRODUCT_FUSION2 0x6300 |
83 | #define HUAWEI_PRODUCT_E600 0x1001 | ||
84 | #define AUDIOVOX_PRODUCT_AIRCARD 0x0112 | ||
78 | 85 | ||
79 | static struct usb_device_id option_ids[] = { | 86 | static struct usb_device_id option_ids[] = { |
80 | { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_OLD) }, | 87 | { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_OLD) }, |
81 | { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUSION) }, | 88 | { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUSION) }, |
82 | { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUSION2) }, | 89 | { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUSION2) }, |
90 | { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E600) }, | ||
91 | { USB_DEVICE(AUDIOVOX_VENDOR_ID, AUDIOVOX_PRODUCT_AIRCARD) }, | ||
83 | { } /* Terminating entry */ | 92 | { } /* Terminating entry */ |
84 | }; | 93 | }; |
85 | 94 | ||
@@ -132,7 +141,7 @@ static int debug; | |||
132 | 141 | ||
133 | #define N_IN_URB 4 | 142 | #define N_IN_URB 4 |
134 | #define N_OUT_URB 1 | 143 | #define N_OUT_URB 1 |
135 | #define IN_BUFLEN 1024 | 144 | #define IN_BUFLEN 4096 |
136 | #define OUT_BUFLEN 128 | 145 | #define OUT_BUFLEN 128 |
137 | 146 | ||
138 | struct option_port_private { | 147 | struct option_port_private { |