Hi, > >> > Rather than trying small and smaller transfers, would it not be better > >> > to get the i2c core to expose the quirk info about transfer limits? > >> > > >> > >> Sounds a good idea to me, I guess the quirk info can be accessed with > >> > >> tpm_dev.client->adapter->quirks->max_read_len > >> > >> so I think we don't need to touch the i2c core. I'll propose a second > >> version of the patch. > > > > Hi Enric > > > > You should probably ask Wolfram Sang <[email protected]>, the i2c > > subsystem maintainer. He may prefer adding an API call.
Thanks for pointing me to this thread. I understand it looks tempting to use the quirks struct directly, but I don't think this is the proper solution. Quirks are complex and and to determine which one finally applies, you need all the logic encoded in i2c_check_for_quirks(). Which already gets called on every transfer. So, my suggestion would be to simply fall back to a sane minimum when the maximum failed. 32 (I2C_SMBUS_BLOCK_MAX) should be a good choice. BTW I noted that the original patch checks for -EINVAL. The core returns -EOPNOTSUPP, though. So, a) the patch needs to be adapted and b) it looks the i2c host driver returning -EINVAL could be converted to use the quirk infrastructure? Which driver is it? Regards, Wolfram
signature.asc
Description: PGP signature
------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________ tpmdd-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/tpmdd-devel
