aboutsummaryrefslogtreecommitdiffstats
path: root/src/spicmds.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2018-11-26 22:38:46 -0500
committerKevin O'Connor <kevin@koconnor.net>2018-11-30 11:50:48 -0500
commitdb4f0c24cd04ca1b71a87b5fbc0c8bd9f0ffe500 (patch)
treee90a7ad2d36c783fc1bd71f435d91c09612e3e72 /src/spicmds.c
parent6b108aa8856f44c3095b9dda702c96b3cfbb9677 (diff)
downloadkutter-db4f0c24cd04ca1b71a87b5fbc0c8bd9f0ffe500.tar.gz
kutter-db4f0c24cd04ca1b71a87b5fbc0c8bd9f0ffe500.tar.xz
kutter-db4f0c24cd04ca1b71a87b5fbc0c8bd9f0ffe500.zip
spicmds: Check for an incorrect mode in spicmds.c
Check the mode parameter in spicmds.c so that the mcu code does not need to check it. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'src/spicmds.c')
-rw-r--r--src/spicmds.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/spicmds.c b/src/spicmds.c
index 5af6dafc..0017c56b 100644
--- a/src/spicmds.c
+++ b/src/spicmds.c
@@ -26,12 +26,14 @@ enum {
void
command_config_spi(uint32_t *args)
{
- uint8_t shutdown_msg_len = args[5];
+ uint8_t mode = args[3], shutdown_msg_len = args[5];
+ if (mode > 3)
+ shutdown("Invalid spi mode");
struct spidev_s *spi = oid_alloc(args[0], command_config_spi
, sizeof(*spi) + shutdown_msg_len);
spi->pin = gpio_out_setup(args[2], 1);
spi->flags = SF_HAVE_PIN;
- spi->spi_config = spi_setup(args[1], args[3], args[4]);
+ spi->spi_config = spi_setup(args[1], mode, args[4]);
spi->shutdown_msg_len = shutdown_msg_len;
uint8_t *shutdown_msg = (void*)(size_t)args[6];
memcpy(spi->shutdown_msg, shutdown_msg, shutdown_msg_len);
@@ -42,10 +44,12 @@ DECL_COMMAND(command_config_spi,
void
command_config_spi_without_cs(uint32_t *args)
{
- uint8_t shutdown_msg_len = args[4];
+ uint8_t mode = args[2], shutdown_msg_len = args[4];
+ if (mode > 3)
+ shutdown("Invalid spi mode");
struct spidev_s *spi = oid_alloc(args[0], command_config_spi
, sizeof(*spi) + shutdown_msg_len);
- spi->spi_config = spi_setup(args[1], args[2], args[3]);
+ spi->spi_config = spi_setup(args[1], mode, args[3]);
spi->shutdown_msg_len = shutdown_msg_len;
uint8_t *shutdown_msg = (void*)(size_t)args[5];
memcpy(spi->shutdown_msg, shutdown_msg, shutdown_msg_len);