Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit caa687c8 authored by Igor M. Liplianin's avatar Igor M. Liplianin Committed by Mauro Carvalho Chehab
Browse files

[media] ds3000: loading firmware in bigger chunks



Decrease firmware loading time. Before it is ~4000 i2c calls,
now it is ~256 i2c calls to load ds3000 firmware.

Signed-off-by: default avatarIgor M. Liplianin <liplianin@me.by>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 2a66bf37
Loading
Loading
Loading
Loading
+4 −4
Original line number Original line Diff line number Diff line
@@ -305,7 +305,7 @@ static int ds3000_writeFW(struct ds3000_state *state, int reg,
	struct i2c_msg msg;
	struct i2c_msg msg;
	u8 *buf;
	u8 *buf;


	buf = kmalloc(3, GFP_KERNEL);
	buf = kmalloc(33, GFP_KERNEL);
	if (buf == NULL) {
	if (buf == NULL) {
		printk(KERN_ERR "Unable to kmalloc\n");
		printk(KERN_ERR "Unable to kmalloc\n");
		ret = -ENOMEM;
		ret = -ENOMEM;
@@ -317,10 +317,10 @@ static int ds3000_writeFW(struct ds3000_state *state, int reg,
	msg.addr = state->config->demod_address;
	msg.addr = state->config->demod_address;
	msg.flags = 0;
	msg.flags = 0;
	msg.buf = buf;
	msg.buf = buf;
	msg.len = 3;
	msg.len = 33;


	for (i = 0; i < len; i += 2) {
	for (i = 0; i < len; i += 32) {
		memcpy(buf + 1, data + i, 2);
		memcpy(buf + 1, data + i, 32);


		dprintk("%s: write reg 0x%02x, len = %d\n", __func__, reg, len);
		dprintk("%s: write reg 0x%02x, len = %d\n", __func__, reg, len);