USB: DMA: mapping existing buffer is not supported?
From: Randy Li
Date: Wed Sep 13 2023 - 15:07:05 EST
Hello
I was trying to understand why USB webcams (UVC) have to copy video data
through the CPU (uvc_video_complete() schedules
uvc_video_copy_data_work() for this purpose). During my investigation, I
noticed that functions like|usb_sg_*() and |usb_buffer_*() are not
available since kernel version 2.6.12.
I can comprehend that USB host controllers such as xHCI, commonly found
in embedded implementations like dwc3, do not support IOMMU. However,
this should not prevent them from operating on a contiguous buffer.
If the USB subsystem can no longer work with existing buffers, I propose
that we consider removing the remaining documentation in the "Working
with existing buffers" section of Documentation/driver-api/usb/dma.rst.
Sincerely
Randy