On 10/27/2010 07:12 PM, Mauro Carvalho Chehab wrote:
int tda18271_write_regs(struct dvb_frontend *fe, int idx, int len)
{
...
switch (priv->small_i2c) {
case TDA18271_03_BYTE_CHUNK_INIT:
max = 3;
break;
case TDA18271_08_BYTE_CHUNK_INIT:
max = 8;
break;
case TDA18271_16_BYTE_CHUNK_INIT:
max = 16;
break;
case TDA18271_39_BYTE_CHUNK_INIT:
default:
max = 39;
}
with small_i2c = 1, the driver will not restrict the maximum length size.
It's weird that the patch didn't fix it. Are you sure that reverting this
patch is enough to make the driver work?
Please test this one.
It will properly log the size of the message the driver tried to use, and will
reduce the max number of bytes per I2C transfer to 8.
All in all, this small_i2c was added (Michael Krufky and I) when this
tuner was taken in use with af9015 and it was 16 bytes initially. I
think those other chunks are added later.
AF9015 I2C adapter can write 21 bytes at once.
Correct solution is to add option which splits writes as wanted (like
option .i2c_wr_max) to the TDA18271. I have no HW to test.
Antti
--
http://palosaari.fi/
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html