]> err.no Git - linux-2.6/blobdiff - drivers/usb/misc/emi26.c
Merge git://git.infradead.org/battery-2.6
[linux-2.6] / drivers / usb / misc / emi26.c
index 1fd9cb85f4ca3aa9014e542d0a517d508dcad1e6..4b9dc81b845353ca7695db0ff4057250d83903bf 100644 (file)
@@ -1,7 +1,7 @@
 /* 
  * Emagic EMI 2|6 usb audio interface firmware loader.
  * Copyright (C) 2002
- *     Tapio Laxström (tapio.laxstrom@iptime.fi)
+ *     Tapio Laxström (tapio.laxstrom@iptime.fi)
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License, as published by
@@ -53,13 +53,12 @@ static void __exit emi26_exit (void);
 static int emi26_writememory (struct usb_device *dev, int address, unsigned char *data, int length, __u8 request)
 {
        int result;
-       unsigned char *buffer =  kmalloc (length, GFP_KERNEL);
+       unsigned char *buffer =  kmemdup(data, length, GFP_KERNEL);
 
        if (!buffer) {
                err("emi26: kmalloc(%d) failed.", length);
                return -ENOMEM;
        }
-       memcpy (buffer, data, length);
        /* Note: usb_control_msg returns negative value on error or length of the
         *               data that was written! */
        result = usb_control_msg (dev, usb_sndctrlpipe(dev, 0), request, 0x40, address, 0, buffer, length, 300);
