Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394...
[pandora-kernel.git] / drivers / media / dvb / ttusb-budget / dvb-ttusb-budget.c
index 732ce4d..bc2043e 100644 (file)
@@ -19,6 +19,7 @@
 #include <linux/errno.h>
 #include <linux/jiffies.h>
 #include <linux/mutex.h>
+#include <linux/firmware.h>
 
 #include "dvb_frontend.h"
 #include "dmxdev.h"
@@ -285,13 +286,19 @@ static int master_xfer(struct i2c_adapter* adapter, struct i2c_msg *msg, int num
        return i;
 }
 
-#include "dvb-ttusb-dspbootcode.h"
-
 static int ttusb_boot_dsp(struct ttusb *ttusb)
 {
+       const struct firmware *fw;
        int i, err;
        u8 b[40];
 
+       err = request_firmware(&fw, "ttusb-budget/dspbootcode.bin",
+                              &ttusb->dev->dev);
+       if (err) {
+               printk(KERN_ERR "ttusb-budget: failed to request firmware\n");
+               return err;
+       }
+
        /* BootBlock */
        b[0] = 0xaa;
        b[2] = 0x13;
@@ -299,8 +306,8 @@ static int ttusb_boot_dsp(struct ttusb *ttusb)
 
        /* upload dsp code in 32 byte steps (36 didn't work for me ...) */
        /* 32 is max packet size, no messages should be splitted. */
-       for (i = 0; i < sizeof(dsp_bootcode); i += 28) {
-               memcpy(&b[4], &dsp_bootcode[i], 28);
+       for (i = 0; i < fw->size; i += 28) {
+               memcpy(&b[4], &fw->data[i], 28);
 
                b[1] = ++ttusb->c;
 
@@ -552,7 +559,7 @@ static void ttusb_process_muxpack(struct ttusb *ttusb, const u8 * muxpack,
        u16 csum = 0, cc;
        int i;
        for (i = 0; i < len; i += 2)
-               csum ^= le16_to_cpup((u16 *) (muxpack + i));
+               csum ^= le16_to_cpup((__le16 *) (muxpack + i));
        if (csum) {
                printk("%s: muxpack with incorrect checksum, ignoring\n",
                       __func__);
@@ -1820,3 +1827,4 @@ module_exit(ttusb_exit);
 MODULE_AUTHOR("Holger Waechtler <holger@convergence.de>");
 MODULE_DESCRIPTION("TTUSB DVB Driver");
 MODULE_LICENSE("GPL");
+MODULE_FIRMWARE("ttusb-budget/dspbootcode.bin");