aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal
diff options
context:
space:
mode:
authorgdisirio <gdisirio@110e8d01-0319-4d1e-a829-52ad28d1bb01>2018-12-16 07:57:53 +0000
committergdisirio <gdisirio@110e8d01-0319-4d1e-a829-52ad28d1bb01>2018-12-16 07:57:53 +0000
commitee3072bcf8c4fc277f82b2a5e20cd9bcdbc29aca (patch)
tree4a7ab8ba33caee51963ec1b033b86513c698b9f2 /os/hal
parentb79f097e36d5656b18d9d1e7b5fbea14f692618f (diff)
downloadChibiOS-ee3072bcf8c4fc277f82b2a5e20cd9bcdbc29aca.tar.gz
ChibiOS-ee3072bcf8c4fc277f82b2a5e20cd9bcdbc29aca.tar.bz2
ChibiOS-ee3072bcf8c4fc277f82b2a5e20cd9bcdbc29aca.zip
Fixed problem in I2Cv3 http://www.chibios.com/forum/viewtopic.php?f=35&t=4933
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@12472 110e8d01-0319-4d1e-a829-52ad28d1bb01
Diffstat (limited to 'os/hal')
-rw-r--r--os/hal/ports/STM32/LLD/I2Cv3/hal_i2c_lld.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/os/hal/ports/STM32/LLD/I2Cv3/hal_i2c_lld.c b/os/hal/ports/STM32/LLD/I2Cv3/hal_i2c_lld.c
index a7e0f589b..3ddeca982 100644
--- a/os/hal/ports/STM32/LLD/I2Cv3/hal_i2c_lld.c
+++ b/os/hal/ports/STM32/LLD/I2Cv3/hal_i2c_lld.c
@@ -983,9 +983,24 @@ void i2c_lld_stop(I2CDriver *i2cp) {
/* I2C disable.*/
i2c_lld_abort_operation(i2cp);
-#if STM32_I2C_USE_DMA == TRUE
- i2c_lld_stop_tx_dma(i2cp);
- i2c_lld_stop_rx_dma(i2cp);
+
+#if defined(STM32_I2C_DMA_REQUIRED) && defined(STM32_I2C_BDMA_REQUIRED)
+ if(i2cp->is_bdma)
+#endif
+#if defined(STM32_I2C_BDMA_REQUIRED)
+ {
+ bdmaStreamRelease(i2cp->rx.bdma);
+ bdmaStreamRelease(i2cp->tx.bdma);
+ }
+#endif
+#if defined(STM32_I2C_DMA_REQUIRED) && defined(STM32_I2C_BDMA_REQUIRED)
+ else
+#endif
+#if defined(STM32_I2C_DMA_REQUIRED)
+ {
+ dmaStreamRelease(i2cp->rx.dma);
+ dmaStreamRelease(i2cp->tx.dma);
+ }
#endif
#if STM32_I2C_USE_I2C1