@@ -71,8 +70,8 @@ static int emi26_writememory (struct usb_device *dev, int address, unsigned char
 static int emi26_set_reset (struct usb_device *dev, unsigned char reset_bit)
 {
        int response;
-       info("%s - %d", __FUNCTION__, reset_bit);
-       /* printk(KERN_DEBUG "%s - %d", __FUNCTION__, reset_bit); */
+       info("%s - %d", __func__, reset_bit);
+       /* printk(KERN_DEBUG "%s - %d", __func__, reset_bit); */
        response = emi26_writememory (dev, CPUCS_REG, &reset_bit, 1, 0xa0);
        if (response < 0) {
                err("emi26: set_reset (%d) failed", reset_bit);
@@ -92,7 +91,7 @@ static int emi26_load_firmware (struct usb_device *dev)
 
        buf = kmalloc(FW_LOAD_SIZE, GFP_KERNEL);
        if (!buf) {
-               err( "%s - error loading firmware: error = %d", __FUNCTION__, -ENOMEM);
+               err( "%s - error loading firmware: error = %d", __func__, -ENOMEM);
                err = -ENOMEM;
                goto wraperr;
        }
@@ -100,7 +99,7 @@ static int emi26_load_firmware (struct usb_device *dev)
        /* Assert reset (stop the CPU in the EMI) */
        err = emi26_set_reset(dev,1);
        if (err < 0) {
-               err( "%s - error loading firmware: error = %d", __FUNCTION__, err);
+               err( "%s - error loading firmware: error = %d", __func__, err);
                goto wraperr;
        }
 
@@ -108,13 +107,17 @@ static int emi26_load_firmware (struct usb_device *dev)
        for (i=0; g_Loader[i].type == 0; i++) {
                err = emi26_writememory(dev, g_Loader[i].address, g_Loader[i].data, g_Loader[i].length, ANCHOR_LOAD_INTERNAL);
                if (err < 0) {
-                       err("%s - error loading firmware: error = %d", __FUNCTION__, err);
+                       err("%s - error loading firmware: error = %d", __func__, err);
                        goto wraperr;
                }
        }
 
        /* De-assert reset (let the CPU run) */
        err = emi26_set_reset(dev,0);
+       if (err < 0) {
+               err("%s - error loading firmware: error = %d", __func__, err);
+               goto wraperr;
+       }
        msleep(250);    /* let device settle */
 
        /* 2. We upload the FPGA firmware into the EMI
@@ -132,7 +135,7 @@ static int emi26_load_firmware (struct usb_device *dev)
                }
                err = emi26_writememory(dev, addr, buf, i, ANCHOR_LOAD_FPGA);
                if (err < 0) {
-                       err("%s - error loading firmware: error = %d", __FUNCTION__, err);
+                       err("%s - error loading firmware: error = %d", __func__, err);
                        goto wraperr;
                }
        } while (i > 0);
@@ -140,7 +143,7 @@ static int emi26_load_firmware (struct usb_device *dev)
        /* Assert reset (stop the CPU in the EMI) */
        err = emi26_set_reset(dev,1);
        if (err < 0) {
-               err("%s - error loading firmware: error = %d", __FUNCTION__, err);
+               err("%s - error loading firmware: error = %d", __func__, err);
                goto wraperr;
        }
 
@@ -148,7 +151,7 @@ static int emi26_load_firmware (struct usb_device *dev)
        for (i=0; g_Loader[i].type == 0; i++) {
                err = emi26_writememory(dev, g_Loader[i].address, g_Loader[i].data, g_Loader[i].length, ANCHOR_LOAD_INTERNAL);
                if (err < 0) {
-                       err("%s - error loading firmware: error = %d", __FUNCTION__, err);
+                       err("%s - error loading firmware: error = %d", __func__, err);
                        goto wraperr;
                }
        }
@@ -157,7 +160,7 @@ static int emi26_load_firmware (struct usb_device *dev)
        /* De-assert reset (let the CPU run) */
        err = emi26_set_reset(dev,0);
        if (err < 0) {
-               err("%s - error loading firmware: error = %d", __FUNCTION__, err);
+               err("%s - error loading firmware: error = %d", __func__, err);
                goto wraperr;
        }
 
@@ -166,7 +169,7 @@ static int emi26_load_firmware (struct usb_device *dev)
                if (!INTERNAL_RAM(g_Firmware[i].address)) {
                        err = emi26_writememory(dev, g_Firmware[i].address, g_Firmware[i].data, g_Firmware[i].length, ANCHOR_LOAD_EXTERNAL);
                        if (err < 0) {
-                               err("%s - error loading firmware: error = %d", __FUNCTION__, err);
+                               err("%s - error loading firmware: error = %d", __func__, err);
                                goto wraperr;
                        }
                }
@@ -175,7 +178,7 @@ static int emi26_load_firmware (struct usb_device *dev)
        /* Assert reset (stop the CPU in the EMI) */
        err = emi26_set_reset(dev,1);
        if (err < 0) {
-               err("%s - error loading firmware: error = %d", __FUNCTION__, err);
+               err("%s - error loading firmware: error = %d", __func__, err);
                goto wraperr;
        }
 
@@ -183,7 +186,7 @@ static int emi26_load_firmware (struct usb_device *dev)
                if (INTERNAL_RAM(g_Firmware[i].address)) {
                        err = emi26_writememory(dev, g_Firmware[i].address, g_Firmware[i].data, g_Firmware[i].length, ANCHOR_LOAD_INTERNAL);
                        if (err < 0) {
-                               err("%s - error loading firmware: error = %d", __FUNCTION__, err);
+                               err("%s - error loading firmware: error = %d", __func__, err);
                                goto wraperr;
                        }
                }
@@ -192,7 +195,7 @@ static int emi26_load_firmware (struct usb_device *dev)
        /* De-assert reset (let the CPU run) */
        err = emi26_set_reset(dev,0);
        if (err < 0) {
-               err("%s - error loading firmware: error = %d", __FUNCTION__, err);
+               err("%s - error loading firmware: error = %d", __func__, err);
                goto wraperr;
        }
        msleep(250);    /* let device settle */
@@ -218,7 +221,7 @@ static int emi26_probe(struct usb_interface *intf, const struct usb_device_id *i
 {
        struct usb_device *dev = interface_to_usbdev(intf);
 
-       info("%s start", __FUNCTION__); 
+       info("%s start", __func__);
 
        emi26_load_firmware(dev);
 
@@ -250,7 +253,7 @@ static void __exit emi26_exit (void)
 module_init(emi26_init);
 module_exit(emi26_exit);
 
-MODULE_AUTHOR("tapio laxström");
+MODULE_AUTHOR("Tapio Laxström");
 MODULE_DESCRIPTION("Emagic EMI 2|6 firmware loader.");
 MODULE_LICENSE("GPL");