Skip to content

Commit

Permalink
ttusb-budget: use request_firmware()
Browse files Browse the repository at this point in the history
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Acked-by: Mauro Carvalho Chehab <mchehab@infradead.org>
  • Loading branch information
dwmw2 authored and David Woodhouse committed Jul 10, 2008
1 parent 7968249 commit 0a2a736
Show file tree
Hide file tree
Showing 5 changed files with 843 additions and 1,648 deletions.
16 changes: 12 additions & 4 deletions drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -285,22 +286,28 @@ 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;
b[3] = 28;

/* 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;

Expand Down Expand Up @@ -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");
Loading

0 comments on commit 0a2a736

Please sign in to comment.