On 12/08/2014 06:46 PM, Antti Palosaari wrote:
Hello!
[...]
regmap_bulk_write(): Write multiple registers to the device

In this case we want to write multiple bytes to the same register. So I
think that my patch is correct in principle.

You haven't make any test whether it is possible to write that firmware in a large chunks *or* writing one byte (smallest possible ~chuck) at the time? I think it does not matter. I suspect you could even download whole firmware as one go - but rtl2832p I2C adapter does support only 22 bytes on one xfer.

Even those are written to one register, chip knows how many bytes one message has and could increase its internal address counter. That is usually called register address auto-increment.

A) writing:
f6 00
f6 01
f6 02
f6 03
f6 04
f6 05
f6 06
f6 07
f6 08
f6 09

B) writing:
f6 00 01 02 03 04
f6 05 06 07 08 09

will likely end up same. B is better as only 2 xfers are done - much less IO.

regards
Antti

Hello Antti.

I have now tried the following patch on top of my load defaults patch.

index a7d35bb..fd9796d
--- a/drivers/staging/media/mn88472/mn88472.c
+++ b/drivers/staging/media/mn88472/mn88472.c
@@ -467,7 +467,7 @@ static int mn88472_probe(struct i2c_client *client,
                goto err;
        }

-       dev->i2c_wr_max = config->i2c_wr_max;
+       dev->i2c_wr_max = 2;
        dev->xtal = config->xtal;
        dev->ts_mode = config->ts_mode;
        dev->ts_clock = config->ts_clock;

With this patch I get data, without it I don't. Based on that info I started testing different i2c wr max values.

When I got to 18 it stopped working. So it seams like both you and me where right. We can write several
values at once but only a maximum of 16.

I have a patch that adds parity check of the firmware and all the times the check succeeded but the demodulator didn't deliver data. So I guess that the parity checker is before the 16 byte buffer and if you write more the data is
just ignored.

I will send an updated patch based on this.

MvH
Benjamin Larsson
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to