On 20/02/15 12:03, Tirdea, Irina wrote: > > >> -----Original Message----- >> From: Peter Meerwald [mailto:pmeerw@xxxxxxxxxx] >> Sent: 16 February, 2015 21:14 >> To: Tirdea, Irina >> Cc: Jonathan Cameron; linux-iio@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Pandruvada, Srinivas; Reus, Adriana >> Subject: Re: [PATCH 0/2] kxcjk-1013 driver optimizations >> >> >>> Adds optimization of i2c transactions in trigger handler and >>> usage of available_scan_masks for kxcjk-1013. >> >> the 'optimization' changes the capabilities of the driver, reading >> individual channel is not possible anymore >> > We can still read individual channels, just that the driver does not see that anymore and the demux is handled by the iio core. > available_scan_masks contains the bitmap superset for all channels we can enable (I will remove the 0 available_scan_mask as it does not makes sense). Careful. That's there as a null terminator for this list of available scan masks. > When a new channel is enabled, the iio core checks if the new mask is a subset of any entry in available_scan_masks. > When the buffer is pushed from the driver, the iio core will select only the enabled channel values. Pretty much. IIRC This originally went in as part of handling multiple clients on these data streams, but it was rapidly pointed out that lots of drivers spun their own versions to break out particular elements from a multichannel read. As such, using the generic form saved on repetition in these cases as well. A good, complex example is drivers/iio/adc/max1363 in which really weird combinations of channels (but far from all) are available for bulk capture and reading. > >>> Adriana Reus (2): >>> iio: accel: kxcjk-1013: use available_scan_masks >>> iio: accel: kxcjk-1013: optimize i2c transfers in trigger handler >>> >>> drivers/iio/accel/kxcjk-1013.c | 50 ++++++++++++++++++++++++++++++++---------- >>> 1 file changed, 39 insertions(+), 11 deletions(-) >>> >>> >> >> -- >> >> Peter Meerwald >> +43-664-2444418 (mobile) > -- > To unsubscribe from this list: send the line "unsubscribe linux-iio" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html