| .. | .. |
|---|
| 166 | 166 | {DEVICE_SWI(0x1199, 0x9090)}, /* Sierra Wireless EM7565 QDL */ |
|---|
| 167 | 167 | {DEVICE_SWI(0x1199, 0x9091)}, /* Sierra Wireless EM7565 */ |
|---|
| 168 | 168 | {DEVICE_SWI(0x1199, 0x90d2)}, /* Sierra Wireless EM9191 QDL */ |
|---|
| 169 | + {DEVICE_SWI(0x1199, 0xc080)}, /* Sierra Wireless EM7590 QDL */ |
|---|
| 170 | + {DEVICE_SWI(0x1199, 0xc081)}, /* Sierra Wireless EM7590 */ |
|---|
| 169 | 171 | {DEVICE_SWI(0x413c, 0x81a2)}, /* Dell Wireless 5806 Gobi(TM) 4G LTE Mobile Broadband Card */ |
|---|
| 170 | 172 | {DEVICE_SWI(0x413c, 0x81a3)}, /* Dell Wireless 5570 HSPA+ (42Mbps) Mobile Broadband Card */ |
|---|
| 171 | 173 | {DEVICE_SWI(0x413c, 0x81a4)}, /* Dell Wireless 5570e HSPA+ (42Mbps) Mobile Broadband Card */ |
|---|
| .. | .. |
|---|
| 175 | 177 | {DEVICE_SWI(0x413c, 0x81b3)}, /* Dell Wireless 5809e Gobi(TM) 4G LTE Mobile Broadband Card (rev3) */ |
|---|
| 176 | 178 | {DEVICE_SWI(0x413c, 0x81b5)}, /* Dell Wireless 5811e QDL */ |
|---|
| 177 | 179 | {DEVICE_SWI(0x413c, 0x81b6)}, /* Dell Wireless 5811e QDL */ |
|---|
| 180 | + {DEVICE_SWI(0x413c, 0x81c2)}, /* Dell Wireless 5811e */ |
|---|
| 178 | 181 | {DEVICE_SWI(0x413c, 0x81cb)}, /* Dell Wireless 5816e QDL */ |
|---|
| 179 | 182 | {DEVICE_SWI(0x413c, 0x81cc)}, /* Dell Wireless 5816e */ |
|---|
| 180 | 183 | {DEVICE_SWI(0x413c, 0x81cf)}, /* Dell Wireless 5819 */ |
|---|
| .. | .. |
|---|
| 244 | 247 | /* QDL mode */ |
|---|
| 245 | 248 | /* Gobi 2000 has a single altsetting, older ones have two */ |
|---|
| 246 | 249 | if (serial->interface->num_altsetting == 2) |
|---|
| 247 | | - intf = &serial->interface->altsetting[1]; |
|---|
| 250 | + intf = usb_altnum_to_altsetting(serial->interface, 1); |
|---|
| 248 | 251 | else if (serial->interface->num_altsetting > 2) |
|---|
| 249 | 252 | goto done; |
|---|
| 250 | 253 | |
|---|
| 251 | | - if (intf->desc.bNumEndpoints == 2 && |
|---|
| 254 | + if (intf && intf->desc.bNumEndpoints == 2 && |
|---|
| 252 | 255 | usb_endpoint_is_bulk_in(&intf->endpoint[0].desc) && |
|---|
| 253 | 256 | usb_endpoint_is_bulk_out(&intf->endpoint[1].desc)) { |
|---|
| 254 | 257 | dev_dbg(dev, "QDL port found\n"); |
|---|
| .. | .. |
|---|
| 367 | 370 | * a specific function, while the subclass indicate a |
|---|
| 368 | 371 | * specific firmware source |
|---|
| 369 | 372 | * |
|---|
| 370 | | - * This is a blacklist of functions known to be |
|---|
| 371 | | - * non-serial. The rest are assumed to be serial and |
|---|
| 372 | | - * will be handled by this driver |
|---|
| 373 | + * This is a list of functions known to be non-serial. The rest |
|---|
| 374 | + * are assumed to be serial and will be handled by this driver |
|---|
| 373 | 375 | */ |
|---|
| 374 | 376 | switch (intf->desc.bInterfaceProtocol) { |
|---|
| 375 | 377 | /* QMI combined (qmi_wwan) */ |
|---|