Jelajahi Sumber

Merge remote-tracking branch 'origin/master' into develop

QMK Bot 1 tahun lalu
induk
melakukan
67c97da654
1 mengubah file dengan 15 tambahan dan 0 penghapusan
  1. 15 0
      platforms/chibios/drivers/spi_master.c

+ 15 - 0
platforms/chibios/drivers/spi_master.c

@@ -130,10 +130,16 @@ bool spi_start_extended(spi_start_config_t *start_config) {
 #endif // (SPI_USE_MUTUAL_EXCLUSION == TRUE)
 #endif // (SPI_USE_MUTUAL_EXCLUSION == TRUE)
 
 
     if (spiStarted) {
     if (spiStarted) {
+#if (SPI_USE_MUTUAL_EXCLUSION == TRUE)
+        spiReleaseBus(&SPI_DRIVER);
+#endif // (SPI_USE_MUTUAL_EXCLUSION == TRUE)
         return false;
         return false;
     }
     }
 #if SPI_SELECT_MODE != SPI_SELECT_MODE_NONE
 #if SPI_SELECT_MODE != SPI_SELECT_MODE_NONE
     if (start_config->slave_pin == NO_PIN) {
     if (start_config->slave_pin == NO_PIN) {
+#    if (SPI_USE_MUTUAL_EXCLUSION == TRUE)
+        spiReleaseBus(&SPI_DRIVER);
+#    endif // (SPI_USE_MUTUAL_EXCLUSION == TRUE)
         return false;
         return false;
     }
     }
 #endif
 #endif
@@ -146,10 +152,16 @@ bool spi_start_extended(spi_start_config_t *start_config) {
 
 
 #    if defined(AT32F415)
 #    if defined(AT32F415)
     if (roundedDivisor < 2 || roundedDivisor > 1024) {
     if (roundedDivisor < 2 || roundedDivisor > 1024) {
+#        if (SPI_USE_MUTUAL_EXCLUSION == TRUE)
+        spiReleaseBus(&SPI_DRIVER);
+#        endif // (SPI_USE_MUTUAL_EXCLUSION == TRUE)
         return false;
         return false;
     }
     }
 #    else
 #    else
     if (roundedDivisor < 2 || roundedDivisor > 256) {
     if (roundedDivisor < 2 || roundedDivisor > 256) {
+#        if (SPI_USE_MUTUAL_EXCLUSION == TRUE)
+        spiReleaseBus(&SPI_DRIVER);
+#        endif // (SPI_USE_MUTUAL_EXCLUSION == TRUE)
         return false;
         return false;
     }
     }
 #    endif
 #    endif
@@ -234,6 +246,9 @@ bool spi_start_extended(spi_start_config_t *start_config) {
     }
     }
 
 
     if (start_config->divisor < 1) {
     if (start_config->divisor < 1) {
+#    if (SPI_USE_MUTUAL_EXCLUSION == TRUE)
+        spiReleaseBus(&SPI_DRIVER);
+#    endif // (SPI_USE_MUTUAL_EXCLUSION == TRUE)
         return false;
         return false;
     }
     }