All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <gregkh@linuxfoundation.org>
To: Randy Li <ayaka@soulik.info>
Cc: linux-usb@vger.kernel.org,
	Linux Media Mailing List <linux-media@vger.kernel.org>,
	linux-kernel@vger.kernel.org, corbet@lwn.net,
	linux-doc@vger.kernel.org
Subject: Re: USB: DMA: mapping existing buffer is not supported?
Date: Wed, 13 Sep 2023 22:32:12 +0200	[thread overview]
Message-ID: <2023091306-affection-lifter-3d9d@gregkh> (raw)
In-Reply-To: <c0f75cbb-4d5d-0954-4bb6-20a82cfe5e2f@soulik.info>

On Thu, Sep 14, 2023 at 04:09:06AM +0800, Randy Li wrote:
> 
> On 2023/9/14 03:19, Greg KH wrote:
> > 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?
> > 
> usb_buffer_dmasync_sg(), usb_buffer_map(), usb_buffer_dmasync() and usb_buffer_unmap() are all disabled
> by #if 0 in include/usb/usb.h
> 
> usb_buffer_map_sg() and usb_buffer_unmap_sg() are just declaration without definition.

Sorry, I was looking at the usb_sg_* calls, those are there if you want
to use them.

But again, why not just use the normal sg field in the urb itself for
the scatter-gather pointer?  Will that not work for you?

> > > 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?
> Besides my answer to first question, I found no code use them today.

The old-style usb-storage driver uses the usb_sg_* calls, and the uas.c
driver uses the sg fields and provides line-speed transfers (the speed
limit is in the device, not the kernel).

thanks,

greg k-h

  reply	other threads:[~2023-09-13 20:32 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-13 19:06 USB: DMA: mapping existing buffer is not supported? Randy Li
2023-09-13 19:19 ` Greg KH
2023-09-13 20:09   ` Randy Li
2023-09-13 20:32     ` Greg KH [this message]
2023-09-13 21:11       ` Alan Stern

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2023091306-affection-lifter-3d9d@gregkh \
    --to=gregkh@linuxfoundation.org \
    --cc=ayaka@soulik.info \
    --cc=corbet@lwn.net \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.