From: Juergen Gross <jgross@suse.com>
To: Gerd Hoffmann <kraxel@redhat.com>
Cc: xen-devel@lists.xensource.com, stefano.stabellini@eu.citrix.com
Subject: Re: [Patch RFC 2/4] usb: add flag to USBPacket to request complete callback after isoc transfer
Date: Fri, 17 Jul 2015 10:44:45 +0200 [thread overview]
Message-ID: <55A8C07D.1010306@suse.com> (raw)
In-Reply-To: <1437120751.3689.14.camel@redhat.com>
On 07/17/2015 10:12 AM, Gerd Hoffmann wrote:
> On Do, 2015-07-16 at 17:47 +0200, Juergen Gross wrote:
>> In order to avoid having to poll for the result of an iso transfer
>> add the possibility to request the "complete" callback which is being
>> used for bulk transfers as well.
>
> Sorry for the late notice (didn't do much usb coding recently and forgot
> about it): We actually _have_ a notification mechanism already:
> usb_wakeup(USBEndpoint *ep, int streamid). That will trigger a
> USBPortOps->wakeup callback in the host adapter emulation.
>
> So, the usb-host change should be as simple as this:
>
> --- a/hw/usb/host-libusb.c
> +++ b/hw/usb/host-libusb.c
> @@ -451,6 +451,7 @@ static void usb_host_req_complete_iso(struct
> libusb_transfer *transfer)
> }
> if (xfer->ring->ep->pid == USB_TOKEN_IN) {
> QTAILQ_INSERT_TAIL(&xfer->ring->copy, xfer, next);
> + usb_wakeup(xfer->ring->ep, 0);
> } else {
> QTAILQ_INSERT_TAIL(&xfer->ring->unused, xfer, next);
> }
Hmm, I can see the benefit of this call to avoid polling.
OTOH I don't see how to find the packages already processed via this
mechanism. To help in my case I'd need:
- the call being made in the else clause
- some way to have a package reference in the endpoint (assuming
to use the bus .endpoint_wakeup callback which is called by
usb_wakeup(), too).
The problem here is that host-libusb.c would call usb_wakeup()
not for each packet, but for each libusb I/O, which is combining
multiple packets given to usb_handle_packet().
Juergen
next prev parent reply other threads:[~2015-07-17 8:44 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-16 15:47 [Patch RFC 0/4] usb, xen: add pvUSB backend Juergen Gross
2015-07-16 15:47 ` [Patch RFC 1/4] usb: support device specification via <bus>-<port> Juergen Gross
2015-07-17 6:59 ` Gerd Hoffmann
2015-07-17 7:32 ` Juergen Gross
2015-07-17 8:28 ` Gerd Hoffmann
2015-07-17 10:06 ` Juergen Gross
2015-07-17 10:23 ` Gerd Hoffmann
2015-07-17 10:25 ` Juergen Gross
2015-07-16 15:47 ` [Patch RFC 2/4] usb: add flag to USBPacket to request complete callback after isoc transfer Juergen Gross
2015-07-17 8:12 ` Gerd Hoffmann
2015-07-17 8:44 ` Juergen Gross [this message]
2015-07-17 9:23 ` Gerd Hoffmann
2015-07-17 10:14 ` Juergen Gross
2015-07-16 15:47 ` [Patch RFC 3/4] xen: introduce dummy system device Juergen Gross
2015-07-16 15:47 ` [Patch RFC 4/4] xen: add pvUSB backend Juergen Gross
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=55A8C07D.1010306@suse.com \
--to=jgross@suse.com \
--cc=kraxel@redhat.com \
--cc=stefano.stabellini@eu.citrix.com \
--cc=xen-devel@lists.xensource.com \
/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.