altos/stm: Note that ao_i2c_recv_dma_isr isn't actually used
authorKeith Packard <keithp@keithp.com>
Tue, 5 Feb 2019 06:35:02 +0000 (22:35 -0800)
committerKeith Packard <keithp@keithp.com>
Mon, 18 Feb 2019 21:07:29 +0000 (13:07 -0800)
This function resets the i2c transceiver after DMA completes, but it
hasn't ever been hooked up. Some testing would be a good idea. For
now, just add a comment and mark the function as referenced to avoid a
compiler warning.

Signed-off-by: Keith Packard <keithp@keithp.com>
src/stm/ao_i2c_stm.c

index 23805aa8929a1bbc957ba3c20dadff8643ad3ee0..c02bc5a535169f0922b638f4947756c8d5133256 100644 (file)
@@ -341,6 +341,17 @@ ao_i2c_recv(void *block, uint16_t len, uint8_t index, uint8_t stop)
                                    (0 << STM_DMA_CCR_PINC) |
                                    (0 << STM_DMA_CCR_CIRC) |
                                    (STM_DMA_CCR_DIR_PER_TO_MEM << STM_DMA_CCR_DIR));
                                    (0 << STM_DMA_CCR_PINC) |
                                    (0 << STM_DMA_CCR_CIRC) |
                                    (STM_DMA_CCR_DIR_PER_TO_MEM << STM_DMA_CCR_DIR));
+
+               /* XXX ao_i2c_recv_dma_isr hasn't ever been used, so it
+                * doesn't appear to be necessary. Testing with a device
+                * that uses i2c would really be useful here to discover
+                * whether this function is necessary or not.
+                */
+#if 0
+               ao_dma_set_isr(rx_dma_index, ao_i2c_recv_dma_isr);
+#else
+               (void) ao_i2c_recv_dma_isr;
+#endif
                stm_i2c->cr1 = AO_STM_I2C_CR1 | (1 << STM_I2C_CR1_ACK);
                stm_i2c->cr2 = AO_STM_I2C_CR2 |
                        (1 << STM_I2C_CR2_DMAEN) | (1 << STM_I2C_CR2_LAST);
                stm_i2c->cr1 = AO_STM_I2C_CR1 | (1 << STM_I2C_CR1_ACK);
                stm_i2c->cr2 = AO_STM_I2C_CR2 |
                        (1 << STM_I2C_CR2_DMAEN) | (1 << STM_I2C_CR2_LAST);