aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/atm/ueagle-atm.c
diff options
context:
space:
mode:
authorHarvey Harrison <harvey.harrison@gmail.com>2008-04-29 04:03:40 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-04-29 11:06:28 -0400
commita5abdeafedf722b0f3f357f4a23089a686b1b80d (patch)
tree06dc1712a552ddd190c4e1a323e9e069a4d5e059 /drivers/usb/atm/ueagle-atm.c
parent6b1e6f637469647f435f8f8ab00fbafa3c129712 (diff)
usb: use get/put_unaligned_* helpers
Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com> Acked-by: Greg Kroah-Hartman <gregkh@suse.de> Cc: Alan Stern <stern@rowland.harvard.edu> Cc: David Brownell <dbrownell@users.sourceforge.net> Cc: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/usb/atm/ueagle-atm.c')
-rw-r--r--drivers/usb/atm/ueagle-atm.c48
1 files changed, 23 insertions, 25 deletions
diff --git a/drivers/usb/atm/ueagle-atm.c b/drivers/usb/atm/ueagle-atm.c
index 4220f22b6660..5f71ff3aee35 100644
--- a/drivers/usb/atm/ueagle-atm.c
+++ b/drivers/usb/atm/ueagle-atm.c
@@ -305,8 +305,6 @@ enum {
305 */ 305 */
306 306
307#define FW_GET_BYTE(p) *((__u8 *) (p)) 307#define FW_GET_BYTE(p) *((__u8 *) (p))
308#define FW_GET_WORD(p) le16_to_cpu(get_unaligned((__le16 *) (p)))
309#define FW_GET_LONG(p) le32_to_cpu(get_unaligned((__le32 *) (p)))
310 308
311#define FW_DIR "ueagle-atm/" 309#define FW_DIR "ueagle-atm/"
312#define NB_MODEM 4 310#define NB_MODEM 4
@@ -621,7 +619,7 @@ static void uea_upload_pre_firmware(const struct firmware *fw_entry, void *conte
621 if (size < 4) 619 if (size < 4)
622 goto err_fw_corrupted; 620 goto err_fw_corrupted;
623 621
624 crc = FW_GET_LONG(pfw); 622 crc = get_unaligned_le32(pfw);
625 pfw += 4; 623 pfw += 4;
626 size -= 4; 624 size -= 4;
627 if (crc32_be(0, pfw, size) != crc) 625 if (crc32_be(0, pfw, size) != crc)
@@ -640,7 +638,7 @@ static void uea_upload_pre_firmware(const struct firmware *fw_entry, void *conte
640 638
641 while (size > 3) { 639 while (size > 3) {
642 u8 len = FW_GET_BYTE(pfw); 640 u8 len = FW_GET_BYTE(pfw);
643 u16 add = FW_GET_WORD(pfw + 1); 641 u16 add = get_unaligned_le16(pfw + 1);
644 642
645 size -= len + 3; 643 size -= len + 3;
646 if (size < 0) 644 if (size < 0)
@@ -738,7 +736,7 @@ static int check_dsp_e1(u8 *dsp, unsigned int len)
738 736
739 for (i = 0; i < pagecount; i++) { 737 for (i = 0; i < pagecount; i++) {
740 738
741 pageoffset = FW_GET_LONG(dsp + p); 739 pageoffset = get_unaligned_le32(dsp + p);
742 p += 4; 740 p += 4;
743 741
744 if (pageoffset == 0) 742 if (pageoffset == 0)
@@ -759,7 +757,7 @@ static int check_dsp_e1(u8 *dsp, unsigned int len)
759 return 1; 757 return 1;
760 758
761 pp += 2; /* skip blockaddr */ 759 pp += 2; /* skip blockaddr */
762 blocksize = FW_GET_WORD(dsp + pp); 760 blocksize = get_unaligned_le16(dsp + pp);
763 pp += 2; 761 pp += 2;
764 762
765 /* enough space for block data? */ 763 /* enough space for block data? */
@@ -928,7 +926,7 @@ static void uea_load_page_e1(struct work_struct *work)
928 goto bad1; 926 goto bad1;
929 927
930 p += 4 * pageno; 928 p += 4 * pageno;
931 pageoffset = FW_GET_LONG(p); 929 pageoffset = get_unaligned_le32(p);
932 930
933 if (pageoffset == 0) 931 if (pageoffset == 0)
934 goto bad1; 932 goto bad1;
@@ -945,10 +943,10 @@ static void uea_load_page_e1(struct work_struct *work)
945 bi.wOvlOffset = cpu_to_le16(ovl | 0x8000); 943 bi.wOvlOffset = cpu_to_le16(ovl | 0x8000);
946 944
947 for (i = 0; i < blockcount; i++) { 945 for (i = 0; i < blockcount; i++) {
948 blockaddr = FW_GET_WORD(p); 946 blockaddr = get_unaligned_le16(p);
949 p += 2; 947 p += 2;
950 948
951 blocksize = FW_GET_WORD(p); 949 blocksize = get_unaligned_le16(p);
952 p += 2; 950 p += 2;
953 951
954 bi.wSize = cpu_to_le16(blocksize); 952 bi.wSize = cpu_to_le16(blocksize);
@@ -1152,9 +1150,9 @@ static int uea_cmv_e1(struct uea_softc *sc,
1152 cmv.bDirection = E1_HOSTTOMODEM; 1150 cmv.bDirection = E1_HOSTTOMODEM;
1153 cmv.bFunction = function; 1151 cmv.bFunction = function;
1154 cmv.wIndex = cpu_to_le16(sc->cmv_dsc.e1.idx); 1152 cmv.wIndex = cpu_to_le16(sc->cmv_dsc.e1.idx);
1155 put_unaligned(cpu_to_le32(address), &cmv.dwSymbolicAddress); 1153 put_unaligned_le32(address, &cmv.dwSymbolicAddress);
1156 cmv.wOffsetAddress = cpu_to_le16(offset); 1154 cmv.wOffsetAddress = cpu_to_le16(offset);
1157 put_unaligned(cpu_to_le32(data >> 16 | data << 16), &cmv.dwData); 1155 put_unaligned_le32(data >> 16 | data << 16, &cmv.dwData);
1158 1156
1159 ret = uea_request(sc, UEA_E1_SET_BLOCK, UEA_MPTX_START, sizeof(cmv), &cmv); 1157 ret = uea_request(sc, UEA_E1_SET_BLOCK, UEA_MPTX_START, sizeof(cmv), &cmv);
1160 if (ret < 0) 1158 if (ret < 0)
@@ -1646,7 +1644,7 @@ static int request_cmvs(struct uea_softc *sc,
1646 if (size < 5) 1644 if (size < 5)
1647 goto err_fw_corrupted; 1645 goto err_fw_corrupted;
1648 1646
1649 crc = FW_GET_LONG(data); 1647 crc = get_unaligned_le32(data);
1650 data += 4; 1648 data += 4;
1651 size -= 4; 1649 size -= 4;
1652 if (crc32_be(0, data, size) != crc) 1650 if (crc32_be(0, data, size) != crc)
@@ -1696,9 +1694,9 @@ static int uea_send_cmvs_e1(struct uea_softc *sc)
1696 "please update your firmware\n"); 1694 "please update your firmware\n");
1697 1695
1698 for (i = 0; i < len; i++) { 1696 for (i = 0; i < len; i++) {
1699 ret = uea_write_cmv_e1(sc, FW_GET_LONG(&cmvs_v1[i].address), 1697 ret = uea_write_cmv_e1(sc, get_unaligned_le32(&cmvs_v1[i].address),
1700 FW_GET_WORD(&cmvs_v1[i].offset), 1698 get_unaligned_le16(&cmvs_v1[i].offset),
1701 FW_GET_LONG(&cmvs_v1[i].data)); 1699 get_unaligned_le32(&cmvs_v1[i].data));
1702 if (ret < 0) 1700 if (ret < 0)
1703 goto out; 1701 goto out;
1704 } 1702 }
@@ -1706,9 +1704,9 @@ static int uea_send_cmvs_e1(struct uea_softc *sc)
1706 struct uea_cmvs_v2 *cmvs_v2 = cmvs_ptr; 1704 struct uea_cmvs_v2 *cmvs_v2 = cmvs_ptr;
1707 1705
1708 for (i = 0; i < len; i++) { 1706 for (i = 0; i < len; i++) {
1709 ret = uea_write_cmv_e1(sc, FW_GET_LONG(&cmvs_v2[i].address), 1707 ret = uea_write_cmv_e1(sc, get_unaligned_le32(&cmvs_v2[i].address),
1710 (u16) FW_GET_LONG(&cmvs_v2[i].offset), 1708 (u16) get_unaligned_le32(&cmvs_v2[i].offset),
1711 FW_GET_LONG(&cmvs_v2[i].data)); 1709 get_unaligned_le32(&cmvs_v2[i].data));
1712 if (ret < 0) 1710 if (ret < 0)
1713 goto out; 1711 goto out;
1714 } 1712 }
@@ -1759,10 +1757,10 @@ static int uea_send_cmvs_e4(struct uea_softc *sc)
1759 1757
1760 for (i = 0; i < len; i++) { 1758 for (i = 0; i < len; i++) {
1761 ret = uea_write_cmv_e4(sc, 1, 1759 ret = uea_write_cmv_e4(sc, 1,
1762 FW_GET_LONG(&cmvs_v2[i].group), 1760 get_unaligned_le32(&cmvs_v2[i].group),
1763 FW_GET_LONG(&cmvs_v2[i].address), 1761 get_unaligned_le32(&cmvs_v2[i].address),
1764 FW_GET_LONG(&cmvs_v2[i].offset), 1762 get_unaligned_le32(&cmvs_v2[i].offset),
1765 FW_GET_LONG(&cmvs_v2[i].data)); 1763 get_unaligned_le32(&cmvs_v2[i].data));
1766 if (ret < 0) 1764 if (ret < 0)
1767 goto out; 1765 goto out;
1768 } 1766 }
@@ -1964,7 +1962,7 @@ static void uea_dispatch_cmv_e1(struct uea_softc *sc, struct intr_pkt *intr)
1964 if (UEA_CHIP_VERSION(sc) == ADI930 1962 if (UEA_CHIP_VERSION(sc) == ADI930
1965 && cmv->bFunction == E1_MAKEFUNCTION(2, 2)) { 1963 && cmv->bFunction == E1_MAKEFUNCTION(2, 2)) {
1966 cmv->wIndex = cpu_to_le16(dsc->idx); 1964 cmv->wIndex = cpu_to_le16(dsc->idx);
1967 put_unaligned(cpu_to_le32(dsc->address), &cmv->dwSymbolicAddress); 1965 put_unaligned_le32(dsc->address, &cmv->dwSymbolicAddress);
1968 cmv->wOffsetAddress = cpu_to_le16(dsc->offset); 1966 cmv->wOffsetAddress = cpu_to_le16(dsc->offset);
1969 } else 1967 } else
1970 goto bad2; 1968 goto bad2;
@@ -1978,11 +1976,11 @@ static void uea_dispatch_cmv_e1(struct uea_softc *sc, struct intr_pkt *intr)
1978 1976
1979 /* in case of MEMACCESS */ 1977 /* in case of MEMACCESS */
1980 if (le16_to_cpu(cmv->wIndex) != dsc->idx || 1978 if (le16_to_cpu(cmv->wIndex) != dsc->idx ||
1981 le32_to_cpu(get_unaligned(&cmv->dwSymbolicAddress)) != dsc->address || 1979 get_unaligned_le32(&cmv->dwSymbolicAddress) != dsc->address ||
1982 le16_to_cpu(cmv->wOffsetAddress) != dsc->offset) 1980 le16_to_cpu(cmv->wOffsetAddress) != dsc->offset)
1983 goto bad2; 1981 goto bad2;
1984 1982
1985 sc->data = le32_to_cpu(get_unaligned(&cmv->dwData)); 1983 sc->data = get_unaligned_le32(&cmv->dwData);
1986 sc->data = sc->data << 16 | sc->data >> 16; 1984 sc->data = sc->data << 16 | sc->data >> 16;
1987 1985
1988 wake_up_cmv_ack(sc); 1986 wake_up_cmv_ack(sc);