Re: [PATCH v6 0/9] i2c: document DMA handling and add helpers for it

Wolfram Sang
2017-12-04T21:25:13Z

[-- Attachment #1: Type: text/plain, Size: 2134 bytes --]

On Sat, Nov 04, 2017 at 09:20:00PM +0100, Wolfram Sang wrote:
> So, after revisiting old mail threads, taking part in a similar discussion on
> the USB list, and implementing a not-convincing solution before, here is what I
> cooked up to document and ease DMA handling for I2C within Linux. Please have a
> look at the documentation introduced in patch 7 for details. And to make it
> clear again: The stuff below is opt-in. If host drivers are not updated, they
> will continue to work like before.
>
> While previous versions until v3 tried to magically apply bounce buffers when
> needed, it became clear that detecting DMA safe buffers is too fragile. This
> approach is now opt-in, a DMA_SAFE flag needs to be set on an i2c_msg. The
> outcome so far is very convincing IMO. The core additions are simple and easy
> to understand. The driver changes for the Renesas IP cores became easy to
> understand, too.
>
> Of course, we must now whitelist DMA safe buffers. This series implements it
> for core functionality:
>
> a) for the I2C_RDWR when messages come from userspace
> b) for i2c_smbus_xfer_emulated(), DMA safe buffers are now allocated for
> block transfers
> c) i2c_master_{send|recv} have now a *_dmasafe variant
>
> I am still not sure how we can teach regmap this new flag. regmap is a heavy
> user of I2C, so broonie's opinion here would be great to have. The rest should
> mostly be updating individual drivers which can be done when needed.
>
> All patches have been tested with a Renesas Salvator-X board (r8a7796/M3-W) and
> Renesas Lager board (r8a7790/H2). But more testing is really really welcome.
>
> The branch can be found here:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git renesas/topic/i2c-core-dma-v6
>
> It is planned to land upstream in v4.16 and I want to push it to linux-next
> early after v4.15 to get lots of testing for the core changes.
>
> Big kudos to Renesas Electronics for funding this work, thank you very much!
>
> Regards,
>
> Wolfram

Applied to for-next after fixing some cosmetic checkpatch issues!

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]