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

From: Paul Cercueil
Date: Tue Jan 30 2024 - 07:24:05 EST


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(-)

--
2.43.0