diff options
author | Javier Blanco de Torres (Neurowork) <jblanco@neurowork.net> | 2010-04-12 03:21:13 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-05-20 16:21:38 -0400 |
commit | 4545f7eea31f3f8486b7b925d67abe2e4e47a75a (patch) | |
tree | 86112754d4b3e1b1dab1c761429c01526b453aac /drivers/usb/atm | |
parent | 94a82487e6e57a102636a5326c930619f641038c (diff) |
USB: ueagle: fix Coding Styles
Fixed coding styles in the ueagle usb driver.
Signed-off-by: Javier Blanco de Torres <jblanco@neurowork.net>
Signed-off-by: Alejandro Sánchez Acosta <asanchez@neurowork.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/atm')
-rw-r--r-- | drivers/usb/atm/ueagle-atm.c | 347 |
1 files changed, 207 insertions, 140 deletions
diff --git a/drivers/usb/atm/ueagle-atm.c b/drivers/usb/atm/ueagle-atm.c index 25f01b536f67..e213d3fa4920 100644 --- a/drivers/usb/atm/ueagle-atm.c +++ b/drivers/usb/atm/ueagle-atm.c | |||
@@ -94,19 +94,19 @@ | |||
94 | } while (0) | 94 | } while (0) |
95 | 95 | ||
96 | #define uea_enters(usb_dev) \ | 96 | #define uea_enters(usb_dev) \ |
97 | uea_vdbg(usb_dev, "entering %s\n", __func__) | 97 | uea_vdbg(usb_dev, "entering %s\n" , __func__) |
98 | 98 | ||
99 | #define uea_leaves(usb_dev) \ | 99 | #define uea_leaves(usb_dev) \ |
100 | uea_vdbg(usb_dev, "leaving %s\n", __func__) | 100 | uea_vdbg(usb_dev, "leaving %s\n" , __func__) |
101 | 101 | ||
102 | #define uea_err(usb_dev, format,args...) \ | 102 | #define uea_err(usb_dev, format, args...) \ |
103 | dev_err(&(usb_dev)->dev ,"[UEAGLE-ATM] " format , ##args) | 103 | dev_err(&(usb_dev)->dev , "[UEAGLE-ATM] " format , ##args) |
104 | 104 | ||
105 | #define uea_warn(usb_dev, format,args...) \ | 105 | #define uea_warn(usb_dev, format, args...) \ |
106 | dev_warn(&(usb_dev)->dev ,"[Ueagle-atm] " format, ##args) | 106 | dev_warn(&(usb_dev)->dev , "[Ueagle-atm] " format, ##args) |
107 | 107 | ||
108 | #define uea_info(usb_dev, format,args...) \ | 108 | #define uea_info(usb_dev, format, args...) \ |
109 | dev_info(&(usb_dev)->dev ,"[ueagle-atm] " format, ##args) | 109 | dev_info(&(usb_dev)->dev , "[ueagle-atm] " format, ##args) |
110 | 110 | ||
111 | struct intr_pkt; | 111 | struct intr_pkt; |
112 | 112 | ||
@@ -289,7 +289,7 @@ enum { | |||
289 | #define IS_ISDN(x) \ | 289 | #define IS_ISDN(x) \ |
290 | ((x)->annex & ANNEXB) | 290 | ((x)->annex & ANNEXB) |
291 | 291 | ||
292 | #define INS_TO_USBDEV(ins) ins->usb_dev | 292 | #define INS_TO_USBDEV(ins) (ins->usb_dev) |
293 | 293 | ||
294 | #define GET_STATUS(data) \ | 294 | #define GET_STATUS(data) \ |
295 | ((data >> 8) & 0xf) | 295 | ((data >> 8) & 0xf) |
@@ -304,7 +304,7 @@ enum { | |||
304 | * The FW_GET_BYTE() macro is provided only for consistency. | 304 | * The FW_GET_BYTE() macro is provided only for consistency. |
305 | */ | 305 | */ |
306 | 306 | ||
307 | #define FW_GET_BYTE(p) *((__u8 *) (p)) | 307 | #define FW_GET_BYTE(p) (*((__u8 *) (p))) |
308 | 308 | ||
309 | #define FW_DIR "ueagle-atm/" | 309 | #define FW_DIR "ueagle-atm/" |
310 | #define UEA_FW_NAME_MAX 30 | 310 | #define UEA_FW_NAME_MAX 30 |
@@ -315,7 +315,7 @@ enum { | |||
315 | 315 | ||
316 | #define ACK_TIMEOUT msecs_to_jiffies(3000) | 316 | #define ACK_TIMEOUT msecs_to_jiffies(3000) |
317 | 317 | ||
318 | #define UEA_INTR_IFACE_NO 0 | 318 | #define UEA_INTR_IFACE_NO 0 |
319 | #define UEA_US_IFACE_NO 1 | 319 | #define UEA_US_IFACE_NO 1 |
320 | #define UEA_DS_IFACE_NO 2 | 320 | #define UEA_DS_IFACE_NO 2 |
321 | 321 | ||
@@ -326,9 +326,9 @@ enum { | |||
326 | #define UEA_INTR_PIPE 0x04 | 326 | #define UEA_INTR_PIPE 0x04 |
327 | #define UEA_ISO_DATA_PIPE 0x08 | 327 | #define UEA_ISO_DATA_PIPE 0x08 |
328 | 328 | ||
329 | #define UEA_E1_SET_BLOCK 0x0001 | 329 | #define UEA_E1_SET_BLOCK 0x0001 |
330 | #define UEA_E4_SET_BLOCK 0x002c | 330 | #define UEA_E4_SET_BLOCK 0x002c |
331 | #define UEA_SET_MODE 0x0003 | 331 | #define UEA_SET_MODE 0x0003 |
332 | #define UEA_SET_2183_DATA 0x0004 | 332 | #define UEA_SET_2183_DATA 0x0004 |
333 | #define UEA_SET_TIMEOUT 0x0011 | 333 | #define UEA_SET_TIMEOUT 0x0011 |
334 | 334 | ||
@@ -366,7 +366,7 @@ struct l1_code { | |||
366 | u8 string_header[E4_L1_STRING_HEADER]; | 366 | u8 string_header[E4_L1_STRING_HEADER]; |
367 | u8 page_number_to_block_index[E4_MAX_PAGE_NUMBER]; | 367 | u8 page_number_to_block_index[E4_MAX_PAGE_NUMBER]; |
368 | struct block_index page_header[E4_NO_SWAPPAGE_HEADERS]; | 368 | struct block_index page_header[E4_NO_SWAPPAGE_HEADERS]; |
369 | u8 code [0]; | 369 | u8 code[0]; |
370 | } __attribute__ ((packed)); | 370 | } __attribute__ ((packed)); |
371 | 371 | ||
372 | /* structures describing a block within a DSP page */ | 372 | /* structures describing a block within a DSP page */ |
@@ -428,7 +428,8 @@ struct block_info_e4 { | |||
428 | #define E4_MODEMREADY 0x1 | 428 | #define E4_MODEMREADY 0x1 |
429 | 429 | ||
430 | #define E1_MAKEFUNCTION(t, s) (((t) & 0xf) << 4 | ((s) & 0xf)) | 430 | #define E1_MAKEFUNCTION(t, s) (((t) & 0xf) << 4 | ((s) & 0xf)) |
431 | #define E4_MAKEFUNCTION(t, st, s) (((t) & 0xf) << 8 | ((st) & 0xf) << 4 | ((s) & 0xf)) | 431 | #define E4_MAKEFUNCTION(t, st, s) (((t) & 0xf) << 8 | \ |
432 | ((st) & 0xf) << 4 | ((s) & 0xf)) | ||
432 | 433 | ||
433 | #define E1_MAKESA(a, b, c, d) \ | 434 | #define E1_MAKESA(a, b, c, d) \ |
434 | (((c) & 0xff) << 24 | \ | 435 | (((c) & 0xff) << 24 | \ |
@@ -473,7 +474,7 @@ struct cmv_e4 { | |||
473 | __be16 wFunction; | 474 | __be16 wFunction; |
474 | __be16 wOffset; | 475 | __be16 wOffset; |
475 | __be16 wAddress; | 476 | __be16 wAddress; |
476 | __be32 dwData [6]; | 477 | __be32 dwData[6]; |
477 | } __attribute__ ((packed)); | 478 | } __attribute__ ((packed)); |
478 | 479 | ||
479 | /* structures representing swap information */ | 480 | /* structures representing swap information */ |
@@ -534,11 +535,13 @@ struct intr_pkt { | |||
534 | 535 | ||
535 | static struct usb_driver uea_driver; | 536 | static struct usb_driver uea_driver; |
536 | static DEFINE_MUTEX(uea_mutex); | 537 | static DEFINE_MUTEX(uea_mutex); |
537 | static const char *chip_name[] = {"ADI930", "Eagle I", "Eagle II", "Eagle III", "Eagle IV"}; | 538 | static const char *chip_name[] = {"ADI930", "Eagle I", "Eagle II", "Eagle III", |
539 | "Eagle IV"}; | ||
538 | 540 | ||
539 | static int modem_index; | 541 | static int modem_index; |
540 | static unsigned int debug; | 542 | static unsigned int debug; |
541 | static unsigned int altsetting[NB_MODEM] = {[0 ... (NB_MODEM - 1)] = FASTEST_ISO_INTF}; | 543 | static unsigned int altsetting[NB_MODEM] = { |
544 | [0 ... (NB_MODEM - 1)] = FASTEST_ISO_INTF}; | ||
542 | static int sync_wait[NB_MODEM]; | 545 | static int sync_wait[NB_MODEM]; |
543 | static char *cmv_file[NB_MODEM]; | 546 | static char *cmv_file[NB_MODEM]; |
544 | static int annex[NB_MODEM]; | 547 | static int annex[NB_MODEM]; |
@@ -555,7 +558,7 @@ MODULE_PARM_DESC(cmv_file, | |||
555 | "file name with configuration and management variables"); | 558 | "file name with configuration and management variables"); |
556 | module_param_array(annex, uint, NULL, 0644); | 559 | module_param_array(annex, uint, NULL, 0644); |
557 | MODULE_PARM_DESC(annex, | 560 | MODULE_PARM_DESC(annex, |
558 | "manually set annex a/b (0=auto, 1=annex a, 2=annex b)"); | 561 | "manually set annex a/b (0=auto, 1=annex a, 2=annex b)"); |
559 | 562 | ||
560 | #define uea_wait(sc, cond, timeo) \ | 563 | #define uea_wait(sc, cond, timeo) \ |
561 | ({ \ | 564 | ({ \ |
@@ -602,7 +605,8 @@ static int uea_send_modem_cmd(struct usb_device *usb, | |||
602 | return (ret == size) ? 0 : -EIO; | 605 | return (ret == size) ? 0 : -EIO; |
603 | } | 606 | } |
604 | 607 | ||
605 | static void uea_upload_pre_firmware(const struct firmware *fw_entry, void *context) | 608 | static void uea_upload_pre_firmware(const struct firmware *fw_entry, |
609 | void *context) | ||
606 | { | 610 | { |
607 | struct usb_device *usb = context; | 611 | struct usb_device *usb = context; |
608 | const u8 *pfw; | 612 | const u8 *pfw; |
@@ -707,7 +711,8 @@ static int uea_load_firmware(struct usb_device *usb, unsigned int ver) | |||
707 | } | 711 | } |
708 | 712 | ||
709 | ret = request_firmware_nowait(THIS_MODULE, 1, fw_name, &usb->dev, | 713 | ret = request_firmware_nowait(THIS_MODULE, 1, fw_name, &usb->dev, |
710 | GFP_KERNEL, usb, uea_upload_pre_firmware); | 714 | GFP_KERNEL, usb, |
715 | uea_upload_pre_firmware); | ||
711 | if (ret) | 716 | if (ret) |
712 | uea_err(usb, "firmware %s is not available\n", fw_name); | 717 | uea_err(usb, "firmware %s is not available\n", fw_name); |
713 | else | 718 | else |
@@ -876,7 +881,7 @@ static int request_dsp(struct uea_softc *sc) | |||
876 | if (ret < 0) { | 881 | if (ret < 0) { |
877 | uea_err(INS_TO_USBDEV(sc), | 882 | uea_err(INS_TO_USBDEV(sc), |
878 | "requesting firmware %s failed with error %d\n", | 883 | "requesting firmware %s failed with error %d\n", |
879 | dsp_name, ret); | 884 | dsp_name, ret); |
880 | return ret; | 885 | return ret; |
881 | } | 886 | } |
882 | 887 | ||
@@ -994,14 +999,17 @@ static void __uea_load_page_e4(struct uea_softc *sc, u8 pageno, int boot) | |||
994 | 999 | ||
995 | blockidx = &p->page_header[blockno]; | 1000 | blockidx = &p->page_header[blockno]; |
996 | blocksize = E4_PAGE_BYTES(blockidx->PageSize); | 1001 | blocksize = E4_PAGE_BYTES(blockidx->PageSize); |
997 | blockoffset = sc->dsp_firm->data + le32_to_cpu(blockidx->PageOffset); | 1002 | blockoffset = sc->dsp_firm->data + le32_to_cpu( |
1003 | blockidx->PageOffset); | ||
998 | 1004 | ||
999 | bi.dwSize = cpu_to_be32(blocksize); | 1005 | bi.dwSize = cpu_to_be32(blocksize); |
1000 | bi.dwAddress = cpu_to_be32(le32_to_cpu(blockidx->PageAddress)); | 1006 | bi.dwAddress = cpu_to_be32(le32_to_cpu(blockidx->PageAddress)); |
1001 | 1007 | ||
1002 | uea_dbg(INS_TO_USBDEV(sc), | 1008 | uea_dbg(INS_TO_USBDEV(sc), |
1003 | "sending block %u for DSP page %u size %u address %x\n", | 1009 | "sending block %u for DSP page " |
1004 | blockno, pageno, blocksize, le32_to_cpu(blockidx->PageAddress)); | 1010 | "%u size %u address %x\n", |
1011 | blockno, pageno, blocksize, | ||
1012 | le32_to_cpu(blockidx->PageAddress)); | ||
1005 | 1013 | ||
1006 | /* send block info through the IDMA pipe */ | 1014 | /* send block info through the IDMA pipe */ |
1007 | if (uea_idma_write(sc, &bi, E4_BLOCK_INFO_SIZE)) | 1015 | if (uea_idma_write(sc, &bi, E4_BLOCK_INFO_SIZE)) |
@@ -1042,7 +1050,8 @@ static void uea_load_page_e4(struct work_struct *work) | |||
1042 | 1050 | ||
1043 | p = (struct l1_code *) sc->dsp_firm->data; | 1051 | p = (struct l1_code *) sc->dsp_firm->data; |
1044 | if (pageno >= le16_to_cpu(p->page_header[0].PageNumber)) { | 1052 | if (pageno >= le16_to_cpu(p->page_header[0].PageNumber)) { |
1045 | uea_err(INS_TO_USBDEV(sc), "invalid DSP page %u requested\n", pageno); | 1053 | uea_err(INS_TO_USBDEV(sc), "invalid DSP " |
1054 | "page %u requested\n", pageno); | ||
1046 | return; | 1055 | return; |
1047 | } | 1056 | } |
1048 | 1057 | ||
@@ -1059,7 +1068,7 @@ static void uea_load_page_e4(struct work_struct *work) | |||
1059 | __uea_load_page_e4(sc, i, 1); | 1068 | __uea_load_page_e4(sc, i, 1); |
1060 | } | 1069 | } |
1061 | 1070 | ||
1062 | uea_dbg(INS_TO_USBDEV(sc),"sending start bi\n"); | 1071 | uea_dbg(INS_TO_USBDEV(sc) , "sending start bi\n"); |
1063 | 1072 | ||
1064 | bi.wHdr = cpu_to_be16(UEA_BIHDR); | 1073 | bi.wHdr = cpu_to_be16(UEA_BIHDR); |
1065 | bi.bBootPage = 0; | 1074 | bi.bBootPage = 0; |
@@ -1139,8 +1148,10 @@ static int uea_cmv_e1(struct uea_softc *sc, | |||
1139 | uea_enters(INS_TO_USBDEV(sc)); | 1148 | uea_enters(INS_TO_USBDEV(sc)); |
1140 | uea_vdbg(INS_TO_USBDEV(sc), "Function : %d-%d, Address : %c%c%c%c, " | 1149 | uea_vdbg(INS_TO_USBDEV(sc), "Function : %d-%d, Address : %c%c%c%c, " |
1141 | "offset : 0x%04x, data : 0x%08x\n", | 1150 | "offset : 0x%04x, data : 0x%08x\n", |
1142 | E1_FUNCTION_TYPE(function), E1_FUNCTION_SUBTYPE(function), | 1151 | E1_FUNCTION_TYPE(function), |
1143 | E1_GETSA1(address), E1_GETSA2(address), E1_GETSA3(address), | 1152 | E1_FUNCTION_SUBTYPE(function), |
1153 | E1_GETSA1(address), E1_GETSA2(address), | ||
1154 | E1_GETSA3(address), | ||
1144 | E1_GETSA4(address), offset, data); | 1155 | E1_GETSA4(address), offset, data); |
1145 | 1156 | ||
1146 | /* we send a request, but we expect a reply */ | 1157 | /* we send a request, but we expect a reply */ |
@@ -1157,7 +1168,8 @@ static int uea_cmv_e1(struct uea_softc *sc, | |||
1157 | cmv.wOffsetAddress = cpu_to_le16(offset); | 1168 | cmv.wOffsetAddress = cpu_to_le16(offset); |
1158 | put_unaligned_le32(data >> 16 | data << 16, &cmv.dwData); | 1169 | put_unaligned_le32(data >> 16 | data << 16, &cmv.dwData); |
1159 | 1170 | ||
1160 | ret = uea_request(sc, UEA_E1_SET_BLOCK, UEA_MPTX_START, sizeof(cmv), &cmv); | 1171 | ret = uea_request(sc, UEA_E1_SET_BLOCK, UEA_MPTX_START, |
1172 | sizeof(cmv), &cmv); | ||
1161 | if (ret < 0) | 1173 | if (ret < 0) |
1162 | return ret; | 1174 | return ret; |
1163 | ret = wait_cmv_ack(sc); | 1175 | ret = wait_cmv_ack(sc); |
@@ -1191,7 +1203,8 @@ static int uea_cmv_e4(struct uea_softc *sc, | |||
1191 | cmv.wOffset = cpu_to_be16(offset); | 1203 | cmv.wOffset = cpu_to_be16(offset); |
1192 | cmv.dwData[0] = cpu_to_be32(data); | 1204 | cmv.dwData[0] = cpu_to_be32(data); |
1193 | 1205 | ||
1194 | ret = uea_request(sc, UEA_E4_SET_BLOCK, UEA_MPTX_START, sizeof(cmv), &cmv); | 1206 | ret = uea_request(sc, UEA_E4_SET_BLOCK, UEA_MPTX_START, |
1207 | sizeof(cmv), &cmv); | ||
1195 | if (ret < 0) | 1208 | if (ret < 0) |
1196 | return ret; | 1209 | return ret; |
1197 | ret = wait_cmv_ack(sc); | 1210 | ret = wait_cmv_ack(sc); |
@@ -1208,7 +1221,7 @@ static inline int uea_read_cmv_e1(struct uea_softc *sc, | |||
1208 | uea_err(INS_TO_USBDEV(sc), | 1221 | uea_err(INS_TO_USBDEV(sc), |
1209 | "reading cmv failed with error %d\n", ret); | 1222 | "reading cmv failed with error %d\n", ret); |
1210 | else | 1223 | else |
1211 | *data = sc->data; | 1224 | *data = sc->data; |
1212 | 1225 | ||
1213 | return ret; | 1226 | return ret; |
1214 | } | 1227 | } |
@@ -1216,13 +1229,14 @@ static inline int uea_read_cmv_e1(struct uea_softc *sc, | |||
1216 | static inline int uea_read_cmv_e4(struct uea_softc *sc, | 1229 | static inline int uea_read_cmv_e4(struct uea_softc *sc, |
1217 | u8 size, u16 group, u16 address, u16 offset, u32 *data) | 1230 | u8 size, u16 group, u16 address, u16 offset, u32 *data) |
1218 | { | 1231 | { |
1219 | int ret = uea_cmv_e4(sc, E4_MAKEFUNCTION(E4_MEMACCESS, E4_REQUESTREAD, size), | 1232 | int ret = uea_cmv_e4(sc, E4_MAKEFUNCTION(E4_MEMACCESS, |
1233 | E4_REQUESTREAD, size), | ||
1220 | group, address, offset, 0); | 1234 | group, address, offset, 0); |
1221 | if (ret < 0) | 1235 | if (ret < 0) |
1222 | uea_err(INS_TO_USBDEV(sc), | 1236 | uea_err(INS_TO_USBDEV(sc), |
1223 | "reading cmv failed with error %d\n", ret); | 1237 | "reading cmv failed with error %d\n", ret); |
1224 | else { | 1238 | else { |
1225 | *data = sc->data; | 1239 | *data = sc->data; |
1226 | /* size is in 16-bit word quantities */ | 1240 | /* size is in 16-bit word quantities */ |
1227 | if (size > 2) | 1241 | if (size > 2) |
1228 | *(data + 1) = sc->data1; | 1242 | *(data + 1) = sc->data1; |
@@ -1245,7 +1259,8 @@ static inline int uea_write_cmv_e1(struct uea_softc *sc, | |||
1245 | static inline int uea_write_cmv_e4(struct uea_softc *sc, | 1259 | static inline int uea_write_cmv_e4(struct uea_softc *sc, |
1246 | u8 size, u16 group, u16 address, u16 offset, u32 data) | 1260 | u8 size, u16 group, u16 address, u16 offset, u32 data) |
1247 | { | 1261 | { |
1248 | int ret = uea_cmv_e4(sc, E4_MAKEFUNCTION(E4_MEMACCESS, E4_REQUESTWRITE, size), | 1262 | int ret = uea_cmv_e4(sc, E4_MAKEFUNCTION(E4_MEMACCESS, |
1263 | E4_REQUESTWRITE, size), | ||
1249 | group, address, offset, data); | 1264 | group, address, offset, data); |
1250 | if (ret < 0) | 1265 | if (ret < 0) |
1251 | uea_err(INS_TO_USBDEV(sc), | 1266 | uea_err(INS_TO_USBDEV(sc), |
@@ -1442,27 +1457,29 @@ static int uea_stat_e4(struct uea_softc *sc) | |||
1442 | return ret; | 1457 | return ret; |
1443 | 1458 | ||
1444 | switch (sc->stats.phy.state) { | 1459 | switch (sc->stats.phy.state) { |
1445 | case 0x0: /* not yet synchronized */ | 1460 | case 0x0: /* not yet synchronized */ |
1446 | case 0x1: | 1461 | case 0x1: |
1447 | case 0x3: | 1462 | case 0x3: |
1448 | case 0x4: | 1463 | case 0x4: |
1449 | uea_dbg(INS_TO_USBDEV(sc), "modem not yet synchronized\n"); | 1464 | uea_dbg(INS_TO_USBDEV(sc), "modem not yet " |
1450 | return 0; | 1465 | "synchronized\n"); |
1451 | case 0x5: /* initialization */ | 1466 | return 0; |
1452 | case 0x6: | 1467 | case 0x5: /* initialization */ |
1453 | case 0x9: | 1468 | case 0x6: |
1454 | case 0xa: | 1469 | case 0x9: |
1455 | uea_dbg(INS_TO_USBDEV(sc), "modem initializing\n"); | 1470 | case 0xa: |
1456 | return 0; | 1471 | uea_dbg(INS_TO_USBDEV(sc), "modem initializing\n"); |
1457 | case 0x2: /* fail ... */ | 1472 | return 0; |
1458 | uea_info(INS_TO_USBDEV(sc), "modem synchronization failed" | 1473 | case 0x2: /* fail ... */ |
1459 | " (may be try other cmv/dsp)\n"); | 1474 | uea_info(INS_TO_USBDEV(sc), "modem synchronization " |
1460 | return -EAGAIN; | 1475 | "failed (may be try other cmv/dsp)\n"); |
1461 | case 0x7: /* operational */ | 1476 | return -EAGAIN; |
1462 | break; | 1477 | case 0x7: /* operational */ |
1463 | default: | 1478 | break; |
1464 | uea_warn(INS_TO_USBDEV(sc), "unknown state: %x\n", sc->stats.phy.state); | 1479 | default: |
1465 | return 0; | 1480 | uea_warn(INS_TO_USBDEV(sc), "unknown state: %x\n", |
1481 | sc->stats.phy.state); | ||
1482 | return 0; | ||
1466 | } | 1483 | } |
1467 | 1484 | ||
1468 | if (data != 7) { | 1485 | if (data != 7) { |
@@ -1502,9 +1519,9 @@ static int uea_stat_e4(struct uea_softc *sc) | |||
1502 | if (sc->stats.phy.flags) { | 1519 | if (sc->stats.phy.flags) { |
1503 | uea_dbg(INS_TO_USBDEV(sc), "Stat flag = 0x%x\n", | 1520 | uea_dbg(INS_TO_USBDEV(sc), "Stat flag = 0x%x\n", |
1504 | sc->stats.phy.flags); | 1521 | sc->stats.phy.flags); |
1505 | if (sc->stats.phy.flags & 1) //delineation LOSS | 1522 | if (sc->stats.phy.flags & 1) /* delineation LOSS */ |
1506 | return -EAGAIN; | 1523 | return -EAGAIN; |
1507 | if (sc->stats.phy.flags & 0x4000) //Reset Flag | 1524 | if (sc->stats.phy.flags & 0x4000) /* Reset Flag */ |
1508 | return -EAGAIN; | 1525 | return -EAGAIN; |
1509 | return 0; | 1526 | return 0; |
1510 | } | 1527 | } |
@@ -1618,7 +1635,8 @@ static int request_cmvs(struct uea_softc *sc, | |||
1618 | if (ret < 0) { | 1635 | if (ret < 0) { |
1619 | /* if caller can handle old version, try to provide it */ | 1636 | /* if caller can handle old version, try to provide it */ |
1620 | if (*ver == 1) { | 1637 | if (*ver == 1) { |
1621 | uea_warn(INS_TO_USBDEV(sc), "requesting firmware %s failed, " | 1638 | uea_warn(INS_TO_USBDEV(sc), "requesting " |
1639 | "firmware %s failed, " | ||
1622 | "try to get older cmvs\n", cmv_name); | 1640 | "try to get older cmvs\n", cmv_name); |
1623 | return request_cmvs_old(sc, cmvs, fw); | 1641 | return request_cmvs_old(sc, cmvs, fw); |
1624 | } | 1642 | } |
@@ -1632,8 +1650,8 @@ static int request_cmvs(struct uea_softc *sc, | |||
1632 | data = (u8 *) (*fw)->data; | 1650 | data = (u8 *) (*fw)->data; |
1633 | if (size < 4 || strncmp(data, "cmv2", 4) != 0) { | 1651 | if (size < 4 || strncmp(data, "cmv2", 4) != 0) { |
1634 | if (*ver == 1) { | 1652 | if (*ver == 1) { |
1635 | uea_warn(INS_TO_USBDEV(sc), "firmware %s is corrupted, " | 1653 | uea_warn(INS_TO_USBDEV(sc), "firmware %s is corrupted," |
1636 | "try to get older cmvs\n", cmv_name); | 1654 | " try to get older cmvs\n", cmv_name); |
1637 | release_firmware(*fw); | 1655 | release_firmware(*fw); |
1638 | return request_cmvs_old(sc, cmvs, fw); | 1656 | return request_cmvs_old(sc, cmvs, fw); |
1639 | } | 1657 | } |
@@ -1670,7 +1688,7 @@ static int uea_send_cmvs_e1(struct uea_softc *sc) | |||
1670 | int i, ret, len; | 1688 | int i, ret, len; |
1671 | void *cmvs_ptr; | 1689 | void *cmvs_ptr; |
1672 | const struct firmware *cmvs_fw; | 1690 | const struct firmware *cmvs_fw; |
1673 | int ver = 1; // we can handle v1 cmv firmware version; | 1691 | int ver = 1; /* we can handle v1 cmv firmware version; */ |
1674 | 1692 | ||
1675 | /* Enter in R-IDLE (cmv) until instructed otherwise */ | 1693 | /* Enter in R-IDLE (cmv) until instructed otherwise */ |
1676 | ret = uea_write_cmv_e1(sc, E1_SA_CNTL, 0, 1); | 1694 | ret = uea_write_cmv_e1(sc, E1_SA_CNTL, 0, 1); |
@@ -1685,7 +1703,7 @@ static int uea_send_cmvs_e1(struct uea_softc *sc) | |||
1685 | sc->stats.phy.firmid); | 1703 | sc->stats.phy.firmid); |
1686 | 1704 | ||
1687 | /* get options */ | 1705 | /* get options */ |
1688 | ret = len = request_cmvs(sc, &cmvs_ptr, &cmvs_fw, &ver); | 1706 | ret = len = request_cmvs(sc, &cmvs_ptr, &cmvs_fw, &ver); |
1689 | if (ret < 0) | 1707 | if (ret < 0) |
1690 | return ret; | 1708 | return ret; |
1691 | 1709 | ||
@@ -1697,9 +1715,10 @@ static int uea_send_cmvs_e1(struct uea_softc *sc) | |||
1697 | "please update your firmware\n"); | 1715 | "please update your firmware\n"); |
1698 | 1716 | ||
1699 | for (i = 0; i < len; i++) { | 1717 | for (i = 0; i < len; i++) { |
1700 | ret = uea_write_cmv_e1(sc, get_unaligned_le32(&cmvs_v1[i].address), | 1718 | ret = uea_write_cmv_e1(sc, |
1701 | get_unaligned_le16(&cmvs_v1[i].offset), | 1719 | get_unaligned_le32(&cmvs_v1[i].address), |
1702 | get_unaligned_le32(&cmvs_v1[i].data)); | 1720 | get_unaligned_le16(&cmvs_v1[i].offset), |
1721 | get_unaligned_le32(&cmvs_v1[i].data)); | ||
1703 | if (ret < 0) | 1722 | if (ret < 0) |
1704 | goto out; | 1723 | goto out; |
1705 | } | 1724 | } |
@@ -1707,9 +1726,10 @@ static int uea_send_cmvs_e1(struct uea_softc *sc) | |||
1707 | struct uea_cmvs_v2 *cmvs_v2 = cmvs_ptr; | 1726 | struct uea_cmvs_v2 *cmvs_v2 = cmvs_ptr; |
1708 | 1727 | ||
1709 | for (i = 0; i < len; i++) { | 1728 | for (i = 0; i < len; i++) { |
1710 | ret = uea_write_cmv_e1(sc, get_unaligned_le32(&cmvs_v2[i].address), | 1729 | ret = uea_write_cmv_e1(sc, |
1711 | (u16) get_unaligned_le32(&cmvs_v2[i].offset), | 1730 | get_unaligned_le32(&cmvs_v2[i].address), |
1712 | get_unaligned_le32(&cmvs_v2[i].data)); | 1731 | (u16) get_unaligned_le32(&cmvs_v2[i].offset), |
1732 | get_unaligned_le32(&cmvs_v2[i].data)); | ||
1713 | if (ret < 0) | 1733 | if (ret < 0) |
1714 | goto out; | 1734 | goto out; |
1715 | } | 1735 | } |
@@ -1722,7 +1742,8 @@ static int uea_send_cmvs_e1(struct uea_softc *sc) | |||
1722 | /* Enter in R-ACT-REQ */ | 1742 | /* Enter in R-ACT-REQ */ |
1723 | ret = uea_write_cmv_e1(sc, E1_SA_CNTL, 0, 2); | 1743 | ret = uea_write_cmv_e1(sc, E1_SA_CNTL, 0, 2); |
1724 | uea_vdbg(INS_TO_USBDEV(sc), "Entering in R-ACT-REQ state\n"); | 1744 | uea_vdbg(INS_TO_USBDEV(sc), "Entering in R-ACT-REQ state\n"); |
1725 | uea_info(INS_TO_USBDEV(sc), "modem started, waiting synchronization...\n"); | 1745 | uea_info(INS_TO_USBDEV(sc), "modem started, waiting " |
1746 | "synchronization...\n"); | ||
1726 | out: | 1747 | out: |
1727 | release_firmware(cmvs_fw); | 1748 | release_firmware(cmvs_fw); |
1728 | return ret; | 1749 | return ret; |
@@ -1733,7 +1754,7 @@ static int uea_send_cmvs_e4(struct uea_softc *sc) | |||
1733 | int i, ret, len; | 1754 | int i, ret, len; |
1734 | void *cmvs_ptr; | 1755 | void *cmvs_ptr; |
1735 | const struct firmware *cmvs_fw; | 1756 | const struct firmware *cmvs_fw; |
1736 | int ver = 2; // we can only handle v2 cmv firmware version; | 1757 | int ver = 2; /* we can only handle v2 cmv firmware version; */ |
1737 | 1758 | ||
1738 | /* Enter in R-IDLE (cmv) until instructed otherwise */ | 1759 | /* Enter in R-IDLE (cmv) until instructed otherwise */ |
1739 | ret = uea_write_cmv_e4(sc, 1, E4_SA_CNTL, 0, 0, 1); | 1760 | ret = uea_write_cmv_e4(sc, 1, E4_SA_CNTL, 0, 0, 1); |
@@ -1750,7 +1771,7 @@ static int uea_send_cmvs_e4(struct uea_softc *sc) | |||
1750 | 1771 | ||
1751 | 1772 | ||
1752 | /* get options */ | 1773 | /* get options */ |
1753 | ret = len = request_cmvs(sc, &cmvs_ptr, &cmvs_fw, &ver); | 1774 | ret = len = request_cmvs(sc, &cmvs_ptr, &cmvs_fw, &ver); |
1754 | if (ret < 0) | 1775 | if (ret < 0) |
1755 | return ret; | 1776 | return ret; |
1756 | 1777 | ||
@@ -1760,10 +1781,10 @@ static int uea_send_cmvs_e4(struct uea_softc *sc) | |||
1760 | 1781 | ||
1761 | for (i = 0; i < len; i++) { | 1782 | for (i = 0; i < len; i++) { |
1762 | ret = uea_write_cmv_e4(sc, 1, | 1783 | ret = uea_write_cmv_e4(sc, 1, |
1763 | get_unaligned_le32(&cmvs_v2[i].group), | 1784 | get_unaligned_le32(&cmvs_v2[i].group), |
1764 | get_unaligned_le32(&cmvs_v2[i].address), | 1785 | get_unaligned_le32(&cmvs_v2[i].address), |
1765 | get_unaligned_le32(&cmvs_v2[i].offset), | 1786 | get_unaligned_le32(&cmvs_v2[i].offset), |
1766 | get_unaligned_le32(&cmvs_v2[i].data)); | 1787 | get_unaligned_le32(&cmvs_v2[i].data)); |
1767 | if (ret < 0) | 1788 | if (ret < 0) |
1768 | goto out; | 1789 | goto out; |
1769 | } | 1790 | } |
@@ -1776,7 +1797,8 @@ static int uea_send_cmvs_e4(struct uea_softc *sc) | |||
1776 | /* Enter in R-ACT-REQ */ | 1797 | /* Enter in R-ACT-REQ */ |
1777 | ret = uea_write_cmv_e4(sc, 1, E4_SA_CNTL, 0, 0, 2); | 1798 | ret = uea_write_cmv_e4(sc, 1, E4_SA_CNTL, 0, 0, 2); |
1778 | uea_vdbg(INS_TO_USBDEV(sc), "Entering in R-ACT-REQ state\n"); | 1799 | uea_vdbg(INS_TO_USBDEV(sc), "Entering in R-ACT-REQ state\n"); |
1779 | uea_info(INS_TO_USBDEV(sc), "modem started, waiting synchronization...\n"); | 1800 | uea_info(INS_TO_USBDEV(sc), "modem started, waiting " |
1801 | "synchronization...\n"); | ||
1780 | out: | 1802 | out: |
1781 | release_firmware(cmvs_fw); | 1803 | release_firmware(cmvs_fw); |
1782 | return ret; | 1804 | return ret; |
@@ -1812,7 +1834,7 @@ static int uea_start_reset(struct uea_softc *sc) | |||
1812 | uea_request(sc, UEA_SET_MODE, UEA_LOOPBACK_ON, 0, NULL); | 1834 | uea_request(sc, UEA_SET_MODE, UEA_LOOPBACK_ON, 0, NULL); |
1813 | uea_request(sc, UEA_SET_MODE, UEA_BOOT_IDMA, 0, NULL); | 1835 | uea_request(sc, UEA_SET_MODE, UEA_BOOT_IDMA, 0, NULL); |
1814 | 1836 | ||
1815 | /* enter reset mode */ | 1837 | /* enter reset mode */ |
1816 | uea_request(sc, UEA_SET_MODE, UEA_START_RESET, 0, NULL); | 1838 | uea_request(sc, UEA_SET_MODE, UEA_START_RESET, 0, NULL); |
1817 | 1839 | ||
1818 | /* original driver use 200ms, but windows driver use 100ms */ | 1840 | /* original driver use 200ms, but windows driver use 100ms */ |
@@ -1824,7 +1846,7 @@ static int uea_start_reset(struct uea_softc *sc) | |||
1824 | uea_request(sc, UEA_SET_MODE, UEA_END_RESET, 0, NULL); | 1846 | uea_request(sc, UEA_SET_MODE, UEA_END_RESET, 0, NULL); |
1825 | 1847 | ||
1826 | if (UEA_CHIP_VERSION(sc) != EAGLE_IV) { | 1848 | if (UEA_CHIP_VERSION(sc) != EAGLE_IV) { |
1827 | /* clear tx and rx mailboxes */ | 1849 | /* clear tx and rx mailboxes */ |
1828 | uea_request(sc, UEA_SET_2183_DATA, UEA_MPTX_MAILBOX, 2, &zero); | 1850 | uea_request(sc, UEA_SET_2183_DATA, UEA_MPTX_MAILBOX, 2, &zero); |
1829 | uea_request(sc, UEA_SET_2183_DATA, UEA_MPRX_MAILBOX, 2, &zero); | 1851 | uea_request(sc, UEA_SET_2183_DATA, UEA_MPRX_MAILBOX, 2, &zero); |
1830 | uea_request(sc, UEA_SET_2183_DATA, UEA_SWAP_MAILBOX, 2, &zero); | 1852 | uea_request(sc, UEA_SET_2183_DATA, UEA_SWAP_MAILBOX, 2, &zero); |
@@ -1835,9 +1857,11 @@ static int uea_start_reset(struct uea_softc *sc) | |||
1835 | return ret; | 1857 | return ret; |
1836 | 1858 | ||
1837 | if (UEA_CHIP_VERSION(sc) == EAGLE_IV) | 1859 | if (UEA_CHIP_VERSION(sc) == EAGLE_IV) |
1838 | sc->cmv_dsc.e4.function = E4_MAKEFUNCTION(E4_ADSLDIRECTIVE, E4_MODEMREADY, 1); | 1860 | sc->cmv_dsc.e4.function = E4_MAKEFUNCTION(E4_ADSLDIRECTIVE, |
1861 | E4_MODEMREADY, 1); | ||
1839 | else | 1862 | else |
1840 | sc->cmv_dsc.e1.function = E1_MAKEFUNCTION(E1_ADSLDIRECTIVE, E1_MODEMREADY); | 1863 | sc->cmv_dsc.e1.function = E1_MAKEFUNCTION(E1_ADSLDIRECTIVE, |
1864 | E1_MODEMREADY); | ||
1841 | 1865 | ||
1842 | /* demask interrupt */ | 1866 | /* demask interrupt */ |
1843 | sc->booting = 0; | 1867 | sc->booting = 0; |
@@ -1937,7 +1961,8 @@ static int load_XILINX_firmware(struct uea_softc *sc) | |||
1937 | value = 0; | 1961 | value = 0; |
1938 | ret = uea_send_modem_cmd(sc->usb_dev, 0xe, 1, &value); | 1962 | ret = uea_send_modem_cmd(sc->usb_dev, 0xe, 1, &value); |
1939 | if (ret < 0) | 1963 | if (ret < 0) |
1940 | uea_err(sc->usb_dev, "elsa de-assert failed with error %d\n", ret); | 1964 | uea_err(sc->usb_dev, "elsa de-assert failed with error" |
1965 | " %d\n", ret); | ||
1941 | 1966 | ||
1942 | err1: | 1967 | err1: |
1943 | release_firmware(fw_entry); | 1968 | release_firmware(fw_entry); |
@@ -1966,13 +1991,15 @@ static void uea_dispatch_cmv_e1(struct uea_softc *sc, struct intr_pkt *intr) | |||
1966 | if (UEA_CHIP_VERSION(sc) == ADI930 | 1991 | if (UEA_CHIP_VERSION(sc) == ADI930 |
1967 | && cmv->bFunction == E1_MAKEFUNCTION(2, 2)) { | 1992 | && cmv->bFunction == E1_MAKEFUNCTION(2, 2)) { |
1968 | cmv->wIndex = cpu_to_le16(dsc->idx); | 1993 | cmv->wIndex = cpu_to_le16(dsc->idx); |
1969 | put_unaligned_le32(dsc->address, &cmv->dwSymbolicAddress); | 1994 | put_unaligned_le32(dsc->address, |
1995 | &cmv->dwSymbolicAddress); | ||
1970 | cmv->wOffsetAddress = cpu_to_le16(dsc->offset); | 1996 | cmv->wOffsetAddress = cpu_to_le16(dsc->offset); |
1971 | } else | 1997 | } else |
1972 | goto bad2; | 1998 | goto bad2; |
1973 | } | 1999 | } |
1974 | 2000 | ||
1975 | if (cmv->bFunction == E1_MAKEFUNCTION(E1_ADSLDIRECTIVE, E1_MODEMREADY)) { | 2001 | if (cmv->bFunction == E1_MAKEFUNCTION(E1_ADSLDIRECTIVE, |
2002 | E1_MODEMREADY)) { | ||
1976 | wake_up_cmv_ack(sc); | 2003 | wake_up_cmv_ack(sc); |
1977 | uea_leaves(INS_TO_USBDEV(sc)); | 2004 | uea_leaves(INS_TO_USBDEV(sc)); |
1978 | return; | 2005 | return; |
@@ -2021,7 +2048,8 @@ static void uea_dispatch_cmv_e4(struct uea_softc *sc, struct intr_pkt *intr) | |||
2021 | if (be16_to_cpu(cmv->wFunction) != dsc->function) | 2048 | if (be16_to_cpu(cmv->wFunction) != dsc->function) |
2022 | goto bad2; | 2049 | goto bad2; |
2023 | 2050 | ||
2024 | if (be16_to_cpu(cmv->wFunction) == E4_MAKEFUNCTION(E4_ADSLDIRECTIVE, E4_MODEMREADY, 1)) { | 2051 | if (be16_to_cpu(cmv->wFunction) == E4_MAKEFUNCTION(E4_ADSLDIRECTIVE, |
2052 | E4_MODEMREADY, 1)) { | ||
2025 | wake_up_cmv_ack(sc); | 2053 | wake_up_cmv_ack(sc); |
2026 | uea_leaves(INS_TO_USBDEV(sc)); | 2054 | uea_leaves(INS_TO_USBDEV(sc)); |
2027 | return; | 2055 | return; |
@@ -2048,14 +2076,16 @@ bad2: | |||
2048 | return; | 2076 | return; |
2049 | } | 2077 | } |
2050 | 2078 | ||
2051 | static void uea_schedule_load_page_e1(struct uea_softc *sc, struct intr_pkt *intr) | 2079 | static void uea_schedule_load_page_e1(struct uea_softc *sc, |
2080 | struct intr_pkt *intr) | ||
2052 | { | 2081 | { |
2053 | sc->pageno = intr->e1_bSwapPageNo; | 2082 | sc->pageno = intr->e1_bSwapPageNo; |
2054 | sc->ovl = intr->e1_bOvl >> 4 | intr->e1_bOvl << 4; | 2083 | sc->ovl = intr->e1_bOvl >> 4 | intr->e1_bOvl << 4; |
2055 | queue_work(sc->work_q, &sc->task); | 2084 | queue_work(sc->work_q, &sc->task); |
2056 | } | 2085 | } |
2057 | 2086 | ||
2058 | static void uea_schedule_load_page_e4(struct uea_softc *sc, struct intr_pkt *intr) | 2087 | static void uea_schedule_load_page_e4(struct uea_softc *sc, |
2088 | struct intr_pkt *intr) | ||
2059 | { | 2089 | { |
2060 | sc->pageno = intr->e4_bSwapPageNo; | 2090 | sc->pageno = intr->e4_bSwapPageNo; |
2061 | queue_work(sc->work_q, &sc->task); | 2091 | queue_work(sc->work_q, &sc->task); |
@@ -2263,8 +2293,8 @@ out: | |||
2263 | 2293 | ||
2264 | static DEVICE_ATTR(stat_status, S_IWUGO | S_IRUGO, read_status, reboot); | 2294 | static DEVICE_ATTR(stat_status, S_IWUGO | S_IRUGO, read_status, reboot); |
2265 | 2295 | ||
2266 | static ssize_t read_human_status(struct device *dev, struct device_attribute *attr, | 2296 | static ssize_t read_human_status(struct device *dev, |
2267 | char *buf) | 2297 | struct device_attribute *attr, char *buf) |
2268 | { | 2298 | { |
2269 | int ret = -ENODEV; | 2299 | int ret = -ENODEV; |
2270 | int modem_state; | 2300 | int modem_state; |
@@ -2289,7 +2319,7 @@ static ssize_t read_human_status(struct device *dev, struct device_attribute *at | |||
2289 | case 0xa: | 2319 | case 0xa: |
2290 | modem_state = 1; | 2320 | modem_state = 1; |
2291 | break; | 2321 | break; |
2292 | case 0x7: /* operational */ | 2322 | case 0x7: /* operational */ |
2293 | modem_state = 2; | 2323 | modem_state = 2; |
2294 | break; | 2324 | break; |
2295 | case 0x2: /* fail ... */ | 2325 | case 0x2: /* fail ... */ |
@@ -2324,7 +2354,8 @@ out: | |||
2324 | return ret; | 2354 | return ret; |
2325 | } | 2355 | } |
2326 | 2356 | ||
2327 | static DEVICE_ATTR(stat_human_status, S_IWUGO | S_IRUGO, read_human_status, NULL); | 2357 | static DEVICE_ATTR(stat_human_status, S_IWUGO | S_IRUGO, |
2358 | read_human_status, NULL); | ||
2328 | 2359 | ||
2329 | static ssize_t read_delin(struct device *dev, struct device_attribute *attr, | 2360 | static ssize_t read_delin(struct device *dev, struct device_attribute *attr, |
2330 | char *buf) | 2361 | char *buf) |
@@ -2358,25 +2389,25 @@ out: | |||
2358 | 2389 | ||
2359 | static DEVICE_ATTR(stat_delin, S_IWUGO | S_IRUGO, read_delin, NULL); | 2390 | static DEVICE_ATTR(stat_delin, S_IWUGO | S_IRUGO, read_delin, NULL); |
2360 | 2391 | ||
2361 | #define UEA_ATTR(name, reset) \ | 2392 | #define UEA_ATTR(name, reset) \ |
2362 | \ | 2393 | \ |
2363 | static ssize_t read_##name(struct device *dev, \ | 2394 | static ssize_t read_##name(struct device *dev, \ |
2364 | struct device_attribute *attr, char *buf) \ | 2395 | struct device_attribute *attr, char *buf) \ |
2365 | { \ | 2396 | { \ |
2366 | int ret = -ENODEV; \ | 2397 | int ret = -ENODEV; \ |
2367 | struct uea_softc *sc; \ | 2398 | struct uea_softc *sc; \ |
2368 | \ | 2399 | \ |
2369 | mutex_lock(&uea_mutex); \ | 2400 | mutex_lock(&uea_mutex); \ |
2370 | sc = dev_to_uea(dev); \ | 2401 | sc = dev_to_uea(dev); \ |
2371 | if (!sc) \ | 2402 | if (!sc) \ |
2372 | goto out; \ | 2403 | goto out; \ |
2373 | ret = snprintf(buf, 10, "%08x\n", sc->stats.phy.name); \ | 2404 | ret = snprintf(buf, 10, "%08x\n", sc->stats.phy.name); \ |
2374 | if (reset) \ | 2405 | if (reset) \ |
2375 | sc->stats.phy.name = 0; \ | 2406 | sc->stats.phy.name = 0; \ |
2376 | out: \ | 2407 | out: \ |
2377 | mutex_unlock(&uea_mutex); \ | 2408 | mutex_unlock(&uea_mutex); \ |
2378 | return ret; \ | 2409 | return ret; \ |
2379 | } \ | 2410 | } \ |
2380 | \ | 2411 | \ |
2381 | static DEVICE_ATTR(stat_##name, S_IRUGO, read_##name, NULL) | 2412 | static DEVICE_ATTR(stat_##name, S_IRUGO, read_##name, NULL) |
2382 | 2413 | ||
@@ -2527,12 +2558,14 @@ static int uea_bind(struct usbatm_data *usbatm, struct usb_interface *intf, | |||
2527 | else if (sc->driver_info & AUTO_ANNEX_B) | 2558 | else if (sc->driver_info & AUTO_ANNEX_B) |
2528 | sc->annex = ANNEXB; | 2559 | sc->annex = ANNEXB; |
2529 | else | 2560 | else |
2530 | sc->annex = (le16_to_cpu(sc->usb_dev->descriptor.bcdDevice) & 0x80)?ANNEXB:ANNEXA; | 2561 | sc->annex = (le16_to_cpu |
2562 | (sc->usb_dev->descriptor.bcdDevice) & 0x80) ? ANNEXB : ANNEXA; | ||
2531 | 2563 | ||
2532 | alt = altsetting[sc->modem_index]; | 2564 | alt = altsetting[sc->modem_index]; |
2533 | /* ADI930 don't support iso */ | 2565 | /* ADI930 don't support iso */ |
2534 | if (UEA_CHIP_VERSION(id) != ADI930 && alt > 0) { | 2566 | if (UEA_CHIP_VERSION(id) != ADI930 && alt > 0) { |
2535 | if (alt <= 8 && usb_set_interface(usb, UEA_DS_IFACE_NO, alt) == 0) { | 2567 | if (alt <= 8 && |
2568 | usb_set_interface(usb, UEA_DS_IFACE_NO, alt) == 0) { | ||
2536 | uea_dbg(usb, "set alternate %u for 2 interface\n", alt); | 2569 | uea_dbg(usb, "set alternate %u for 2 interface\n", alt); |
2537 | uea_info(usb, "using iso mode\n"); | 2570 | uea_info(usb, "using iso mode\n"); |
2538 | usbatm->flags |= UDSL_USE_ISOC | UDSL_IGNORE_EILSEQ; | 2571 | usbatm->flags |= UDSL_USE_ISOC | UDSL_IGNORE_EILSEQ; |
@@ -2621,40 +2654,74 @@ static void uea_disconnect(struct usb_interface *intf) | |||
2621 | * List of supported VID/PID | 2654 | * List of supported VID/PID |
2622 | */ | 2655 | */ |
2623 | static const struct usb_device_id uea_ids[] = { | 2656 | static const struct usb_device_id uea_ids[] = { |
2624 | {USB_DEVICE(ANALOG_VID, ADI930_PID_PREFIRM), .driver_info = ADI930 | PREFIRM}, | 2657 | {USB_DEVICE(ANALOG_VID, ADI930_PID_PREFIRM), |
2625 | {USB_DEVICE(ANALOG_VID, ADI930_PID_PSTFIRM), .driver_info = ADI930 | PSTFIRM}, | 2658 | .driver_info = ADI930 | PREFIRM}, |
2626 | {USB_DEVICE(ANALOG_VID, EAGLE_I_PID_PREFIRM), .driver_info = EAGLE_I | PREFIRM}, | 2659 | {USB_DEVICE(ANALOG_VID, ADI930_PID_PSTFIRM), |
2627 | {USB_DEVICE(ANALOG_VID, EAGLE_I_PID_PSTFIRM), .driver_info = EAGLE_I | PSTFIRM}, | 2660 | .driver_info = ADI930 | PSTFIRM}, |
2628 | {USB_DEVICE(ANALOG_VID, EAGLE_II_PID_PREFIRM), .driver_info = EAGLE_II | PREFIRM}, | 2661 | {USB_DEVICE(ANALOG_VID, EAGLE_I_PID_PREFIRM), |
2629 | {USB_DEVICE(ANALOG_VID, EAGLE_II_PID_PSTFIRM), .driver_info = EAGLE_II | PSTFIRM}, | 2662 | .driver_info = EAGLE_I | PREFIRM}, |
2630 | {USB_DEVICE(ANALOG_VID, EAGLE_IIC_PID_PREFIRM), .driver_info = EAGLE_II | PREFIRM}, | 2663 | {USB_DEVICE(ANALOG_VID, EAGLE_I_PID_PSTFIRM), |
2631 | {USB_DEVICE(ANALOG_VID, EAGLE_IIC_PID_PSTFIRM), .driver_info = EAGLE_II | PSTFIRM}, | 2664 | .driver_info = EAGLE_I | PSTFIRM}, |
2632 | {USB_DEVICE(ANALOG_VID, EAGLE_III_PID_PREFIRM), .driver_info = EAGLE_III | PREFIRM}, | 2665 | {USB_DEVICE(ANALOG_VID, EAGLE_II_PID_PREFIRM), |
2633 | {USB_DEVICE(ANALOG_VID, EAGLE_III_PID_PSTFIRM), .driver_info = EAGLE_III | PSTFIRM}, | 2666 | .driver_info = EAGLE_II | PREFIRM}, |
2634 | {USB_DEVICE(ANALOG_VID, EAGLE_IV_PID_PREFIRM), .driver_info = EAGLE_IV | PREFIRM}, | 2667 | {USB_DEVICE(ANALOG_VID, EAGLE_II_PID_PSTFIRM), |
2635 | {USB_DEVICE(ANALOG_VID, EAGLE_IV_PID_PSTFIRM), .driver_info = EAGLE_IV | PSTFIRM}, | 2668 | .driver_info = EAGLE_II | PSTFIRM}, |
2636 | {USB_DEVICE(DEVOLO_VID, DEVOLO_EAGLE_I_A_PID_PREFIRM), .driver_info = EAGLE_I | PREFIRM}, | 2669 | {USB_DEVICE(ANALOG_VID, EAGLE_IIC_PID_PREFIRM), |
2637 | {USB_DEVICE(DEVOLO_VID, DEVOLO_EAGLE_I_A_PID_PSTFIRM), .driver_info = EAGLE_I | PSTFIRM | AUTO_ANNEX_A}, | 2670 | .driver_info = EAGLE_II | PREFIRM}, |
2638 | {USB_DEVICE(DEVOLO_VID, DEVOLO_EAGLE_I_B_PID_PREFIRM), .driver_info = EAGLE_I | PREFIRM}, | 2671 | {USB_DEVICE(ANALOG_VID, EAGLE_IIC_PID_PSTFIRM), |
2639 | {USB_DEVICE(DEVOLO_VID, DEVOLO_EAGLE_I_B_PID_PSTFIRM), .driver_info = EAGLE_I | PSTFIRM | AUTO_ANNEX_B}, | 2672 | .driver_info = EAGLE_II | PSTFIRM}, |
2640 | {USB_DEVICE(DEVOLO_VID, DEVOLO_EAGLE_II_A_PID_PREFIRM), .driver_info = EAGLE_II | PREFIRM}, | 2673 | {USB_DEVICE(ANALOG_VID, EAGLE_III_PID_PREFIRM), |
2641 | {USB_DEVICE(DEVOLO_VID, DEVOLO_EAGLE_II_A_PID_PSTFIRM), .driver_info = EAGLE_II | PSTFIRM | AUTO_ANNEX_A}, | 2674 | .driver_info = EAGLE_III | PREFIRM}, |
2642 | {USB_DEVICE(DEVOLO_VID, DEVOLO_EAGLE_II_B_PID_PREFIRM), .driver_info = EAGLE_II | PREFIRM}, | 2675 | {USB_DEVICE(ANALOG_VID, EAGLE_III_PID_PSTFIRM), |
2643 | {USB_DEVICE(DEVOLO_VID, DEVOLO_EAGLE_II_B_PID_PSTFIRM), .driver_info = EAGLE_II | PSTFIRM | AUTO_ANNEX_B}, | 2676 | .driver_info = EAGLE_III | PSTFIRM}, |
2644 | {USB_DEVICE(ELSA_VID, ELSA_PID_PREFIRM), .driver_info = ADI930 | PREFIRM}, | 2677 | {USB_DEVICE(ANALOG_VID, EAGLE_IV_PID_PREFIRM), |
2645 | {USB_DEVICE(ELSA_VID, ELSA_PID_PSTFIRM), .driver_info = ADI930 | PSTFIRM}, | 2678 | .driver_info = EAGLE_IV | PREFIRM}, |
2646 | {USB_DEVICE(ELSA_VID, ELSA_PID_A_PREFIRM), .driver_info = ADI930 | PREFIRM}, | 2679 | {USB_DEVICE(ANALOG_VID, EAGLE_IV_PID_PSTFIRM), |
2647 | {USB_DEVICE(ELSA_VID, ELSA_PID_A_PSTFIRM), .driver_info = ADI930 | PSTFIRM | AUTO_ANNEX_A}, | 2680 | .driver_info = EAGLE_IV | PSTFIRM}, |
2648 | {USB_DEVICE(ELSA_VID, ELSA_PID_B_PREFIRM), .driver_info = ADI930 | PREFIRM}, | 2681 | {USB_DEVICE(DEVOLO_VID, DEVOLO_EAGLE_I_A_PID_PREFIRM), |
2649 | {USB_DEVICE(ELSA_VID, ELSA_PID_B_PSTFIRM), .driver_info = ADI930 | PSTFIRM | AUTO_ANNEX_B}, | 2682 | .driver_info = EAGLE_I | PREFIRM}, |
2650 | {USB_DEVICE(USR_VID, MILLER_A_PID_PREFIRM), .driver_info = EAGLE_I | PREFIRM}, | 2683 | {USB_DEVICE(DEVOLO_VID, DEVOLO_EAGLE_I_A_PID_PSTFIRM), |
2651 | {USB_DEVICE(USR_VID, MILLER_A_PID_PSTFIRM), .driver_info = EAGLE_I | PSTFIRM | AUTO_ANNEX_A}, | 2684 | .driver_info = EAGLE_I | PSTFIRM | AUTO_ANNEX_A}, |
2652 | {USB_DEVICE(USR_VID, MILLER_B_PID_PREFIRM), .driver_info = EAGLE_I | PREFIRM}, | 2685 | {USB_DEVICE(DEVOLO_VID, DEVOLO_EAGLE_I_B_PID_PREFIRM), |
2653 | {USB_DEVICE(USR_VID, MILLER_B_PID_PSTFIRM), .driver_info = EAGLE_I | PSTFIRM | AUTO_ANNEX_B}, | 2686 | .driver_info = EAGLE_I | PREFIRM}, |
2654 | {USB_DEVICE(USR_VID, HEINEKEN_A_PID_PREFIRM),.driver_info = EAGLE_I | PREFIRM}, | 2687 | {USB_DEVICE(DEVOLO_VID, DEVOLO_EAGLE_I_B_PID_PSTFIRM), |
2655 | {USB_DEVICE(USR_VID, HEINEKEN_A_PID_PSTFIRM),.driver_info = EAGLE_I | PSTFIRM | AUTO_ANNEX_A}, | 2688 | .driver_info = EAGLE_I | PSTFIRM | AUTO_ANNEX_B}, |
2656 | {USB_DEVICE(USR_VID, HEINEKEN_B_PID_PREFIRM),.driver_info = EAGLE_I | PREFIRM}, | 2689 | {USB_DEVICE(DEVOLO_VID, DEVOLO_EAGLE_II_A_PID_PREFIRM), |
2657 | {USB_DEVICE(USR_VID, HEINEKEN_B_PID_PSTFIRM),.driver_info = EAGLE_I | PSTFIRM | AUTO_ANNEX_B}, | 2690 | .driver_info = EAGLE_II | PREFIRM}, |
2691 | {USB_DEVICE(DEVOLO_VID, DEVOLO_EAGLE_II_A_PID_PSTFIRM), | ||
2692 | .driver_info = EAGLE_II | PSTFIRM | AUTO_ANNEX_A}, | ||
2693 | {USB_DEVICE(DEVOLO_VID, DEVOLO_EAGLE_II_B_PID_PREFIRM), | ||
2694 | .driver_info = EAGLE_II | PREFIRM}, | ||
2695 | {USB_DEVICE(DEVOLO_VID, DEVOLO_EAGLE_II_B_PID_PSTFIRM), | ||
2696 | .driver_info = EAGLE_II | PSTFIRM | AUTO_ANNEX_B}, | ||
2697 | {USB_DEVICE(ELSA_VID, ELSA_PID_PREFIRM), | ||
2698 | .driver_info = ADI930 | PREFIRM}, | ||
2699 | {USB_DEVICE(ELSA_VID, ELSA_PID_PSTFIRM), | ||
2700 | .driver_info = ADI930 | PSTFIRM}, | ||
2701 | {USB_DEVICE(ELSA_VID, ELSA_PID_A_PREFIRM), | ||
2702 | .driver_info = ADI930 | PREFIRM}, | ||
2703 | {USB_DEVICE(ELSA_VID, ELSA_PID_A_PSTFIRM), | ||
2704 | .driver_info = ADI930 | PSTFIRM | AUTO_ANNEX_A}, | ||
2705 | {USB_DEVICE(ELSA_VID, ELSA_PID_B_PREFIRM), | ||
2706 | .driver_info = ADI930 | PREFIRM}, | ||
2707 | {USB_DEVICE(ELSA_VID, ELSA_PID_B_PSTFIRM), | ||
2708 | .driver_info = ADI930 | PSTFIRM | AUTO_ANNEX_B}, | ||
2709 | {USB_DEVICE(USR_VID, MILLER_A_PID_PREFIRM), | ||
2710 | .driver_info = EAGLE_I | PREFIRM}, | ||
2711 | {USB_DEVICE(USR_VID, MILLER_A_PID_PSTFIRM), | ||
2712 | .driver_info = EAGLE_I | PSTFIRM | AUTO_ANNEX_A}, | ||
2713 | {USB_DEVICE(USR_VID, MILLER_B_PID_PREFIRM), | ||
2714 | .driver_info = EAGLE_I | PREFIRM}, | ||
2715 | {USB_DEVICE(USR_VID, MILLER_B_PID_PSTFIRM), | ||
2716 | .driver_info = EAGLE_I | PSTFIRM | AUTO_ANNEX_B}, | ||
2717 | {USB_DEVICE(USR_VID, HEINEKEN_A_PID_PREFIRM), | ||
2718 | .driver_info = EAGLE_I | PREFIRM}, | ||
2719 | {USB_DEVICE(USR_VID, HEINEKEN_A_PID_PSTFIRM), | ||
2720 | .driver_info = EAGLE_I | PSTFIRM | AUTO_ANNEX_A}, | ||
2721 | {USB_DEVICE(USR_VID, HEINEKEN_B_PID_PREFIRM), | ||
2722 | .driver_info = EAGLE_I | PREFIRM}, | ||
2723 | {USB_DEVICE(USR_VID, HEINEKEN_B_PID_PSTFIRM), | ||
2724 | .driver_info = EAGLE_I | PSTFIRM | AUTO_ANNEX_B}, | ||
2658 | {} | 2725 | {} |
2659 | }; | 2726 | }; |
2660 | 2727 | ||