[PATCH v2] spi: bitbang: only toggle bitchanges
Michael Grzeschik
mgr at pengutronix.de
Tue Mar 31 13:13:00 PDT 2015
On Tue, Mar 31, 2015 at 08:59:28PM +0200, Jonas Gorski wrote:
> On Tue, Mar 31, 2015 at 4:35 PM, Michael Grzeschik
> <m.grzeschik at pengutronix.de> wrote:
> > The current implementation of bitbang_txrx_be_cpha0 and
> > bitbang_txrx_be_cpha1 always call setmosi. That runs into several
> > unnecessary calls into the gpiolib when the level of the GPIO actually
> > has not to be changed.
> >
> > This patch changes the routines to remember the last GPIO level
> > and only calls setmosi if an change has to be made. This
> > way it improves the transfer throughput.
> >
> > Signed-off-by: Michael Grzeschik <m.grzeschik at pengutronix.de>
> > ---
> > v2: added missing braces
> >
> > drivers/spi/spi-bitbang-txrx.h | 18 ++++++++++++++----
> > 1 file changed, 14 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/spi/spi-bitbang-txrx.h b/drivers/spi/spi-bitbang-txrx.h
> > index c616e41..06b34e5 100644
> > --- a/drivers/spi/spi-bitbang-txrx.h
> > +++ b/drivers/spi/spi-bitbang-txrx.h
> > @@ -49,12 +49,17 @@ bitbang_txrx_be_cpha0(struct spi_device *spi,
> > {
> > /* if (cpol == 0) this is SPI_MODE_0; else this is SPI_MODE_2 */
> >
> > + bool oldbit = !(word & 1);
>
> Is it intentional you check the first bit (word & 1) here? Everywhere
> else you use (word & 31).
Doh! I was reworking this from an _le_ variant of the same code.
This hunk unfortunately is an leftover... :/
Mark, should I send a corrected version or do you squash the 31 into the
applied patch?
Thanks for the hint,
Michael
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the linux-arm-kernel
mailing list