diff options
Diffstat (limited to 'drivers/usb/atm/ueagle-atm.c')
| -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 25f01b536f6..e213d3fa492 100644 --- a/drivers/usb/atm/ueagle-atm.c +++ b/drivers/usb/atm/ueagle-atm.c @@ -94,19 +94,19 @@  	} while (0)  #define uea_enters(usb_dev) \ -	uea_vdbg(usb_dev, "entering %s\n", __func__) +	uea_vdbg(usb_dev, "entering %s\n" , __func__)  #define uea_leaves(usb_dev) \ -	uea_vdbg(usb_dev, "leaving  %s\n", __func__) +	uea_vdbg(usb_dev, "leaving  %s\n" , __func__) -#define uea_err(usb_dev, format,args...) \ -	dev_err(&(usb_dev)->dev ,"[UEAGLE-ATM] " format , ##args) +#define uea_err(usb_dev, format, args...) \ +	dev_err(&(usb_dev)->dev , "[UEAGLE-ATM] " format , ##args) -#define uea_warn(usb_dev, format,args...) \ -	dev_warn(&(usb_dev)->dev ,"[Ueagle-atm] " format, ##args) +#define uea_warn(usb_dev, format, args...) \ +	dev_warn(&(usb_dev)->dev , "[Ueagle-atm] " format, ##args) -#define uea_info(usb_dev, format,args...) \ -	dev_info(&(usb_dev)->dev ,"[ueagle-atm] " format, ##args) +#define uea_info(usb_dev, format, args...) \ +	dev_info(&(usb_dev)->dev , "[ueagle-atm] " format, ##args)  struct intr_pkt; @@ -289,7 +289,7 @@ enum {  #define IS_ISDN(x) \  	((x)->annex & ANNEXB) -#define INS_TO_USBDEV(ins) ins->usb_dev +#define INS_TO_USBDEV(ins) (ins->usb_dev)  #define GET_STATUS(data) \  	((data >> 8) & 0xf) @@ -304,7 +304,7 @@ enum {   * The FW_GET_BYTE() macro is provided only for consistency.   */ -#define FW_GET_BYTE(p)	*((__u8 *) (p)) +#define FW_GET_BYTE(p) (*((__u8 *) (p)))  #define FW_DIR "ueagle-atm/"  #define UEA_FW_NAME_MAX 30 @@ -315,7 +315,7 @@ enum {  #define ACK_TIMEOUT msecs_to_jiffies(3000) -#define UEA_INTR_IFACE_NO 	0 +#define UEA_INTR_IFACE_NO	0  #define UEA_US_IFACE_NO		1  #define UEA_DS_IFACE_NO		2 @@ -326,9 +326,9 @@ enum {  #define UEA_INTR_PIPE		0x04  #define UEA_ISO_DATA_PIPE	0x08 -#define UEA_E1_SET_BLOCK    	0x0001 +#define UEA_E1_SET_BLOCK	0x0001  #define UEA_E4_SET_BLOCK	0x002c -#define UEA_SET_MODE     	0x0003 +#define UEA_SET_MODE		0x0003  #define UEA_SET_2183_DATA	0x0004  #define UEA_SET_TIMEOUT		0x0011 @@ -366,7 +366,7 @@ struct l1_code {  	u8 string_header[E4_L1_STRING_HEADER];  	u8 page_number_to_block_index[E4_MAX_PAGE_NUMBER];  	struct block_index page_header[E4_NO_SWAPPAGE_HEADERS]; -	u8 code [0]; +	u8 code[0];  } __attribute__ ((packed));  /* structures describing a block within a DSP page */ @@ -428,7 +428,8 @@ struct block_info_e4 {  #define E4_MODEMREADY  0x1  #define E1_MAKEFUNCTION(t, s) (((t) & 0xf) << 4 | ((s) & 0xf)) -#define E4_MAKEFUNCTION(t, st, s) (((t) & 0xf) << 8 | ((st) & 0xf) << 4 | ((s) & 0xf)) +#define E4_MAKEFUNCTION(t, st, s) (((t) & 0xf) << 8 | \ +	((st) & 0xf) << 4 | ((s) & 0xf))  #define E1_MAKESA(a, b, c, d)						\  	(((c) & 0xff) << 24 |						\ @@ -473,7 +474,7 @@ struct cmv_e4 {  	__be16 wFunction;  	__be16 wOffset;  	__be16 wAddress; -	__be32 dwData [6]; +	__be32 dwData[6];  } __attribute__ ((packed));  /* structures representing swap information */ @@ -534,11 +535,13 @@ struct intr_pkt {  static struct usb_driver uea_driver;  static DEFINE_MUTEX(uea_mutex); -static const char *chip_name[] = {"ADI930", "Eagle I", "Eagle II", "Eagle III", "Eagle IV"}; +static const char *chip_name[] = {"ADI930", "Eagle I", "Eagle II", "Eagle III", +								"Eagle IV"};  static int modem_index;  static unsigned int debug; -static unsigned int altsetting[NB_MODEM] = {[0 ... (NB_MODEM - 1)] = FASTEST_ISO_INTF}; +static unsigned int altsetting[NB_MODEM] = { +				[0 ... (NB_MODEM - 1)] = FASTEST_ISO_INTF};  static int sync_wait[NB_MODEM];  static char *cmv_file[NB_MODEM];  static int annex[NB_MODEM]; @@ -555,7 +558,7 @@ MODULE_PARM_DESC(cmv_file,  		"file name with configuration and management variables");  module_param_array(annex, uint, NULL, 0644);  MODULE_PARM_DESC(annex, -                 "manually set annex a/b (0=auto, 1=annex a, 2=annex b)"); +		"manually set annex a/b (0=auto, 1=annex a, 2=annex b)");  #define uea_wait(sc, cond, timeo) \  ({ \ @@ -602,7 +605,8 @@ static int uea_send_modem_cmd(struct usb_device *usb,  	return (ret == size) ? 0 : -EIO;  } -static void uea_upload_pre_firmware(const struct firmware *fw_entry, void *context) +static void uea_upload_pre_firmware(const struct firmware *fw_entry, +								void *context)  {  	struct usb_device *usb = context;  	const u8 *pfw; @@ -707,7 +711,8 @@ static int uea_load_firmware(struct usb_device *usb, unsigned int ver)  	}  	ret = request_firmware_nowait(THIS_MODULE, 1, fw_name, &usb->dev, -				      GFP_KERNEL, usb, uea_upload_pre_firmware); +					GFP_KERNEL, usb, +					uea_upload_pre_firmware);  	if (ret)  		uea_err(usb, "firmware %s is not available\n", fw_name);  	else @@ -876,7 +881,7 @@ static int request_dsp(struct uea_softc *sc)  	if (ret < 0) {  		uea_err(INS_TO_USBDEV(sc),  		       "requesting firmware %s failed with error %d\n", -		        dsp_name, ret); +			dsp_name, ret);  		return ret;  	} @@ -994,14 +999,17 @@ static void __uea_load_page_e4(struct uea_softc *sc, u8 pageno, int boot)  		blockidx = &p->page_header[blockno];  		blocksize = E4_PAGE_BYTES(blockidx->PageSize); -		blockoffset = sc->dsp_firm->data + le32_to_cpu(blockidx->PageOffset); +		blockoffset = sc->dsp_firm->data + le32_to_cpu( +							blockidx->PageOffset);  		bi.dwSize = cpu_to_be32(blocksize);  		bi.dwAddress = cpu_to_be32(le32_to_cpu(blockidx->PageAddress));  		uea_dbg(INS_TO_USBDEV(sc), -		       "sending block %u for DSP page %u size %u address %x\n", -		       blockno, pageno, blocksize, le32_to_cpu(blockidx->PageAddress)); +			"sending block %u for DSP page " +			"%u size %u address %x\n", +			blockno, pageno, blocksize, +			le32_to_cpu(blockidx->PageAddress));  		/* send block info through the IDMA pipe */  		if (uea_idma_write(sc, &bi, E4_BLOCK_INFO_SIZE)) @@ -1042,7 +1050,8 @@ static void uea_load_page_e4(struct work_struct *work)  	p = (struct l1_code *) sc->dsp_firm->data;  	if (pageno >= le16_to_cpu(p->page_header[0].PageNumber)) { -		uea_err(INS_TO_USBDEV(sc), "invalid DSP page %u requested\n", pageno); +		uea_err(INS_TO_USBDEV(sc), "invalid DSP " +						"page %u requested\n", pageno);  		return;  	} @@ -1059,7 +1068,7 @@ static void uea_load_page_e4(struct work_struct *work)  			__uea_load_page_e4(sc, i, 1);  	} -	uea_dbg(INS_TO_USBDEV(sc),"sending start bi\n"); +	uea_dbg(INS_TO_USBDEV(sc) , "sending start bi\n");  	bi.wHdr = cpu_to_be16(UEA_BIHDR);  	bi.bBootPage = 0; @@ -1139,8 +1148,10 @@ static int uea_cmv_e1(struct uea_softc *sc,  	uea_enters(INS_TO_USBDEV(sc));  	uea_vdbg(INS_TO_USBDEV(sc), "Function : %d-%d, Address : %c%c%c%c, "  			"offset : 0x%04x, data : 0x%08x\n", -			E1_FUNCTION_TYPE(function), E1_FUNCTION_SUBTYPE(function), -			E1_GETSA1(address), E1_GETSA2(address), E1_GETSA3(address), +			E1_FUNCTION_TYPE(function), +			E1_FUNCTION_SUBTYPE(function), +			E1_GETSA1(address), E1_GETSA2(address), +			E1_GETSA3(address),  			E1_GETSA4(address), offset, data);  	/* we send a request, but we expect a reply */ @@ -1157,7 +1168,8 @@ static int uea_cmv_e1(struct uea_softc *sc,  	cmv.wOffsetAddress = cpu_to_le16(offset);  	put_unaligned_le32(data >> 16 | data << 16, &cmv.dwData); -	ret = uea_request(sc, UEA_E1_SET_BLOCK, UEA_MPTX_START, sizeof(cmv), &cmv); +	ret = uea_request(sc, UEA_E1_SET_BLOCK, UEA_MPTX_START, +							sizeof(cmv), &cmv);  	if (ret < 0)  		return ret;  	ret = wait_cmv_ack(sc); @@ -1191,7 +1203,8 @@ static int uea_cmv_e4(struct uea_softc *sc,  	cmv.wOffset = cpu_to_be16(offset);  	cmv.dwData[0] = cpu_to_be32(data); -	ret = uea_request(sc, UEA_E4_SET_BLOCK, UEA_MPTX_START, sizeof(cmv), &cmv); +	ret = uea_request(sc, UEA_E4_SET_BLOCK, UEA_MPTX_START, +							sizeof(cmv), &cmv);  	if (ret < 0)  		return ret;  	ret = wait_cmv_ack(sc); @@ -1208,7 +1221,7 @@ static inline int uea_read_cmv_e1(struct uea_softc *sc,  		uea_err(INS_TO_USBDEV(sc),  			"reading cmv failed with error %d\n", ret);  	else -	 	*data = sc->data; +		*data = sc->data;  	return ret;  } @@ -1216,13 +1229,14 @@ static inline int uea_read_cmv_e1(struct uea_softc *sc,  static inline int uea_read_cmv_e4(struct uea_softc *sc,  		u8 size, u16 group, u16 address, u16 offset, u32 *data)  { -	int ret = uea_cmv_e4(sc, E4_MAKEFUNCTION(E4_MEMACCESS, E4_REQUESTREAD, size), +	int ret = uea_cmv_e4(sc, E4_MAKEFUNCTION(E4_MEMACCESS, +							E4_REQUESTREAD, size),  			  group, address, offset, 0);  	if (ret < 0)  		uea_err(INS_TO_USBDEV(sc),  			"reading cmv failed with error %d\n", ret);  	else { -	 	*data = sc->data; +		*data = sc->data;  		/* size is in 16-bit word quantities */  		if (size > 2)  			*(data + 1) = sc->data1; @@ -1245,7 +1259,8 @@ static inline int uea_write_cmv_e1(struct uea_softc *sc,  static inline int uea_write_cmv_e4(struct uea_softc *sc,  		u8 size, u16 group, u16 address, u16 offset, u32 data)  { -	int ret = uea_cmv_e4(sc, E4_MAKEFUNCTION(E4_MEMACCESS, E4_REQUESTWRITE, size), +	int ret = uea_cmv_e4(sc, E4_MAKEFUNCTION(E4_MEMACCESS, +							E4_REQUESTWRITE, size),  			  group, address, offset, data);  	if (ret < 0)  		uea_err(INS_TO_USBDEV(sc), @@ -1442,27 +1457,29 @@ static int uea_stat_e4(struct uea_softc *sc)  		return ret;  	switch (sc->stats.phy.state) { -		case 0x0:	/* not yet synchronized */ -		case 0x1: -		case 0x3: -		case 0x4: -			uea_dbg(INS_TO_USBDEV(sc), "modem not yet synchronized\n"); -			return 0; -		case 0x5:	/* initialization */ -		case 0x6: -		case 0x9: -		case 0xa: -			uea_dbg(INS_TO_USBDEV(sc), "modem initializing\n"); -			return 0; -		case 0x2:	/* fail ... */ -			uea_info(INS_TO_USBDEV(sc), "modem synchronization failed" -					" (may be try other cmv/dsp)\n"); -			return -EAGAIN; -		case 0x7: 	/* operational */ -			break; -		default: -			uea_warn(INS_TO_USBDEV(sc), "unknown state: %x\n", sc->stats.phy.state); -			return 0; +	case 0x0:	/* not yet synchronized */ +	case 0x1: +	case 0x3: +	case 0x4: +		uea_dbg(INS_TO_USBDEV(sc), "modem not yet " +						"synchronized\n"); +		return 0; +	case 0x5:	/* initialization */ +	case 0x6: +	case 0x9: +	case 0xa: +		uea_dbg(INS_TO_USBDEV(sc), "modem initializing\n"); +		return 0; +	case 0x2:	/* fail ... */ +		uea_info(INS_TO_USBDEV(sc), "modem synchronization " +				"failed (may be try other cmv/dsp)\n"); +		return -EAGAIN; +	case 0x7:	/* operational */ +		break; +	default: +		uea_warn(INS_TO_USBDEV(sc), "unknown state: %x\n", +						sc->stats.phy.state); +		return 0;  	}  	if (data != 7) { @@ -1502,9 +1519,9 @@ static int uea_stat_e4(struct uea_softc *sc)  	if (sc->stats.phy.flags) {  		uea_dbg(INS_TO_USBDEV(sc), "Stat flag = 0x%x\n",  		       sc->stats.phy.flags); -		if (sc->stats.phy.flags & 1) //delineation LOSS +		if (sc->stats.phy.flags & 1) /* delineation LOSS */  			return -EAGAIN; -		if (sc->stats.phy.flags & 0x4000) //Reset Flag +		if (sc->stats.phy.flags & 0x4000) /* Reset Flag */  			return -EAGAIN;  		return 0;  	} @@ -1618,7 +1635,8 @@ static int request_cmvs(struct uea_softc *sc,  	if (ret < 0) {  		/* if caller can handle old version, try to provide it */  		if (*ver == 1) { -			uea_warn(INS_TO_USBDEV(sc), "requesting firmware %s failed, " +			uea_warn(INS_TO_USBDEV(sc), "requesting " +							"firmware %s failed, "  				"try to get older cmvs\n", cmv_name);  			return request_cmvs_old(sc, cmvs, fw);  		} @@ -1632,8 +1650,8 @@ static int request_cmvs(struct uea_softc *sc,  	data = (u8 *) (*fw)->data;  	if (size < 4 || strncmp(data, "cmv2", 4) != 0) {  		if (*ver == 1) { -			uea_warn(INS_TO_USBDEV(sc), "firmware %s is corrupted, " -				"try to get older cmvs\n", cmv_name); +			uea_warn(INS_TO_USBDEV(sc), "firmware %s is corrupted," +				" try to get older cmvs\n", cmv_name);  			release_firmware(*fw);  			return request_cmvs_old(sc, cmvs, fw);  		} @@ -1670,7 +1688,7 @@ static int uea_send_cmvs_e1(struct uea_softc *sc)  	int i, ret, len;  	void *cmvs_ptr;  	const struct firmware *cmvs_fw; -	int ver = 1; // we can handle v1 cmv firmware version; +	int ver = 1; /* we can handle v1 cmv firmware version; */  	/* Enter in R-IDLE (cmv) until instructed otherwise */  	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)  			sc->stats.phy.firmid);  	/* get options */ - 	ret = len = request_cmvs(sc, &cmvs_ptr, &cmvs_fw, &ver); +	ret = len = request_cmvs(sc, &cmvs_ptr, &cmvs_fw, &ver);  	if (ret < 0)  		return ret; @@ -1697,9 +1715,10 @@ static int uea_send_cmvs_e1(struct uea_softc *sc)  			"please update your firmware\n");  		for (i = 0; i < len; i++) { -			ret = uea_write_cmv_e1(sc, get_unaligned_le32(&cmvs_v1[i].address), -						get_unaligned_le16(&cmvs_v1[i].offset), -						get_unaligned_le32(&cmvs_v1[i].data)); +			ret = uea_write_cmv_e1(sc, +				get_unaligned_le32(&cmvs_v1[i].address), +				get_unaligned_le16(&cmvs_v1[i].offset), +				get_unaligned_le32(&cmvs_v1[i].data));  			if (ret < 0)  				goto out;  		} @@ -1707,9 +1726,10 @@ static int uea_send_cmvs_e1(struct uea_softc *sc)  		struct uea_cmvs_v2 *cmvs_v2 = cmvs_ptr;  		for (i = 0; i < len; i++) { -			ret = uea_write_cmv_e1(sc, get_unaligned_le32(&cmvs_v2[i].address), -						(u16) get_unaligned_le32(&cmvs_v2[i].offset), -						get_unaligned_le32(&cmvs_v2[i].data)); +			ret = uea_write_cmv_e1(sc, +				get_unaligned_le32(&cmvs_v2[i].address), +				(u16) get_unaligned_le32(&cmvs_v2[i].offset), +				get_unaligned_le32(&cmvs_v2[i].data));  			if (ret < 0)  				goto out;  		} @@ -1722,7 +1742,8 @@ static int uea_send_cmvs_e1(struct uea_softc *sc)  	/* Enter in R-ACT-REQ */  	ret = uea_write_cmv_e1(sc, E1_SA_CNTL, 0, 2);  	uea_vdbg(INS_TO_USBDEV(sc), "Entering in R-ACT-REQ state\n"); -	uea_info(INS_TO_USBDEV(sc), "modem started, waiting synchronization...\n"); +	uea_info(INS_TO_USBDEV(sc), "modem started, waiting " +						"synchronization...\n");  out:  	release_firmware(cmvs_fw);  	return ret; @@ -1733,7 +1754,7 @@ static int uea_send_cmvs_e4(struct uea_softc *sc)  	int i, ret, len;  	void *cmvs_ptr;  	const struct firmware *cmvs_fw; -	int ver = 2; // we can only handle v2 cmv firmware version; +	int ver = 2; /* we can only handle v2 cmv firmware version; */  	/* Enter in R-IDLE (cmv) until instructed otherwise */  	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)  	/* get options */ - 	ret = len = request_cmvs(sc, &cmvs_ptr, &cmvs_fw, &ver); +	ret = len = request_cmvs(sc, &cmvs_ptr, &cmvs_fw, &ver);  	if (ret < 0)  		return ret; @@ -1760,10 +1781,10 @@ static int uea_send_cmvs_e4(struct uea_softc *sc)  		for (i = 0; i < len; i++) {  			ret = uea_write_cmv_e4(sc, 1, -						get_unaligned_le32(&cmvs_v2[i].group), -						get_unaligned_le32(&cmvs_v2[i].address), -						get_unaligned_le32(&cmvs_v2[i].offset), -						get_unaligned_le32(&cmvs_v2[i].data)); +				get_unaligned_le32(&cmvs_v2[i].group), +				get_unaligned_le32(&cmvs_v2[i].address), +				get_unaligned_le32(&cmvs_v2[i].offset), +				get_unaligned_le32(&cmvs_v2[i].data));  			if (ret < 0)  				goto out;  		} @@ -1776,7 +1797,8 @@ static int uea_send_cmvs_e4(struct uea_softc *sc)  	/* Enter in R-ACT-REQ */  	ret = uea_write_cmv_e4(sc, 1, E4_SA_CNTL, 0, 0, 2);  	uea_vdbg(INS_TO_USBDEV(sc), "Entering in R-ACT-REQ state\n"); -	uea_info(INS_TO_USBDEV(sc), "modem started, waiting synchronization...\n"); +	uea_info(INS_TO_USBDEV(sc), "modem started, waiting " +						"synchronization...\n");  out:  	release_firmware(cmvs_fw);  	return ret; @@ -1812,7 +1834,7 @@ static int uea_start_reset(struct uea_softc *sc)  	uea_request(sc, UEA_SET_MODE, UEA_LOOPBACK_ON, 0, NULL);  	uea_request(sc, UEA_SET_MODE, UEA_BOOT_IDMA, 0, NULL); - 	/* enter reset mode */ +	/* enter reset mode */  	uea_request(sc, UEA_SET_MODE, UEA_START_RESET, 0, NULL);  	/* original driver use 200ms, but windows driver use 100ms */ @@ -1824,7 +1846,7 @@ static int uea_start_reset(struct uea_softc *sc)  	uea_request(sc, UEA_SET_MODE, UEA_END_RESET, 0, NULL);  	if (UEA_CHIP_VERSION(sc) != EAGLE_IV) { - 		/* clear tx and rx mailboxes */ +		/* clear tx and rx mailboxes */  		uea_request(sc, UEA_SET_2183_DATA, UEA_MPTX_MAILBOX, 2, &zero);  		uea_request(sc, UEA_SET_2183_DATA, UEA_MPRX_MAILBOX, 2, &zero);  		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)  		return ret;  	if (UEA_CHIP_VERSION(sc) == EAGLE_IV) -		sc->cmv_dsc.e4.function = E4_MAKEFUNCTION(E4_ADSLDIRECTIVE, E4_MODEMREADY, 1); +		sc->cmv_dsc.e4.function = E4_MAKEFUNCTION(E4_ADSLDIRECTIVE, +							E4_MODEMREADY, 1);  	else -		sc->cmv_dsc.e1.function = E1_MAKEFUNCTION(E1_ADSLDIRECTIVE, E1_MODEMREADY); +		sc->cmv_dsc.e1.function = E1_MAKEFUNCTION(E1_ADSLDIRECTIVE, +							E1_MODEMREADY);  	/* demask interrupt */  	sc->booting = 0; @@ -1937,7 +1961,8 @@ static int load_XILINX_firmware(struct uea_softc *sc)  	value = 0;  	ret = uea_send_modem_cmd(sc->usb_dev, 0xe, 1, &value);  	if (ret < 0) -		uea_err(sc->usb_dev, "elsa de-assert failed with error %d\n", ret); +		uea_err(sc->usb_dev, "elsa de-assert failed with error" +								" %d\n", ret);  err1:  	release_firmware(fw_entry); @@ -1966,13 +1991,15 @@ static void uea_dispatch_cmv_e1(struct uea_softc *sc, struct intr_pkt *intr)  		if (UEA_CHIP_VERSION(sc) == ADI930  				&& cmv->bFunction ==  E1_MAKEFUNCTION(2, 2)) {  			cmv->wIndex = cpu_to_le16(dsc->idx); -			put_unaligned_le32(dsc->address, &cmv->dwSymbolicAddress); +			put_unaligned_le32(dsc->address, +						&cmv->dwSymbolicAddress);  			cmv->wOffsetAddress = cpu_to_le16(dsc->offset);  		} else  			goto bad2;  	} -	if (cmv->bFunction == E1_MAKEFUNCTION(E1_ADSLDIRECTIVE, E1_MODEMREADY)) { +	if (cmv->bFunction == E1_MAKEFUNCTION(E1_ADSLDIRECTIVE, +							E1_MODEMREADY)) {  		wake_up_cmv_ack(sc);  		uea_leaves(INS_TO_USBDEV(sc));  		return; @@ -2021,7 +2048,8 @@ static void uea_dispatch_cmv_e4(struct uea_softc *sc, struct intr_pkt *intr)  	if (be16_to_cpu(cmv->wFunction) != dsc->function)  		goto bad2; -	if (be16_to_cpu(cmv->wFunction) == E4_MAKEFUNCTION(E4_ADSLDIRECTIVE, E4_MODEMREADY, 1)) { +	if (be16_to_cpu(cmv->wFunction) == E4_MAKEFUNCTION(E4_ADSLDIRECTIVE, +						E4_MODEMREADY, 1)) {  		wake_up_cmv_ack(sc);  		uea_leaves(INS_TO_USBDEV(sc));  		return; @@ -2048,14 +2076,16 @@ bad2:  	return;  } -static void uea_schedule_load_page_e1(struct uea_softc *sc, struct intr_pkt *intr) +static void uea_schedule_load_page_e1(struct uea_softc *sc, +						struct intr_pkt *intr)  {  	sc->pageno = intr->e1_bSwapPageNo;  	sc->ovl = intr->e1_bOvl >> 4 | intr->e1_bOvl << 4;  	queue_work(sc->work_q, &sc->task);  } -static void uea_schedule_load_page_e4(struct uea_softc *sc, struct intr_pkt *intr) +static void uea_schedule_load_page_e4(struct uea_softc *sc, +						struct intr_pkt *intr)  {  	sc->pageno = intr->e4_bSwapPageNo;  	queue_work(sc->work_q, &sc->task); @@ -2263,8 +2293,8 @@ out:  static DEVICE_ATTR(stat_status, S_IWUGO | S_IRUGO, read_status, reboot); -static ssize_t read_human_status(struct device *dev, struct device_attribute *attr, -		char *buf) +static ssize_t read_human_status(struct device *dev, +			struct device_attribute *attr, char *buf)  {  	int ret = -ENODEV;  	int modem_state; @@ -2289,7 +2319,7 @@ static ssize_t read_human_status(struct device *dev, struct device_attribute *at  		case 0xa:  			modem_state = 1;  			break; -		case 0x7: 	/* operational */ +		case 0x7:	/* operational */  			modem_state = 2;  			break;  		case 0x2:	/* fail ... */ @@ -2324,7 +2354,8 @@ out:  	return ret;  } -static DEVICE_ATTR(stat_human_status, S_IWUGO | S_IRUGO, read_human_status, NULL); +static DEVICE_ATTR(stat_human_status, S_IWUGO | S_IRUGO, +				read_human_status, NULL);  static ssize_t read_delin(struct device *dev, struct device_attribute *attr,  		char *buf) @@ -2358,25 +2389,25 @@ out:  static DEVICE_ATTR(stat_delin, S_IWUGO | S_IRUGO, read_delin, NULL); -#define UEA_ATTR(name, reset) 					\ +#define UEA_ATTR(name, reset)					\  								\ -static ssize_t read_##name(struct device *dev, 			\ +static ssize_t read_##name(struct device *dev,			\  		struct device_attribute *attr, char *buf)	\ -{ 								\ -	int ret = -ENODEV; 					\ -	struct uea_softc *sc; 					\ - 								\ -	mutex_lock(&uea_mutex); 				\ +{								\ +	int ret = -ENODEV;					\ +	struct uea_softc *sc;					\ +								\ +	mutex_lock(&uea_mutex);					\  	sc = dev_to_uea(dev);					\ -	if (!sc) 						\ -		goto out; 					\ +	if (!sc)						\ +		goto out;					\  	ret = snprintf(buf, 10, "%08x\n", sc->stats.phy.name);	\  	if (reset)						\  		sc->stats.phy.name = 0;				\ -out: 								\ -	mutex_unlock(&uea_mutex); 				\ -	return ret; 						\ -} 								\ +out:								\ +	mutex_unlock(&uea_mutex);				\ +	return ret;						\ +}								\  								\  static DEVICE_ATTR(stat_##name, S_IRUGO, read_##name, NULL) @@ -2527,12 +2558,14 @@ static int uea_bind(struct usbatm_data *usbatm, struct usb_interface *intf,  	else if (sc->driver_info & AUTO_ANNEX_B)  		sc->annex = ANNEXB;  	else -		sc->annex = (le16_to_cpu(sc->usb_dev->descriptor.bcdDevice) & 0x80)?ANNEXB:ANNEXA; +		sc->annex = (le16_to_cpu +		(sc->usb_dev->descriptor.bcdDevice) & 0x80) ? ANNEXB : ANNEXA;  	alt = altsetting[sc->modem_index];  	/* ADI930 don't support iso */  	if (UEA_CHIP_VERSION(id) != ADI930 && alt > 0) { -		if (alt <= 8 && usb_set_interface(usb, UEA_DS_IFACE_NO, alt) == 0) { +		if (alt <= 8 && +			usb_set_interface(usb, UEA_DS_IFACE_NO, alt) == 0) {  			uea_dbg(usb, "set alternate %u for 2 interface\n", alt);  			uea_info(usb, "using iso mode\n");  			usbatm->flags |= UDSL_USE_ISOC | UDSL_IGNORE_EILSEQ; @@ -2621,40 +2654,74 @@ static void uea_disconnect(struct usb_interface *intf)   * List of supported VID/PID   */  static const struct usb_device_id uea_ids[] = { -	{USB_DEVICE(ANALOG_VID,	ADI930_PID_PREFIRM),	.driver_info = ADI930 | PREFIRM}, -	{USB_DEVICE(ANALOG_VID,	ADI930_PID_PSTFIRM),	.driver_info = ADI930 | PSTFIRM}, -	{USB_DEVICE(ANALOG_VID,	EAGLE_I_PID_PREFIRM),	.driver_info = EAGLE_I | PREFIRM}, -	{USB_DEVICE(ANALOG_VID,	EAGLE_I_PID_PSTFIRM),	.driver_info = EAGLE_I | PSTFIRM}, -	{USB_DEVICE(ANALOG_VID,	EAGLE_II_PID_PREFIRM),	.driver_info = EAGLE_II | PREFIRM}, -	{USB_DEVICE(ANALOG_VID,	EAGLE_II_PID_PSTFIRM),	.driver_info = EAGLE_II | PSTFIRM}, -	{USB_DEVICE(ANALOG_VID,	EAGLE_IIC_PID_PREFIRM),	.driver_info = EAGLE_II | PREFIRM}, -	{USB_DEVICE(ANALOG_VID,	EAGLE_IIC_PID_PSTFIRM),	.driver_info = EAGLE_II | PSTFIRM}, -	{USB_DEVICE(ANALOG_VID,	EAGLE_III_PID_PREFIRM),	.driver_info = EAGLE_III | PREFIRM}, -	{USB_DEVICE(ANALOG_VID,	EAGLE_III_PID_PSTFIRM),	.driver_info = EAGLE_III | PSTFIRM}, -	{USB_DEVICE(ANALOG_VID,	EAGLE_IV_PID_PREFIRM),	.driver_info = EAGLE_IV | PREFIRM}, -	{USB_DEVICE(ANALOG_VID,	EAGLE_IV_PID_PSTFIRM),	.driver_info = EAGLE_IV | PSTFIRM}, -	{USB_DEVICE(DEVOLO_VID,	DEVOLO_EAGLE_I_A_PID_PREFIRM),	.driver_info = EAGLE_I | PREFIRM}, -	{USB_DEVICE(DEVOLO_VID,	DEVOLO_EAGLE_I_A_PID_PSTFIRM),	.driver_info = EAGLE_I | PSTFIRM | AUTO_ANNEX_A}, -	{USB_DEVICE(DEVOLO_VID,	DEVOLO_EAGLE_I_B_PID_PREFIRM),	.driver_info = EAGLE_I | PREFIRM}, -	{USB_DEVICE(DEVOLO_VID,	DEVOLO_EAGLE_I_B_PID_PSTFIRM),	.driver_info = EAGLE_I | PSTFIRM | AUTO_ANNEX_B}, -	{USB_DEVICE(DEVOLO_VID,	DEVOLO_EAGLE_II_A_PID_PREFIRM),	.driver_info = EAGLE_II | PREFIRM}, -	{USB_DEVICE(DEVOLO_VID,	DEVOLO_EAGLE_II_A_PID_PSTFIRM),	.driver_info = EAGLE_II | PSTFIRM | AUTO_ANNEX_A}, -	{USB_DEVICE(DEVOLO_VID,	DEVOLO_EAGLE_II_B_PID_PREFIRM),	.driver_info = EAGLE_II | PREFIRM}, -	{USB_DEVICE(DEVOLO_VID,	DEVOLO_EAGLE_II_B_PID_PSTFIRM),	.driver_info = EAGLE_II | PSTFIRM | AUTO_ANNEX_B}, -	{USB_DEVICE(ELSA_VID,	ELSA_PID_PREFIRM),	.driver_info = ADI930 | PREFIRM}, -	{USB_DEVICE(ELSA_VID,	ELSA_PID_PSTFIRM),	.driver_info = ADI930 | PSTFIRM}, -	{USB_DEVICE(ELSA_VID,	ELSA_PID_A_PREFIRM),	.driver_info = ADI930 | PREFIRM}, -	{USB_DEVICE(ELSA_VID,	ELSA_PID_A_PSTFIRM),	.driver_info = ADI930 | PSTFIRM | AUTO_ANNEX_A}, -	{USB_DEVICE(ELSA_VID,	ELSA_PID_B_PREFIRM),	.driver_info = ADI930 | PREFIRM}, -	{USB_DEVICE(ELSA_VID,	ELSA_PID_B_PSTFIRM),	.driver_info = ADI930 | PSTFIRM | AUTO_ANNEX_B}, -	{USB_DEVICE(USR_VID,	MILLER_A_PID_PREFIRM),	.driver_info = EAGLE_I | PREFIRM}, -	{USB_DEVICE(USR_VID,	MILLER_A_PID_PSTFIRM),	.driver_info = EAGLE_I | PSTFIRM  | AUTO_ANNEX_A}, -	{USB_DEVICE(USR_VID,	MILLER_B_PID_PREFIRM),	.driver_info = EAGLE_I | PREFIRM}, -	{USB_DEVICE(USR_VID,	MILLER_B_PID_PSTFIRM),	.driver_info = EAGLE_I | PSTFIRM  | AUTO_ANNEX_B}, -	{USB_DEVICE(USR_VID,	HEINEKEN_A_PID_PREFIRM),.driver_info = EAGLE_I | PREFIRM}, -	{USB_DEVICE(USR_VID,	HEINEKEN_A_PID_PSTFIRM),.driver_info = EAGLE_I | PSTFIRM | AUTO_ANNEX_A}, -	{USB_DEVICE(USR_VID,	HEINEKEN_B_PID_PREFIRM),.driver_info = EAGLE_I | PREFIRM}, -	{USB_DEVICE(USR_VID,	HEINEKEN_B_PID_PSTFIRM),.driver_info = EAGLE_I | PSTFIRM | AUTO_ANNEX_B}, +	{USB_DEVICE(ANALOG_VID,	ADI930_PID_PREFIRM), +		.driver_info = ADI930 | PREFIRM}, +	{USB_DEVICE(ANALOG_VID,	ADI930_PID_PSTFIRM), +		.driver_info = ADI930 | PSTFIRM}, +	{USB_DEVICE(ANALOG_VID,	EAGLE_I_PID_PREFIRM), +		.driver_info = EAGLE_I | PREFIRM}, +	{USB_DEVICE(ANALOG_VID,	EAGLE_I_PID_PSTFIRM), +		.driver_info = EAGLE_I | PSTFIRM}, +	{USB_DEVICE(ANALOG_VID,	EAGLE_II_PID_PREFIRM), +		.driver_info = EAGLE_II | PREFIRM}, +	{USB_DEVICE(ANALOG_VID,	EAGLE_II_PID_PSTFIRM), +		.driver_info = EAGLE_II | PSTFIRM}, +	{USB_DEVICE(ANALOG_VID,	EAGLE_IIC_PID_PREFIRM), +		.driver_info = EAGLE_II | PREFIRM}, +	{USB_DEVICE(ANALOG_VID,	EAGLE_IIC_PID_PSTFIRM), +		.driver_info = EAGLE_II | PSTFIRM}, +	{USB_DEVICE(ANALOG_VID,	EAGLE_III_PID_PREFIRM), +		.driver_info = EAGLE_III | PREFIRM}, +	{USB_DEVICE(ANALOG_VID,	EAGLE_III_PID_PSTFIRM), +		.driver_info = EAGLE_III | PSTFIRM}, +	{USB_DEVICE(ANALOG_VID,	EAGLE_IV_PID_PREFIRM), +		.driver_info = EAGLE_IV | PREFIRM}, +	{USB_DEVICE(ANALOG_VID,	EAGLE_IV_PID_PSTFIRM), +		.driver_info = EAGLE_IV | PSTFIRM}, +	{USB_DEVICE(DEVOLO_VID,	DEVOLO_EAGLE_I_A_PID_PREFIRM), +		.driver_info = EAGLE_I | PREFIRM}, +	{USB_DEVICE(DEVOLO_VID,	DEVOLO_EAGLE_I_A_PID_PSTFIRM), +		.driver_info = EAGLE_I | PSTFIRM | AUTO_ANNEX_A}, +	{USB_DEVICE(DEVOLO_VID,	DEVOLO_EAGLE_I_B_PID_PREFIRM), +		.driver_info = EAGLE_I | PREFIRM}, +	{USB_DEVICE(DEVOLO_VID,	DEVOLO_EAGLE_I_B_PID_PSTFIRM), +		.driver_info = EAGLE_I | PSTFIRM | AUTO_ANNEX_B}, +	{USB_DEVICE(DEVOLO_VID,	DEVOLO_EAGLE_II_A_PID_PREFIRM), +		.driver_info = EAGLE_II | PREFIRM}, +	{USB_DEVICE(DEVOLO_VID,	DEVOLO_EAGLE_II_A_PID_PSTFIRM), +		.driver_info = EAGLE_II | PSTFIRM | AUTO_ANNEX_A}, +	{USB_DEVICE(DEVOLO_VID,	DEVOLO_EAGLE_II_B_PID_PREFIRM), +		.driver_info = EAGLE_II | PREFIRM}, +	{USB_DEVICE(DEVOLO_VID,	DEVOLO_EAGLE_II_B_PID_PSTFIRM), +		.driver_info = EAGLE_II | PSTFIRM | AUTO_ANNEX_B}, +	{USB_DEVICE(ELSA_VID,	ELSA_PID_PREFIRM), +		.driver_info = ADI930 | PREFIRM}, +	{USB_DEVICE(ELSA_VID,	ELSA_PID_PSTFIRM), +		.driver_info = ADI930 | PSTFIRM}, +	{USB_DEVICE(ELSA_VID,	ELSA_PID_A_PREFIRM), +		.driver_info = ADI930 | PREFIRM}, +	{USB_DEVICE(ELSA_VID,	ELSA_PID_A_PSTFIRM), +		.driver_info = ADI930 | PSTFIRM | AUTO_ANNEX_A}, +	{USB_DEVICE(ELSA_VID,	ELSA_PID_B_PREFIRM), +		.driver_info = ADI930 | PREFIRM}, +	{USB_DEVICE(ELSA_VID,	ELSA_PID_B_PSTFIRM), +		.driver_info = ADI930 | PSTFIRM | AUTO_ANNEX_B}, +	{USB_DEVICE(USR_VID,	MILLER_A_PID_PREFIRM), +		.driver_info = EAGLE_I | PREFIRM}, +	{USB_DEVICE(USR_VID,	MILLER_A_PID_PSTFIRM), +		.driver_info = EAGLE_I | PSTFIRM  | AUTO_ANNEX_A}, +	{USB_DEVICE(USR_VID,	MILLER_B_PID_PREFIRM), +		.driver_info = EAGLE_I | PREFIRM}, +	{USB_DEVICE(USR_VID,	MILLER_B_PID_PSTFIRM), +		.driver_info = EAGLE_I | PSTFIRM  | AUTO_ANNEX_B}, +	{USB_DEVICE(USR_VID,	HEINEKEN_A_PID_PREFIRM), +		.driver_info = EAGLE_I | PREFIRM}, +	{USB_DEVICE(USR_VID,	HEINEKEN_A_PID_PSTFIRM), +		.driver_info = EAGLE_I | PSTFIRM | AUTO_ANNEX_A}, +	{USB_DEVICE(USR_VID,	HEINEKEN_B_PID_PREFIRM), +		.driver_info = EAGLE_I | PREFIRM}, +	{USB_DEVICE(USR_VID,	HEINEKEN_B_PID_PSTFIRM), +		.driver_info = EAGLE_I | PSTFIRM | AUTO_ANNEX_B},  	{}  };  |