git: c108f304472e - stable/13 - sifive_spi: Add missing case for SPIBUS_MODE_NONE
Jessica Clarke
jrtc27 at FreeBSD.org
Tue Sep 7 12:10:14 UTC 2021
The branch stable/13 has been updated by jrtc27:
URL: https://cgit.FreeBSD.org/src/commit/?id=c108f304472e576d3d561e677a07f1384beab6fd
commit c108f304472e576d3d561e677a07f1384beab6fd
Author: Thomas Skibo <thomas-bsd at skibo.net>
AuthorDate: 2021-08-30 20:39:20 +0000
Commit: Jessica Clarke <jrtc27 at FreeBSD.org>
CommitDate: 2021-09-07 12:08:20 +0000
sifive_spi: Add missing case for SPIBUS_MODE_NONE
Otherwise sckmode is left uninitialised, not zero. This mode is used for
the on-board flash on the HiFive Unmatched board. Whilst here, catch
unknown modes and return an error rather than silently continuing.
Reviewed by: #riscv, jrtc27
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D31562
(cherry picked from commit f5d78bea1f699c05e1694505088e61d22b8fb1f5)
---
sys/riscv/sifive/sifive_spi.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/sys/riscv/sifive/sifive_spi.c b/sys/riscv/sifive/sifive_spi.c
index df72beaac7ae..4a5d79fec01d 100644
--- a/sys/riscv/sifive/sifive_spi.c
+++ b/sys/riscv/sifive/sifive_spi.c
@@ -219,6 +219,9 @@ sfspi_setup(struct sfspi_softc *sc, uint32_t cs, uint32_t mode,
SFSPI_WRITE(sc, SFSPI_REG_SCKDIV, sckdiv);
switch (mode) {
+ case SPIBUS_MODE_NONE:
+ sckmode = 0;
+ break;
case SPIBUS_MODE_CPHA:
sckmode = SFSPI_SCKMODE_PHA;
break;
@@ -228,6 +231,8 @@ sfspi_setup(struct sfspi_softc *sc, uint32_t cs, uint32_t mode,
case SPIBUS_MODE_CPOL_CPHA:
sckmode = SFSPI_SCKMODE_PHA | SFSPI_SCKMODE_POL;
break;
+ default:
+ return (EINVAL);
}
SFSPI_WRITE(sc, SFSPI_REG_SCKMODE, sckmode);
More information about the dev-commits-src-branches
mailing list