From: Kris Bahnsen <kris@embeddedTS.com>
To: Mark Brown <broonie@kernel.org>
Cc: linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org,
mark@embeddedts.com
Subject: Re: [PATCH] spi: spi-gpio: Don't set MOSI as an input if not 3WIRE mode
Date: Wed, 07 Dec 2022 16:36:41 -0800 [thread overview]
Message-ID: <1670459801.7091.1.camel@embeddedTS.com> (raw)
In-Reply-To: <Y5ElXqDduIZhIiAm@sirena.org.uk>
On Wed, 2022-12-07 at 23:44 +0000, Mark Brown wrote:
> On Wed, Dec 07, 2022 at 03:08:53PM -0800, Kris Bahnsen wrote:
> > The addition of 3WIRE support would affect MOSI direction even
> > when still in standard (4 wire) mode. This can lead to MOSI being
> > at an invalid logic level when a device driver sets an SPI
> > message with a NULL tx_buf.
> >
> > spi.h states that if tx_buf is NULL then "zeros will be shifted
> > out ... " If MOSI is tristated then the data shifted out is subject
> > to pull resistors, keepers, or in the absence of those, noise.
> >
> > This issue came to light when using spi-gpio connected to an
> > ADS7843 touchscreen controller. MOSI pulled high when clocking
> > MISO data in caused the SPI device to interpret this as a command
> > which would put the device in an unexpected and non-functional
> > state.
>
> A cleaner fix which is probably marginally more performant would be to
> make the setting of spi_gpio_set_direction() conditional on SPI_3WIRE -
> then we won't call into the function at all when not doing 3 wire,
> avoiding the issue entirely.
That makes sense to me. I was operating under the assumption that 3WIRE
mode could be switched in to at a later time via ioctl(), but with the
death of spidev that is presumably no longer a concern.
I'll get a v2 put together and probably sent in tomorrow. Thanks.
>
> > As an aside, I wasn't sure how to best put down the Fixes: tags.
> > 4b859db2c606 ("spi: spi-gpio: add SPI_3WIRE support") introduced the
> > actual bug, but 5132b3d28371 ("spi: gpio: Support 3WIRE high-impedance turn-around")
> > modified that commit slightly and is what this patch actually applies
> > to. Let me know if marking both as fixes is incorrect and I can
> > create another patch.
>
> That's fine, it doesn't really matter either way.
next prev parent reply other threads:[~2022-12-08 0:37 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-07 23:08 [PATCH] spi: spi-gpio: Don't set MOSI as an input if not 3WIRE mode Kris Bahnsen
2022-12-07 23:44 ` Mark Brown
2022-12-08 0:36 ` Kris Bahnsen [this message]
2022-12-08 0:42 ` Mark Brown
2022-12-08 0:58 ` Kris Bahnsen
2022-12-08 13:14 ` Mark Brown
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=1670459801.7091.1.camel@embeddedTS.com \
--to=kris@embeddedts.com \
--cc=broonie@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-spi@vger.kernel.org \
--cc=mark@embeddedts.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.