]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/usb/atm/cxacru.c
Merge branch 'generic-ipi' into generic-ipi-for-linus
[linux-2.6-omap-h63xx.git] / drivers / usb / atm / cxacru.c
index a51eeedc18d4860f83814948e0c5150c6d9aab26..90583d6a59492b1922c4688d6379afaadea608f9 100644 (file)
@@ -38,6 +38,7 @@
 #include <linux/device.h>
 #include <linux/firmware.h>
 #include <linux/mutex.h>
+#include <asm/unaligned.h>
 
 #include "usbatm.h"
 
@@ -444,7 +445,7 @@ CXACRU_ALL_FILES(INIT);
 /* the following three functions are stolen from drivers/usb/core/message.c */
 static void cxacru_blocking_completion(struct urb *urb)
 {
-       complete((struct completion *)urb->context);
+       complete(urb->context);
 }
 
 static void cxacru_timeout_kill(unsigned long data)
@@ -573,7 +574,7 @@ static int cxacru_cm_get_array(struct cxacru_data *instance, enum cxacru_cm_requ
                               u32 *data, int size)
 {
        int ret, len;
-       u32 *buf;
+       __le32 *buf;
        int offb, offd;
        const int stride = CMD_PACKET_SIZE / (4 * 2) - 1;
        int buflen =  ((size - 1) / stride + 1 + size * 2) * 4;
@@ -819,7 +820,7 @@ reschedule:
 }
 
 static int cxacru_fw(struct usb_device *usb_dev, enum cxacru_fw_request fw,
-                    u8 code1, u8 code2, u32 addr, u8 *data, int size)
+                    u8 code1, u8 code2, u32 addr, const u8 *data, int size)
 {
        int ret;
        u8 *buf;
@@ -837,7 +838,7 @@ static int cxacru_fw(struct usb_device *usb_dev, enum cxacru_fw_request fw,
                buf[offb++] = l;
                buf[offb++] = code1;
                buf[offb++] = code2;
-               *((u32 *) (buf + offb)) = cpu_to_le32(addr);
+               put_unaligned(cpu_to_le32(addr), (__le32 *)(buf + offb));
                offb += 4;
                addr += l;
                if(l)
@@ -874,8 +875,9 @@ static void cxacru_upload_firmware(struct cxacru_data *instance,
        int off;
        struct usbatm_data *usbatm = instance->usbatm;
        struct usb_device *usb_dev = usbatm->usb_dev;
-       u16 signature[] = { usb_dev->descriptor.idVendor, usb_dev->descriptor.idProduct };
-       u32 val;
+       __le16 signature[] = { usb_dev->descriptor.idVendor,
+                              usb_dev->descriptor.idProduct };
+       __le32 val;
 
        dbg("cxacru_upload_firmware");
 
@@ -955,7 +957,7 @@ static void cxacru_upload_firmware(struct cxacru_data *instance,
        /* Load config data (le32), doing one packet at a time */
        if (cf)
                for (off = 0; off < cf->size / 4; ) {
-                       u32 buf[CMD_PACKET_SIZE / 4 - 1];
+                       __le32 buf[CMD_PACKET_SIZE / 4 - 1];
                        int i, len = min_t(int, cf->size / 4 - off, CMD_PACKET_SIZE / 4 / 2 - 1);
                        buf[0] = cpu_to_le32(len);
                        for (i = 0; i < len; i++, off++) {