Bug 1025743 - USB tablet device does't work when USB bus is defined as EHCI (instead of the default one)
Summary: USB tablet device does't work when USB bus is defined as EHCI (instead of the...
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: qemu-kvm
Version: 6.4
Hardware: All
OS: Linux
high
high
Target Milestone: rc
: ---
Assignee: Virtualization Maintenance
QA Contact: Virtualization Bugs
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-11-01 12:26 UTC by Juan Rodriguez
Modified: 2018-12-03 20:32 UTC (History)
11 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2013-11-11 09:01:43 UTC
Target Upstream Version:


Attachments (Terms of Use)
libvirt ehci setup (794 bytes, text/plain)
2013-11-11 09:01 UTC, Gerd Hoffmann
no flags Details

Description Juan Rodriguez 2013-11-01 12:26:57 UTC
Description of problem:

When you modify xml VM definition file and introduce a USB EHCI bus definition like http://pastebin.gsslab.fab.redhat.com/mypaste/W7jd/, USB tablet doesn't work and it's not possible to start the VM.


Version-Release number of selected component (if applicable):
qemu-kvm version package: 0.12.1.2-2.255.el6_4.9
libvirt-0.10.2-18.el6_4.14
kernel version 2.6.32-358.23.2.el6.x86_64

How reproducible:
Create passthrough setup similar to the one mentioned in the pastebin link

Actual results:
Table device fails to work with error when this passthrough is defined

Expected results:
It should work

Additional info:
Logs are attached in attachments

Comment 1 Sibiao Luo 2013-11-11 03:32:58 UTC
Reproduce this issue on qemu-kvm-0.12.1.2-2.415.el6.x86_64 that passthrough usb tablet device doesn't work well with EHCI controller. If used uhci controller to test that worked well. 
BTW, i don't think there is bugging here, as QEMU has gave speed mismatch warning message for your using wrong controller, this suggestion that you should use the 1.1 UHCI controller for the low speed device i think.

host info:
# uname -r && rpm -q qemu-kvm
2.6.32-425.el6.x86_64
qemu-kvm-0.12.1.2-2.415.el6.x86_64

Steps:
1.insert a usb mouse to host, get the vendorid and productid info.
# lsusb | grep USB
Bus 002 Device 003: ID 046d:c06a Logitech, Inc. USB Optical Mouse
2.passthroug the usb mouse to guest with EHCI controller.
e.g:...-device usb-ehci,id=ehci -device usb-host,vendorid=046d,productid=c06a,port=1

Results:
after step 2, there are many speed mismatch warning message prompt in HMP monitor, and the passthrough usb mouse can't work in guest.
(qemu) info usb
  Device 0.0, Port 1, Speed 1.5 Mb/s, Product USB Host Device
(qemu) c
husb: open device 2.3
husb: grabbed usb device 2.3
Warning: speed mismatch trying to attach usb device USB Optical Mouse to bus ehci.0

(qemu) husb: open device 2.3
husb: grabbed usb device 2.3
qemu-kvm: Warning: speed mismatch trying to attach usb device USB Optical Mouse to bus ehci.0

husb: open device 2.3
husb: grabbed usb device 2.3
qemu-kvm: Warning: speed mismatch trying to attach usb device USB Optical Mouse to bus ehci.0


(qemu) info usb
  Device 0.0, Port 1, Speed 1.5 Mb/s, Product USB Optical Mouse

Base on above, i make qa_ack+ this issue first, please correct me if any mistake.

Best Regards,
sluo

Comment 2 Sibiao Luo 2013-11-11 03:49:27 UTC
(In reply to Sibiao Luo from comment #1)
> BTW, i don't think there is bugging here, as QEMU has gave speed mismatch
> warning message for your using wrong controller, this suggestion that you
> should use the 1.1 UHCI controller for the low speed device i think.
> 
According above, i should remove the qa_ack+ first, this maybe not a bug form QE side. Gerd Hoffmann, could you help check this issue, thanks in advance.

Best Regards,
sluo

Comment 3 Gerd Hoffmann 2013-11-11 09:01:06 UTC
Created attachment 822323 [details]
libvirt ehci setup

Tablet is a usb1.1 device and doesn't work with ehci (usb 2.0 controller).

If you need a usb bus which can handle both 1.1 and 2.0 devices you'll need
a bunch of uhci companion controllers for the ehci controller.  The attachment
shows how to configure this in libvirt.


Note You need to log in before you can comment on or make changes to this bug.