[PATCH 0/9] spi: bcm2835aux: bug fixes and improvements
From: <hidden>
Date: 2019-02-24 13:00:22
Also in:
linux-spi
From: Martin Sperl <redacted>
Set of patches improving the spi-bcm2835aux driver and fixing
a data read corruption bug.
The main motivation is a rare data corruption fix that is mostly
observed in polling mode first reported by Hubert Denkmair.
So this patchset first implements a means to control the parameters
of when polling mode is used via module parameters and exports
the corresponding statistics.
As stated in original patch the driver does not support native CS.
But when cs-gpios is not configured in the dt (so a buggy dt) it is
still working with a lot of limitations, but the driver does not report
this fact.
So this patchset adds reporting and allows for a single native CS
(with limited functionality) to continue working with a buggy DT.
One question here remains: do we need to legacy support DTs
that are not following specs in the first place?
Then there is the real fix for the data-corruption which is split
into 3 parts: some code cleanup with code reuse, removing "dangerous"
fifo read (possibly introducing fifo data corruption) and safe fifo read
Finally we remove some dead code.
Martin Sperl (9):
spi: bcm2835aux: fix driver to not allow 65535 (=-1) cs-gpios
spi: bcm2835aux: warn in dmesg that native cs is not really supported
spi: bcm2835aux: setup gpio-cs to output and correct level during
setup
spi: bcm2835aux: add driver specific stats to debugfs
spi: bcm2835aux: make the polling duration limits configurable
spi: bcm2835aux: unifying code between polling and interrupt driven
code
spi: bcm2835aux: remove dangerous uncontrolled read of fifo
spi: bcm2835aux: use BCM2835_AUX_SPI_STAT_RX_LVL
spi: bcm2835aux: remove dead code
drivers/spi/spi-bcm2835aux.c | 205 +++++++++++++++++++++++++++++++------------
1 file changed, 149 insertions(+), 56 deletions(-)
--
2.11.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel