-
Notifications
You must be signed in to change notification settings - Fork 349
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PL2303 requires a full implementation of URB_FUNCTION_GET_STATUS_FROM_DEVICE #136
Comments
Thanks for looking at this @cezanne. Here are the text logs and the Wireshark capture: Thanks again for your help. Please do not hesitate to suggest other tests or changes. I'll try to take a look myself as well. |
It seems the "out" URB_FUNCTION_CONTROL_TRANSFER calls that have an empty buffer are not processed properly because there is no buffer but the driver still tries to get it and errors. This gives better results. Here are the logs. Please share your view on this mod and the resulting logs. |
@svirot :
Yes, you're right. By the way, your |
Very good spot @cezanne. These are on the write side, and not the read (my modification were only on the read side). They are actually the replies to the zero-buffer that were fixed with the updated "if" statement. The result of all of this are quite promising as the error on the Prolific driver is now different. I get a "STATUS_DEVICE_POWER_FAILURE" right after the second "CLEAR FEATURE Request/Response". Looking at the debug log shows a "irp will be cancelled" which I'll need to understand and debug. Following that, the driver tries to send a lot of URB_FUNCTION_CONTROL_TRANSFER messages but they all result in a "(EE) Cannot get usbip header". Here is the log, in case you have any suggestion: Thanks for you help! |
@svirot : Please refer #102 (comment). A previously mentioned code did not work correctly. So the code has been fixed as follows: usbip-win/driver/vhci/vhci_read.c Line 566 in 930a1f9
|
@cezanne: Thanks for this fix, not knowing how things work, I was considering the 2 implementation equivalent and picked the wrong one :-). I've also tested it with my implementation of URB_FUNCTION_GET_STATUS_FROM_DEVICE which works as well but also does the "GET STATUS", so I'd encourage you to check that change and see if you want to add as well. Thanks! |
@svirot :
Could you create a pull request for your implementation? |
Yes it does but there is a chance other devices need it. |
Hi all,
i have LTE modem which requires GET_STATUS_FROM_DEVICE.
so if that implementation works with PL2303 I can test it "by" my modem.
Let me known when the PR i created.
Dne so 25. 4. 2020 12:19 uživatel svirot <notifications@github.com> napsal:
… Yes it does but there is a chance other devices need it.
I'll have a look at creating a pull request.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#136 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAQ2XDHYQRFCP3VOV77ZLMDROK2LRANCNFSM4MD24HKA>
.
|
Implemented in b8d86d0. |
@svirot : control_transfer branch is rebased on the master. Could you test it? If passed, I will merge into the master. |
It looks good to me and works with the PL2303, thanks. Should we created a dedicated bugfix commit to replace the 3 remaining |
@svirot: Thanks for information.
Sure, I'll review your another PR. |
Similarly to #6, the PL2303 USB to Serial converter (idVendor 0x067b Prolific Technology, Inc. and
idProduct 0x2303 PL2303 Serial Port) seems to need a URB_FUNCTION_GET_STATUS_FROM_DEVICE to get initialised properly.
Unfortunately, the driver-side fix implemented in 7a92e8e is not enough as the hardware seems to be waiting for the status request (even though it returns 0x0000 as well).
Some Wireshark captures are available: PL2303.zip
The driver debug messages have also been logged: PL2303.LOG
The first difference between the direct and the usbip capture is the lack of "GET STATUS" Request/Response (which is expected as usbip does not implement it). But the "SET CONFIGURATION" that follows receives a different response from the device, probably suggesting that the hardware needs the "GET STATUS" to startup properly (this is only my assumption).
Thanks for your help.
The text was updated successfully, but these errors were encountered: