Software Support > PowerMAME
USB problem isolated!!
RandyT:
--- Quote from: 2600 on March 23, 2006, 08:05:00 am ---
--- Quote from: RandyT on March 23, 2006, 01:06:28 am ---
Perhaps sticking to USB 1.1 hubs on 2.0 cards and 1.1 USB cards when used without a hub would be a pretty safe way to avoid any of these issues. Though, the LED-Wiz seems to work fine connected directly to the VIA 2.0 and perhaps select other 2.0 chipsets.
--- End quote ---
This is what I thought. When you use a 1.1 hub on a 2.0 system, you are connecting to the companion controller of the ECHI. This can be OHCI or UHCI depending on who's chip it is. With Intel and Via you are fine and would be fine without the 1.1 hub as well. If it is someone else's 2.0 chip, then you would connect to the OHCI and could have problems.
--- End quote ---
Well, it appears that the nature if the beast has been identified so it can at least be easily accommodated. I'll take a look at some more things on my end, but folks who aren't having problems, should continue not to have problems unless they change computers / USB hardware and end up connected to the OHCI.
People just need to understand the limits to which the LED-Wiz is pushed from a hardware standpoint. Maybe the addition of a double-buffering FIFO would help the situation, but there probably isn't enough memory or cycles left over to do that without disturbing other functions of the device.
--- Quote ---Also, an addition for the part where I say Control Transfers are more periodic as it can be read a couple of different ways. Control Transfers are scheduled by best effort, which means not synchronous and not guaranteed latency.
--- End quote ---
I went through my documentation again last night and read this as well. This would perfectly explain the "random" behaviour as seen with the affected chipsets. I'm guessing the UHCI handles these transfers in a much less aggressive manner.
But I am still curious as to why the addition of the aforementioned gross between transaction delays did not seem to fix the problem. Unless, as I think Mike had surmised, the transactions were being held in a buffer longer than they perhaps should have been and then released 2 at a time. If this is the case, even though it would technically be "spec legal", it wouldn't sound like a very good way to do things.
RandyT
*edit* typo
2600:
Woops, typed this up before Randy's post above re-edited a little, but not a lot.
Ok, ran my other box with a test last night. The OHCI failed as expected, but transfers were a little different. I switched the view in my analyzer from grouping transfers to grouping transactions so you can easily see what is going on per frame.
Then realized where I think Randy and I were mixing up our bits and bytes while talking and saw why and may of been also because of intermixing terminology, I tend to do that. Also, I was wrong about you getting 32 bytes during the hub example. You are getting 24. setup, data, then the next setup in the hub example.
In the OHCI, example. The transactions are still grouped, setup and data. But the next transfer is not grouped with it. Instead it is just close to the last transfer.
So, I'm not sure if it's one or two problems. Grouping of multiple transactions or transfers together and multiple transfers so close to each other. The UHCI doesn't exhibit this because it doesn't group anything i.e. Much less aggressive. You'll see in the pics.
I'll send Randy and Mike the latest captures with it grouped on transactions so you can see the problems easier. I'll also include a capture of what I think is test 2 and test 3 so you can see what the Mike's fix did. Luckily, I haven't seen any problems during enumeration which is also control transfers. So if that keeps holding true, and the software updated for the accommodations everything should be good.
arzoo:
Just as an FYI, NewEgg.com has a VIA based USB/PCI card for $5.99 (plus $4.99 shipping). It solved my LEDWiz problem!
http://www.newegg.com/product/product.asp?item=N82E16815124007
Navigation
[0] Message Index
[*] Previous page
Go to full version