qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [RFC PATCH 0/4] Misc OHCI patches


From: BALATON Zoltan
Subject: Re: [RFC PATCH 0/4] Misc OHCI patches
Date: Sat, 2 Oct 2021 17:42:12 +0200 (CEST)

On Sat, 2 Oct 2021, Howard Spoelstra wrote:
Both have issues communicating with endpoint 4 (the hid controls volume
up/down and mute).
Endpoint 1 should receive the isochronous audio stream, but never does.

After some experimentation with unplugging/plugging the headset and probing
the usb stack (using the usb prober from the mac usb ddk for Mac OS 9.2) at
some point endpoint 4 communication works for both guests tested. Only once
was I able to get sound out and in working in Mac OS 9.2. For OSX I could
only once get audio in working.

The async packets are on endpoint 0. I'm not sure the HID endpoint 4 is normally involved at all unless you push some buttons but it should work without that so maybe look at the 0 and the audio endpoints instead of HID that should have no traffic unless you press buttons.

Pcap and text logs for both MacOS 9.2 and OSX 10.4 tests included...

These are way too big to be possible to find anything in them. Maybe you should do something simpler like boot the guest without the device attached and discard all logs up to that point. Then start collecting logs and attach device and play a short sound. Stop collecting log and try to make sense of where that fails. That's still a lot of traces but should only contain the relevant info of detecing the device and playing a sound not a lot of others that makes it difficult to find what's relevant.

I'm also not sure where's the problem (maybe we have multiple problems). It also does not work with an emulated usb-audio device but that also doesn't work with EHCI so it may have a problem by itself (UHCI also seems to be broken on its own so it does not even work as much as OHCI and EHCI). You've also said it worked with pass through with a different device so maybe this only happens with some devices or some sequence of things these devices are doing. Only allowing one async packet in OHCI instead of allowing one per endpoint is just a guess that could cause delays in processing other packets but eventually it should go through unless one async packet never completes and blocks all later ones or the delays introduced by this limitaion causes things to go in a way that guests don't expect and thus fail.

Regards,
BALATON Zoltan



reply via email to

[Prev in Thread] Current Thread [Next in Thread]