Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

USB: zaurus: support another broken Zaurus

This SL-6000 says Direct Line, not Ethernet

v2: added Reporter and Link

Signed-off-by: Oliver Neukum <oneukum@suse.com>
Reported-by: Ross Maynard <bids.7405@bigpond.com>
Link: https://bugzilla.kernel.org/show_bug.cgi?id=215361
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Oliver Neukum and committed by
David S. Miller
6605cc67 603c692d

+24
+12
drivers/net/usb/cdc_ether.c
··· 583 583 .bInterfaceSubClass = USB_CDC_SUBCLASS_ETHERNET, \ 584 584 .bInterfaceProtocol = USB_CDC_PROTO_NONE 585 585 586 + #define ZAURUS_FAKE_INTERFACE \ 587 + .bInterfaceClass = USB_CLASS_COMM, \ 588 + .bInterfaceSubClass = USB_CDC_SUBCLASS_MDLM, \ 589 + .bInterfaceProtocol = USB_CDC_PROTO_NONE 590 + 586 591 /* SA-1100 based Sharp Zaurus ("collie"), or compatible; 587 592 * wire-incompatible with true CDC Ethernet implementations. 588 593 * (And, it seems, needlessly so...) ··· 640 635 .idVendor = 0x04DD, 641 636 .idProduct = 0x9032, /* SL-6000 */ 642 637 ZAURUS_MASTER_INTERFACE, 638 + .driver_info = 0, 639 + }, { 640 + .match_flags = USB_DEVICE_ID_MATCH_INT_INFO 641 + | USB_DEVICE_ID_MATCH_DEVICE, 642 + .idVendor = 0x04DD, 643 + .idProduct = 0x9032, /* SL-6000 */ 644 + ZAURUS_FAKE_INTERFACE, 643 645 .driver_info = 0, 644 646 }, { 645 647 .match_flags = USB_DEVICE_ID_MATCH_INT_INFO
+12
drivers/net/usb/zaurus.c
··· 256 256 .bInterfaceSubClass = USB_CDC_SUBCLASS_ETHERNET, \ 257 257 .bInterfaceProtocol = USB_CDC_PROTO_NONE 258 258 259 + #define ZAURUS_FAKE_INTERFACE \ 260 + .bInterfaceClass = USB_CLASS_COMM, \ 261 + .bInterfaceSubClass = USB_CDC_SUBCLASS_MDLM, \ 262 + .bInterfaceProtocol = USB_CDC_PROTO_NONE 263 + 259 264 /* SA-1100 based Sharp Zaurus ("collie"), or compatible. */ 260 265 { 261 266 .match_flags = USB_DEVICE_ID_MATCH_INT_INFO ··· 318 313 .idProduct = 0x9032, /* SL-6000 */ 319 314 ZAURUS_MASTER_INTERFACE, 320 315 .driver_info = ZAURUS_PXA_INFO, 316 + }, { 317 + .match_flags = USB_DEVICE_ID_MATCH_INT_INFO 318 + | USB_DEVICE_ID_MATCH_DEVICE, 319 + .idVendor = 0x04DD, 320 + .idProduct = 0x9032, /* SL-6000 */ 321 + ZAURUS_FAKE_INTERFACE, 322 + .driver_info = (unsigned long)&bogus_mdlm_info, 321 323 }, { 322 324 .match_flags = USB_DEVICE_ID_MATCH_INT_INFO 323 325 | USB_DEVICE_ID_MATCH_DEVICE,