Commit 7b6ee48d authored by Oliver Neukum's avatar Oliver Neukum Committed by David S. Miller

cdc-phonet: use common parser

This moves cdc-phonet to the common parser for CDC users
to reduce code duplication.
Signed-off-by: default avatarOliver Neukum <oneukum@suse.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 8492ed45
...@@ -340,32 +340,13 @@ static int usbpn_probe(struct usb_interface *intf, const struct usb_device_id *i ...@@ -340,32 +340,13 @@ static int usbpn_probe(struct usb_interface *intf, const struct usb_device_id *i
u8 *data; u8 *data;
int phonet = 0; int phonet = 0;
int len, err; int len, err;
struct usb_cdc_parsed_header hdr;
data = intf->altsetting->extra; data = intf->altsetting->extra;
len = intf->altsetting->extralen; len = intf->altsetting->extralen;
while (len >= 3) { cdc_parse_cdc_header(&hdr, intf, data, len);
u8 dlen = data[0]; union_header = hdr.usb_cdc_union_desc;
if (dlen < 3) phonet = hdr.phonet_magic_present;
return -EINVAL;
/* bDescriptorType */
if (data[1] == USB_DT_CS_INTERFACE) {
/* bDescriptorSubType */
switch (data[2]) {
case USB_CDC_UNION_TYPE:
if (union_header || dlen < 5)
break;
union_header =
(struct usb_cdc_union_desc *)data;
break;
case 0xAB:
phonet = 1;
break;
}
}
data += dlen;
len -= dlen;
}
if (!union_header || !phonet) if (!union_header || !phonet)
return -EINVAL; return -EINVAL;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment