Re: Regression in audio playback with USB DAC caused by "USB: EHCI: use the new clear_tt_buffer interface"

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

 



On Sun, Nov 15, 2009 at 04:24, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote:
> On Sun, 15 Nov 2009, Javier Kohen wrote:
>
>> > Two later patches, 914b701280a76f96890ad63eb0fa99bf204b961c and
>> > 7a0f0d951273eee889c2441846842348ebc00a2a, actually caused the callback
>> > to be used.  So as long as neither of them is installed, I wouldn't
>> > expect the first one to make any difference.
>> >
>>
>> I don't know what to tell you. The bisect is clear. I know bisect is not
>> perfect for troubleshooting, but unless I messed up really bad in the exact
>> wrong moment, it identifies this patch as the culprit.
>
> Hmm.  If necessary, we can try experimenting with this patch to see
> what happens.  But I can't see how it would cause any difference in
> behavior at all.  Really, all it does is rename a few items and add a
> callback that never gets used.
>
> Not being a big git user myself, I don't always trust the results of
> its bisection searches.  Have you tried manually verifying that
> reverting this patch from a non-working kernel -- with no other
> changes! -- causes it to start working?
>
>> > Can you provide an equivalent trace with the offending patch reverted?
>> >
>> >
>> Sure thing, it's attached to this mail. I've logged it on Debian kernel
>> 2.6.30-5, which is based off 2.6.30.4. From what I see, the main (only?)
>> difference is that the broken version talks to device 5 just when this
>> breaks, while the other doesn't talk to device 5 at all. Device 5 seems to
>> be an internal component of the hub, though I know nothing about USB
>> internals. In a previous e-mail I've included the lsusb output hoping that
>> it could give you more information about this device 5.
>
> The "hub" is actually two hubs ganged in series.  The first (device 3)
> has only two ports, one of which is permanently connected to the second
> (device 5), which has four ports.  The audio device is plugged into one
> of them.
>
> Just out of curiosity, what does a usbmon trace show when you run the
> earliest kernel in the bisection to evoke the problem?  That is, a
> kernel with the patch you identified but not the two follow-on patches.
> I would expect it to be exactly the same as the "working" trace, since
> the patch doesn't cause any extra Clear-TT-Buffer requests to be sent.
>
> For what it's worth, the two usbmon traces don't show any particular
> evidence of any problem at all.  The "working" trace shows a lack of
> messages to device 5 (the hub), as you noticed.  Those messages are
> Clear-TT-Buffer requests, and they are supposed to get sent whenever an
> error occurs in an async transfer to a full- or low-speed device behind
> a high-speed hub (the Clear-TT-Buffer gets sent to the hub; the TT, or
> Transaction Translator, is the component in the hub responsible for
> converting between full speed and high speed).
>
> The errors were the lines like these:
>
> ffff880072773d80 2958351933 S Ci:1:007:0 s a1 83 0200 0300 0002 2 <
> ffff880072773d80 2958352055 C Ci:1:007:0 -32 0
>
> I don't know what "a1 83 0200 0300 0002" means -- some sort of audio
> class-specific request.  At any rate, the device didn't recognize or
> didn't respond to the request (the -32 error code), and that's the
> reason for sending the Clear-TT-Buffer requests.
>
> Thus, the "non-working" trace is actually correct and the "working"
> trace is actually wrong!  But aside from the lack of Clear-TT-Buffer's,
> I didn't notice any particular difference between them.  In particular,
> the audio data continued to be sent.  Whether the device received it is
> another question; with isochronous transfers there's no way to know
> since they aren't acknowledged by the recipient.
>
> Maybe the problem is in the hub, not the in audio device.  That is,
> perhaps it couldn't handle the Clear-TT-Buffer's and stopped relaying
> the audio data.  Have you tried using a different high-speed hub?

I see. That's a likely explanation. However, I don't have any other
USB hubs. I'll see if I can borrow one from work and report back.

Thanks for your time. If there is anything else you'd like me to try
in the meantime, just let me know.

Cheers,
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux