RE: [PATCH 4/6] iio: accel: bmg160: optimize transfers in trigger handler

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> -----Original Message-----
> From: Peter Meerwald-Stadler [mailto:pmeerw@xxxxxxxxxx]
> Sent: 28 March, 2016 13:09
> To: Jonathan Cameron
> Cc: Tirdea, Irina; linux-iio@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Hartmut Knaack; Lars-Peter Clausen; Purdila, Octavian;
> Markus Pargmann; Pandruvada, Srinivas
> Subject: Re: [PATCH 4/6] iio: accel: bmg160: optimize transfers in trigger handler
> 
> 

Thanks for the review, Peter!

> > > Some i2c busses (e.g.: Synopsys DesignWare I2C adapter) need to
> > > enable/disable the bus at each i2c transfer and must wait for
> > > the enable/disable to happen before sending the data.
> > >
> > > When reading data in the trigger handler, the bmc150 accel driver does
> 
> should refer to bmg160
> 
> > > one bus transfer for each axis. This has an impact on the frequency
> > > of the accelerometer at high sample rates due to additional delays
> > > introduced by the bus at each transfer.
> > >
> > > Reading all axis values in one bus transfer reduces the delays
> > > introduced by the bus.
> > >
> > > Signed-off-by: Irina Tirdea <irina.tirdea@xxxxxxxxx>
> > I forgot to highlight on the earlier driver that there is also 'technically'
> > a bit of an ABI change here because we are now exporting as LE rather than CPU
> > order.  However, I 'hope' anyone actually accessing the buffered data is either
> > doing it through a nice library or hasn't hacked the endian unwinding out of
> > the generic_buffer example!
> 
> the patch takes away the possibility to do buffered reads on individual
> channels (not sure if this is useful per se)

We can still read individual channels, but the demux is now handled by the iio core
(through available_scan_masks, added in the previous patch).

As Jonathan mentioned in a previous patch, this will impact performance for reading
only a subset of the available channels  (since we will read all 3 axes regardless of
how many axes the user actually requested  and will receive).
> 
> this optimizes for the common case, ok;
> 
> wondering if adding
> .endianness = IIO_LE
> is actually an unrelated fix
> 

Thanks for catching this! 
I already covered this point in the reply to Jonathan.

Thanks,
Irina 

--
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



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux