[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1F3AC3675D538145B1661F571FE1805F2F2155A7@irsmsx105.ger.corp.intel.com>
Date: Mon, 28 Mar 2016 16:05:19 +0000
From: "Tirdea, Irina" <irina.tirdea@...el.com>
To: Peter Meerwald-Stadler <pmeerw@...erw.net>,
Jonathan Cameron <jic23@...nel.org>
CC: "linux-iio@...r.kernel.org" <linux-iio@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Hartmut Knaack <knaack.h@....de>,
Lars-Peter Clausen <lars@...afoo.de>,
"Purdila, Octavian" <octavian.purdila@...el.com>,
Markus Pargmann <mpa@...gutronix.de>,
"Pandruvada, Srinivas" <srinivas.pandruvada@...el.com>
Subject: RE: [PATCH 4/6] iio: accel: bmg160: optimize transfers in trigger
handler
> -----Original Message-----
> From: Peter Meerwald-Stadler [mailto:pmeerw@...erw.net]
> Sent: 28 March, 2016 13:09
> To: Jonathan Cameron
> Cc: Tirdea, Irina; linux-iio@...r.kernel.org; linux-kernel@...r.kernel.org; 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@...el.com>
> > 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
Powered by blists - more mailing lists