Messages in this thread | | | Date | Tue, 05 Apr 2022 13:09:04 +0200 | From | Michael Walle <> | Subject | Re: [PATCH] i2c: at91: use dma safe buffers |
| |
Am 2022-04-05 12:02, schrieb Codrin.Ciubotariu@microchip.com: > On 05.04.2022 12:38, Michael Walle wrote: >> Am 2022-04-05 11:23, schrieb Codrin.Ciubotariu@microchip.com: >>>> + if (dev->use_dma) { >>>> + dma_buf = i2c_get_dma_safe_msg_buf(m_start, 1); >>> >>> If you want, you could just dev->buf = i2c_get_dma_safe... >> >> But where is the error handling in that case? dev->buf will >> be NULL, which is eventually passed to dma_map_single(). >> >> Also, I need the dma_buf for the i2c_put_dma_safe_msg_buf() >> call anyway, because dev->buf will be modified during >> processing. > > You still: > if (!dev->buf) { > ret = -ENOMEM; > goto out; > } > > So, at91_do_twi_transfer()/dma_map_single() will not be called.
Ahh, I misunderstood you. Yes, but as I said, I need the dma_buf temporary variable anyway, because dev->buf is modified, eg. see at91_twi_read_data_dma_callback().
-michael
| |