[v6,0/4] usb: gadget: functionfs: DMABUF import interface

Message ID 20240130122340.54813-1-paul@crapouillou.net
Headers
Series usb: gadget: functionfs: DMABUF import interface |

Message

Paul Cercueil Jan. 30, 2024, 12:23 p.m. UTC
  Hi,

This is the v6 of my patchset that adds a new DMABUF import interface to
FunctionFS.

Given that the cache coherency issue that has been discussed after my
v5 is a tangential problem and not directly related to this new
interface, I decided to drop the dma_buf_begin/end_access() functions
for now - but I'm open to the idea of re-introducing them in a
subsequent patchset.

The patchset was rebased on next-20240129.

Cheers,
-Paul

---
Changelog:
* Drop v5's patches [1/6] and [2/6].
* [3/4]: 
  - Drop use of dma_buf_begin/end_access(). We now make the assumption
    that the devices attached to the DMABUFs must be coherent between
    themselves. The cache coherency issue is a tangential problem, and
    those functions can be re-introduced in a subsequent patchset.
  - Unqueue pending requests on detach. Otherwise, when closing the data
    endpoint the DMABUF will never be signaled.
  - Use list_for_each_entry_safe() in ffs_dmabuf_detach(), because there
    is a list_del() in there.
  - use pr_vdebug() instead of pr_debug()
  - Rename ffs_dmabuf_unmap_work() -> ffs_dmabuf_cleanup()

---
Paul Cercueil (4):
  usb: gadget: Support already-mapped DMA SGs
  usb: gadget: functionfs: Factorize wait-for-endpoint code
  usb: gadget: functionfs: Add DMABUF import interface
  Documentation: usb: Document FunctionFS DMABUF API

 Documentation/usb/functionfs.rst    |  36 ++
 drivers/usb/gadget/Kconfig          |   1 +
 drivers/usb/gadget/function/f_fs.c  | 513 ++++++++++++++++++++++++++--
 drivers/usb/gadget/udc/core.c       |   7 +-
 include/linux/usb/gadget.h          |   2 +
 include/uapi/linux/usb/functionfs.h |  41 +++
 6 files changed, 579 insertions(+), 21 deletions(-)