All of lore.kernel.org
 help / color / mirror / Atom feed
From: hkran <hkran@linux.vnet.ibm.com>
To: Gerd Hoffmann <kraxel@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 1/3] usb-hub: wakeup on attach
Date: Thu, 10 Nov 2011 11:45:23 +0800	[thread overview]
Message-ID: <4EBB48D3.8030404@linux.vnet.ibm.com> (raw)
In-Reply-To: <1320159390-29797-2-git-send-email-kraxel@redhat.com>

On 11/01/2011 10:56 PM, Gerd Hoffmann wrote:
> When attaching a new device we must send a wakeup request to the root
> hub, otherwise the guest will not notice the new device in case the
> usb hub is suspended.
>
> Signed-off-by: Gerd Hoffmann<kraxel@redhat.com>
> ---
>   hw/usb-hub.c |    1 +
>   1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/hw/usb-hub.c b/hw/usb-hub.c
> index 09c6516..7b47079 100644
> --- a/hw/usb-hub.c
> +++ b/hw/usb-hub.c
> @@ -163,6 +163,7 @@ static void usb_hub_attach(USBPort *port1)
>       } else {
>           port->wPortStatus&= ~PORT_STAT_LOW_SPEED;
>       }
> +    usb_wakeup(&s->dev);
>   }
>
>   static void usb_hub_detach(USBPort *port1)
It seems "attach" works. But the "detach" did not work.
I added over two usbdevice "tablet" and usb_del them. I found sometimes 
the guest did not know that the tablet had been deleted in host when the 
port
's status changed to "suspend".

After I add usb_wake like this in the function usb_hub_detach. the 
problem can be fixed.

static void usb_hub_detach(USBPort *port1)
{
     USBHubState *s = port1->opaque;
     USBHubPort *port = &s->ports[port1->index];

     usb_wakeup(&s->dev);                 
---------------------------------->wakeup when detach
     /* Let upstream know the device on this port is gone */
     s->dev.port->ops->child_detach(s->dev.port, port1->dev);

     port->wPortStatus &= ~PORT_STAT_CONNECTION;
     port->wPortChange |= PORT_STAT_C_CONNECTION;
     if (port->wPortStatus & PORT_STAT_ENABLE) {
         port->wPortStatus &= ~PORT_STAT_ENABLE;
         port->wPortChange |= PORT_STAT_C_ENABLE;
     }
}

  parent reply	other threads:[~2011-11-10  3:45 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-01 14:56 [Qemu-devel] [PULL] usb patch queue Gerd Hoffmann
2011-11-01 14:56 ` [Qemu-devel] [PATCH 1/3] usb-hub: wakeup on attach Gerd Hoffmann
2011-11-02  9:38   ` hkran
2011-11-02 12:56     ` Gerd Hoffmann
2011-11-03  6:01       ` hkran
2011-11-03  8:41         ` Gerd Hoffmann
2011-11-03  9:20           ` hkran
2011-11-10  3:45   ` hkran [this message]
2011-11-22 12:23     ` Gerd Hoffmann
2011-11-01 14:56 ` [Qemu-devel] [PATCH 2/3] usb: change VID/PID for usb-hub and usb-msd to prevent conflict Gerd Hoffmann
2011-11-01 15:29   ` Andreas Färber
2011-11-01 15:40     ` Gerd Hoffmann
2011-11-01 14:56 ` [Qemu-devel] [PATCH 3/3] usb-host: fix host close Gerd Hoffmann
2011-11-01 18:13 ` [Qemu-devel] [PULL] usb patch queue Anthony Liguori

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=4EBB48D3.8030404@linux.vnet.ibm.com \
    --to=hkran@linux.vnet.ibm.com \
    --cc=kraxel@redhat.com \
    --cc=qemu-devel@nongnu.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.