Re: [Regression] xhci: some hard drives cannot be seen using a JMicron JMS56x enclosure

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

 



On 06.03.2018 04:24, Cyril Roelandt wrote:
Hi,

On 02/28/18 15:55, Mathias Nyman wrote:

I have a series of even more custom debugging patches.
attached patches apply on 4.13, but seris for both 4.13 and 4.15 can be found in the
streams-debug-4.13 and streams-debug-4.15 branches at

git://git.kernel.org/pub/scm/linux/kernel/git/mnyman/xhci.git
https://git.kernel.org/pub/scm/linux/kernel/git/mnyman/xhci.git

Can I ask you to do take logs with these?
no need for the previous diff, it's included

I applied your three patches on top of v4.13 and got the followings logs:

dmesg:

...
151.747272: xhci_get_hw_deq: ep_index 6 stream_id 1 deq 00000001bd377133
...
151.747288: xhci_queue_trb: CMD: Set TR Dequeue Pointer Command: deq 00000001bd377143 stream 1 slot 2 ep 7 flags C
...
151.747351: xhci_get_hw_deq: ep_index 6 stream_id 2 deq 00000001bd377143



I hope this helps,
Cyril Roelandt.


Thanks, It does
To me it looks like there is a issue with setting the dequeue pointer of a stream if
another stream was active while the endpoint stopped.

Basically if we want to cancel a URB on Stream 1, meaning stop entire endpoint with all its streams,
and then move stream 1 dequeue pointer forward, we end up setting the dequeue pointer of stream 2
as well. Probably because stream 2 was the active stream when the endpoint was stopped.

I can try to write a workaround that sets dequeue pointers for both the stream we want, and
the current active stream for each URB canceling.

Thanks
Mathias --
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