On Thu, Sep 14, 2023 at 03:06:58AM +0800, Randy Li wrote:usb_buffer_dmasync_sg(), usb_buffer_map(), usb_buffer_dmasync() and usb_buffer_unmap() are all disabled
HelloWhat do you mean by "not available"? I see them in the tree today, why
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.
do you think they are not present?
I thought that is what hcd_buffer_alloc() does.I can comprehend that USB host controllers such as xHCI, commonly found inAre you sure that the protocol for these devices allow this?
embedded implementations like dwc3, do not support IOMMU. However, this
should not prevent them from operating on a contiguous buffer.
Besides my answer to first question, I found no code use them today.
If the USB subsystem can no longer work with existing buffers, I proposeI don't understand, what is wrong with the information there exactly?
that we consider removing the remaining documentation in the "Working with
existing buffers" section of Documentation/driver-api/usb/dma.rst.
Have you tried following the suggestions there?
thanks,
greg k-h