| From f4d6f3585a62ccd21f905d8f08eeb2ba3260a596 Mon Sep 17 00:00:00 2001 |
| From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Date: Fri, 14 Feb 2020 08:11:48 -0800 |
| Subject: [PATCH] USB: misc: iowarrior: add support for the 100 device |
| |
| commit bab5417f5f0118ce914bc5b2f8381e959e891155 upstream. |
| |
| Add a new device id for the 100 devie. It has 4 interfaces like the 28 |
| and 28L devices but a larger endpoint so more I/O pins. |
| |
| Cc: Christoph Jung <jung@codemercs.com> |
| Cc: stable <stable@vger.kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Link: https://lore.kernel.org/r/20200214161148.GA3963518@kroah.com |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/usb/misc/iowarrior.c b/drivers/usb/misc/iowarrior.c |
| index 4ef669ac40f5..a0b9f9cfbfc3 100644 |
| --- a/drivers/usb/misc/iowarrior.c |
| +++ b/drivers/usb/misc/iowarrior.c |
| @@ -36,6 +36,7 @@ |
| /* fuller speed iowarrior */ |
| #define USB_DEVICE_ID_CODEMERCS_IOW28 0x1504 |
| #define USB_DEVICE_ID_CODEMERCS_IOW28L 0x1505 |
| +#define USB_DEVICE_ID_CODEMERCS_IOW100 0x1506 |
| |
| /* OEMed devices */ |
| #define USB_DEVICE_ID_CODEMERCS_IOW24SAG 0x158a |
| @@ -148,6 +149,7 @@ static const struct usb_device_id iowarrior_ids[] = { |
| {USB_DEVICE(USB_VENDOR_ID_CODEMERCS, USB_DEVICE_ID_CODEMERCS_IOW56AM)}, |
| {USB_DEVICE(USB_VENDOR_ID_CODEMERCS, USB_DEVICE_ID_CODEMERCS_IOW28)}, |
| {USB_DEVICE(USB_VENDOR_ID_CODEMERCS, USB_DEVICE_ID_CODEMERCS_IOW28L)}, |
| + {USB_DEVICE(USB_VENDOR_ID_CODEMERCS, USB_DEVICE_ID_CODEMERCS_IOW100)}, |
| {} /* Terminating entry */ |
| }; |
| MODULE_DEVICE_TABLE(usb, iowarrior_ids); |
| @@ -390,6 +392,7 @@ static ssize_t iowarrior_write(struct file *file, |
| case USB_DEVICE_ID_CODEMERCS_IOW56AM: |
| case USB_DEVICE_ID_CODEMERCS_IOW28: |
| case USB_DEVICE_ID_CODEMERCS_IOW28L: |
| + case USB_DEVICE_ID_CODEMERCS_IOW100: |
| /* The IOW56 uses asynchronous IO and more urbs */ |
| if (atomic_read(&dev->write_busy) == MAX_WRITES_IN_FLIGHT) { |
| /* Wait until we are below the limit for submitted urbs */ |
| @@ -801,7 +804,8 @@ static int iowarrior_probe(struct usb_interface *interface, |
| if ((dev->product_id == USB_DEVICE_ID_CODEMERCS_IOW56) || |
| (dev->product_id == USB_DEVICE_ID_CODEMERCS_IOW56AM) || |
| (dev->product_id == USB_DEVICE_ID_CODEMERCS_IOW28) || |
| - (dev->product_id == USB_DEVICE_ID_CODEMERCS_IOW28L)) { |
| + (dev->product_id == USB_DEVICE_ID_CODEMERCS_IOW28L) || |
| + (dev->product_id == USB_DEVICE_ID_CODEMERCS_IOW100)) { |
| res = usb_find_last_int_out_endpoint(iface_desc, |
| &dev->int_out_endpoint); |
| if (res) { |
| @@ -817,7 +821,8 @@ static int iowarrior_probe(struct usb_interface *interface, |
| ((dev->product_id == USB_DEVICE_ID_CODEMERCS_IOW56) || |
| (dev->product_id == USB_DEVICE_ID_CODEMERCS_IOW56AM) || |
| (dev->product_id == USB_DEVICE_ID_CODEMERCS_IOW28) || |
| - (dev->product_id == USB_DEVICE_ID_CODEMERCS_IOW28L))) |
| + (dev->product_id == USB_DEVICE_ID_CODEMERCS_IOW28L) || |
| + (dev->product_id == USB_DEVICE_ID_CODEMERCS_IOW100))) |
| /* IOWarrior56 has wMaxPacketSize different from report size */ |
| dev->report_size = 7; |
| |
| -- |
| 2.7.4 |
| |