Yes, I use the inline functions from i2c-dev.h. Mark Studebaker wrote: > so you are using the userspace > i2c_smbus_read_i2c_block_data() call from i2c-dev.h, not the > kernel one from i2c-core.c, correct? > > Andre Fisser wrote: > >>Mark Studebaker wrote: > >> > >>good question. > >> > >>you want to make the size bigger or smaller? > > > > > > I need it to be smaller, but a maximum size of 32 is o.k. for me. > > > > > >>I'll assume you are using a bit-banging (i2c-algo-bit) > adatper here... > > > > > > Yes. > > > > > >>It's true, if you use the call i2c_smbus_read_i2c_block_data(), > >>the size is fixed at 32. This is enforced in these functions > >>and in i2c_smbus_xfer_emulated(). > >> > >>You can avoid this limitation by making a direct call to > >>i2c_transfer(), you should be able to find some drivers in > >>the kernel that use i2c_transfer() > >>as an example. > > > > > > I think that is too low level, I need to call that function from > > user-space; I don't want to make a special driver-module for my > > device. > > > > > >>If you have a proposal on a clean way to set the size on calls to > >>i2c_smbus_read_i2c_block_data() > >>we'll be happy to discuss it with you. > > > > > > I have a solution that works for me. > > The changes I made are quite small. I changed the > > i2c_smbus_read_i2c_block_data function and added a length > parameter. I think > > this is the right thing to do because only the I2C master > knows how many > > byte to transfer. Then I pass the length in the > i2c_smbus_data union in > > block[0] down to all driver sub-functions, as it is done in > the _write_ > > functions. This allows me to adjust the block-size between > 1..32, that's > > good enough for me. > > Of course this is a change in the API and will probably > break some existing > > clients. I don't have any, so no problem for me ;-) I don't > know if this is > > acceptable for a future version of the i2c driver. And > there is still a max. > > size of 32 bytes for the transfer, but changing that would > require to > > allocate the buffer dynamically. I think that's not worth the effort > > required. > > > > Groetjes, > > Andre > > > > > >>Andre Fisser wrote: > >> > >>>Hi, > >>> > >>>are there plans to remove the fixed size of i2c block > >> > >>reads? I use the > >> > >>>I2C driver to communicate through the printer port with a kind of > >>>Philips dongle to a custom microprocessor circuit. The fixed block > >>>size is wasting bus-bandwidth which is a problem for me. > >> > >>I'm planning > >> > >>>to remove this limitation myself if there's nobody already > >> > >>working on > >> > >>>it. Maybe you guys have some advice for me how it can be best done? > >>> > >>>Best regards, > >>>Andre > >>> > >>> > >>>Andr? Fisser > >>> > >>>Imtech ICT Technical Systems > >>>Flight Forum 800, > >>>5657 DV Eindhoven > >>> > >>>Telephone +31 (0)40 8484444 > >>>Fax +31 (0)40 8484440 > >>>Email Andre.Fisser at Imtech.nl > >>>www www.imtech.nl > >>> > >>>Imtech ICT is een full service ICT-dienstverlener die op een > >>>no-nonsense manier bijdraagt aan het succes van haar > >> > >>klanten. Imtech > >> > >>>ICT biedt hoogwaardige dienstverlening op het gebied van > >>>projectmanagement, advies, technische automatisering, > >> > >>informatisering > >> > >>>en communicatietechnologie, en is onderdeel van het beursgenoteerde > >>>Imtech. > >>> > >>> > >>> > >> > > > > >