On Thu, Sep 14, 2023 at 03:06:58AM +0800, Randy Li wrote: > 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. What do you mean by "not available"? I see them in the tree today, why do you think they are not present? > 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. Are you sure that the protocol for these devices allow this? > 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. I don't understand, what is wrong with the information there exactly? Have you tried following the suggestions there? thanks, greg k-h