From: Geert Uytterhoeven <geert@linux-m68k.org>
To: "Andreas Färber" <afaerber@suse.de>
Cc: linux-realtek-soc@lists.infradead.org,
linux-leds@vger.kernel.org,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
linux-spi <linux-spi@vger.kernel.org>,
Mark Brown <broonie@kernel.org>,
Jacek Anaszewski <jacek.anaszewski@gmail.com>,
Pavel Machek <pavel@ucw.cz>,
Linux ARM <linux-arm-kernel@lists.infradead.org>,
Dan Murphy <dmurphy@ti.com>
Subject: Re: [RFC 04/25] spi: gpio: Implement LSB First bitbang support
Date: Thu, 12 Dec 2019 09:40:20 +0100 [thread overview]
Message-ID: <CAMuHMdWdxJ9AaWhyCW-u8fCpXSDCPd-D6Dx129SF5nRssZsK=g@mail.gmail.com> (raw)
In-Reply-To: <20191212033952.5967-5-afaerber@suse.de>
Hi Andreas,
On Thu, Dec 12, 2019 at 4:41 AM Andreas Färber <afaerber@suse.de> wrote:
> Add support for slave DT property spi-lsb-first, i.e., SPI_LSB_FIRST mode.
>
> Duplicate the inline helpers bitbang_txrx_be_cpha{0,1} as LE versions.
> Make checkpatch.pl happy by changing "unsigned" to "unsigned int".
>
> Conditionally call them from all the spi-gpio txrx_word callbacks.
>
> Signed-off-by: Andreas Färber <afaerber@suse.de>
Thanks for your patch!
> --- a/drivers/spi/spi-gpio.c
> +++ b/drivers/spi/spi-gpio.c
> @@ -135,25 +135,37 @@ static inline int getmiso(const struct spi_device *spi)
> static u32 spi_gpio_txrx_word_mode0(struct spi_device *spi,
> unsigned nsecs, u32 word, u8 bits, unsigned flags)
> {
> - return bitbang_txrx_be_cpha0(spi, nsecs, 0, flags, word, bits);
> + if (unlikely(spi->mode & SPI_LSB_FIRST))
> + return bitbang_txrx_le_cpha0(spi, nsecs, 0, flags, word, bits);
> + else
> + return bitbang_txrx_be_cpha0(spi, nsecs, 0, flags, word, bits);
> }
Duplicating all functions sounds a bit wasteful to me.
What about reverting the word first, and calling the normal functions?
if (unlikely(spi->mode & SPI_LSB_FIRST)) {
if (bits <= 8)
word = bitrev8(word) >> (bits - 8);
else if (bits <= 16)
word = bitrev16(word) >> (bits - 16);
else
word = bitrev32(word) >> (bits - 32);
}
return bitbang_txrx_be_cpha0(spi, nsecs, 0, flags, word, bits);
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
next prev parent reply other threads:[~2019-12-12 8:40 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-12 3:39 [RFC 00/25] arm64: realtek: Add Xnano X5 and implement TM1628/FD628/AiP1618 LED controllers Andreas Färber
2019-12-12 3:39 ` [RFC 04/25] spi: gpio: Implement LSB First bitbang support Andreas Färber
2019-12-12 8:40 ` Geert Uytterhoeven [this message]
2019-12-12 15:14 ` Andreas Färber
2019-12-12 17:19 ` Mark Brown
2019-12-12 21:08 ` Andreas Färber
2019-12-13 11:42 ` Mark Brown
2019-12-12 13:14 ` [RFC 00/25] arm64: realtek: Add Xnano X5 and implement TM1628/FD628/AiP1618 LED controllers Robin Murphy
2019-12-12 20:55 ` Andreas Färber
2019-12-13 14:07 ` Robin Murphy
2019-12-13 14:36 ` Geert Uytterhoeven
2020-02-25 21:42 ` Ezra Buehler
[not found] ` <E33E27B9-D33C-4182-A5B1-C72FA40470BC-z8Bw++XM6qA@public.gmane.org>
2020-02-26 13:03 ` Pavel Machek
2019-12-21 18:20 ` Pavel Machek
2019-12-21 21:07 ` Andreas Färber
[not found] ` <20191212033952.5967-1-afaerber-l3A5Bk7waGM@public.gmane.org>
2020-01-15 13:34 ` Andreas Färber
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAMuHMdWdxJ9AaWhyCW-u8fCpXSDCPd-D6Dx129SF5nRssZsK=g@mail.gmail.com' \
--to=geert@linux-m68k.org \
--cc=afaerber@suse.de \
--cc=broonie@kernel.org \
--cc=dmurphy@ti.com \
--cc=jacek.anaszewski@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-leds@vger.kernel.org \
--cc=linux-realtek-soc@lists.infradead.org \
--cc=linux-spi@vger.kernel.org \
--cc=pavel@ucw.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).