diff options
author | gdisirio <gdisirio@110e8d01-0319-4d1e-a829-52ad28d1bb01> | 2018-12-16 07:57:53 +0000 |
---|---|---|
committer | gdisirio <gdisirio@110e8d01-0319-4d1e-a829-52ad28d1bb01> | 2018-12-16 07:57:53 +0000 |
commit | ee3072bcf8c4fc277f82b2a5e20cd9bcdbc29aca (patch) | |
tree | 4a7ab8ba33caee51963ec1b033b86513c698b9f2 /os/hal/ports/STM32 | |
parent | b79f097e36d5656b18d9d1e7b5fbea14f692618f (diff) | |
download | ChibiOS-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/ports/STM32')
-rw-r--r-- | os/hal/ports/STM32/LLD/I2Cv3/hal_i2c_lld.c | 21 |
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
|