[media] ds3000: loading firmware in bigger chunks
authorIgor M. Liplianin <liplianin@me.by>
Tue, 1 Feb 2011 22:40:25 +0000 (19:40 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Mon, 21 Mar 2011 23:32:20 +0000 (20:32 -0300)
Decrease firmware loading time. Before it is ~4000 i2c calls,
now it is ~256 i2c calls to load ds3000 firmware.

Signed-off-by: Igor M. Liplianin <liplianin@me.by>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/dvb/frontends/ds3000.c

index 41af75adc5757f9f0241d13aa660a3296920b166..b2f0f4e8e51222a0685116e1ae0769f266e2c90c 100644 (file)
@@ -305,7 +305,7 @@ static int ds3000_writeFW(struct ds3000_state *state, int reg,
        struct i2c_msg msg;
        u8 *buf;
 
-       buf = kmalloc(3, GFP_KERNEL);
+       buf = kmalloc(33, GFP_KERNEL);
        if (buf == NULL) {
                printk(KERN_ERR "Unable to kmalloc\n");
                ret = -ENOMEM;
@@ -317,10 +317,10 @@ static int ds3000_writeFW(struct ds3000_state *state, int reg,
        msg.addr = state->config->demod_address;
        msg.flags = 0;
        msg.buf = buf;
-       msg.len = 3;
+       msg.len = 33;
 
-       for (i = 0; i < len; i += 2) {
-               memcpy(buf + 1, data + i, 2);
+       for (i = 0; i < len; i += 32) {
+               memcpy(buf + 1, data + i, 32);
 
                dprintk("%s: write reg 0x%02x, len = %d\n", __func__, reg, len);