408a8ff36a
pretty much the same strategy as UHCI. This does not leverage the done queue the hardware provides us, but as it saves a lot of other overhead and allows the structures to be smaller I think it is overall worth it. * Removed now unnecessary stuff from the transfer descriptor struct. * Directly acknowledge the done head interrupt as we do not use it either. * Activate control endpoints by removing the skip bit when a transfer is scheduled. * Correct the way the first descriptor is determined (the current tail becomes the first descriptor while the current first descriptor becomes the tail). * Remove the head_logical_descriptor field from the endpoint structure, as this would simply get out of sync with the first td with no real way of updating. * Stub out RemoveTransferFromEndpoint() as this needs reworking. * Correct CreateDescriptorChain() signature and implement the method. * Add ReadDescriptorChain() and ReadActualLength() to process finished transfers. * Prepare for actual data transfers by renaming/regrouping transfer types. * Fully clear out the new tail when switching (for the sake of it) * Add some helpers and definitions to the hardware header. * Add debugging facilities. With all this transfers can now actually be scheduled and they are processed when done. This brings control transfers to a usable state so setting the device address and reading out/setting the configuration works. That means you can now view your device using usb_dev_info, but since any other transfer type besides control transfers isn't implemented yet the device will most probably not yet do anything useful. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25546 a95241bf-73f2-0310-859d-f6bbb57e9c96 |
||
---|---|---|
.. | ||
add-ons | ||
apps | ||
bin | ||
build | ||
data | ||
documentation | ||
kits | ||
libs | ||
preferences | ||
servers | ||
system | ||
tests | ||
tools | ||
Jamfile |