Commit Graph
14 Commits
Author SHA1 Message Date
Michael Lotz 8fedfdfcf8 * Rewrote some stack internals (again). Everything is now created using a parent object that shares the BusManager and Stack information to reduce individual constructors.
* Don't inherit Device and Interface from pipes anymore. The device has a default pipe member now.
* Since the parent of each Object is now known, we can send control messages using the default pipe of the device from all attached elements (pipes and interfaces).
* Fixed the generic {Set|Clear}Feature() and GetStatus() calls to include the endpoint address for pipe specific requests.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18710 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-30 17:59:23 +00:00
Michael Lotz 1bad4a4ef9 * Fixed queue_isochronous in USB3.h to match the actual v3 API.
* Changed the usb module accordingly. Isochronous is all still left ToDo though.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18700 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-29 18:25:34 +00:00
Michael Lotz ffe3f107c4 * Redisigned some of the USB Stack. Unified constructors, removed redundant functions and moved some other functions around
* Implemented the EHCIRootHub
* Reworked UHCIRootHub to be more of a utility class and moved the actual work into the UHCI BusManager
* Implemented port reset in EHCI. Ports with low and fullspeed devices are now correctly handed over to the companion host controller.

Attachs and detachs as well as port resetting / enabling works now in EHCI. Only the actual data transfers are missing thereafter ;-)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18656 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-28 00:43:10 +00:00
Michael Lotz 02ce23a1ad * Unified and disabled TRACEing for the usb stack and uhci hcd
* Fixed warnings
* Some cleanup
* Added myself as an author to some files

No functional changes.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18614 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-24 20:18:29 +00:00
Michael Lotz 1e8c0b3649 * Implemented iovec based data handling in Transfer and UHCI
* Implemented QueueBulkV of the v3 API that uses it

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18540 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-20 01:07:15 +00:00
Michael Lotz 5b0ec61f97 * Added USB API Version 3. It's put into USB3.h while the v2 API resides in USB2.h. USB.h just includes USB2.h for now.
* Rewrote both headers on the way.
* The usb module now exports both, the v2 and v3 module_info.
* Changed the internals of the USB Stack to give out usb_ids instead of opaque handles to internal classes.
* Cleaned up some more of the Stack by moving members into other classes and removing unused stuff.
* Updated the usb_raw driver from v2 to v3 API.

Since both usb_hid (which still uses the v2 API) and usb_raw (which now uses the v3 API) work, I'd call it a success ;-)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18539 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-19 23:09:05 +00:00
Michael Lotz 64f3c06503 Implemented a usb_ioctl to retrive the logical device name (like 0/0, 0/1/0 or 1/hub) that will be used by usb_raw to publish the according devfs entries.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18515 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-16 20:07:24 +00:00
Michael Lotz 49617128ca * Fixed data toggle handling. It must be taken after the transfer finished and from the last transmitted transfer descriptor (which in case of a short packet is not neccessarily the last descriptor of the chain)
* Moved convenience endpoint requests from ControlPipe to Pipe

With this change, bulk transfers are fairly stable now. See here for evidence: http://haiku.mlotz.ch/haiku-usb01.png ;). Those are pictures from my Canon Digital Ixus 750 downloaded with Exposure using the PTP plugin. I of course navigated Haiku with my USB Logitech iFeel mouse which works nice since some days.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18510 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-14 19:26:51 +00:00
Michael Lotz f1020a6c49 * Changed the Stack lock to a benaphore
* Removed some debug output from UHCI
* Added some debug output to the usb module instead ;)
* Rewrote the way new devices are attached and ports are handled (now more similar to FreeBSD)
* Corrected handling of port resets so that they should work on hubs too
* Cleaned up some headers

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18499 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-12 21:07:34 +00:00
Michael Lotz b8c6a85136 * Implemented most of the USB module public API (using opaque handles like in R5 will change that to using IDs later)
* Fixed the UHCI root hub and the hub implementation. Interface and endpoint descriptors are part of the configuration descriptor, they cannot be requested individually.
* Added simple support for interrupt and bulk transfers to UHCI. It's enough to get my USB mouse working to a stable and usable degree.
* Cleaned up and reworked some other parts, added allocation checks and such.

Yes, my internet connection is back up :)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18496 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-12 12:49:45 +00:00
Michael Lotz 96da8285b0 Applying style to remaining classes. No functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17624 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-28 23:29:06 +00:00
Niels Sascha Reedijk 1a2e81b52c Summary: Merge in changes in busses / bus-manager loading
Keywords:

Patches applied:

 * [email protected]/usb-busmanager--development--0.1--patch-24
   Rename AllocArea to AllocateArea for consistency

 * [email protected]/usb-busmanager--development--0.1--patch-25
   Make the memory allocation routines more global and share it with the hc

 * [email protected]/usb-busmanager--development--0.1--patch-26
   Change from uint32 to addr_t to be safe on 64 bit in the future

 * [email protected]/usb-busmanager--development--0.1--patch-27
   AllocateChunk returns an area_id

 * [email protected]/usb-busmanager--development--0.1--patch-28
   Really fixing AllocateChunk now

 * [email protected]/usb-busmanager--development--0.1--patch-29
   Fix a bug where data was uninitialised when used and load debug symbols

 * [email protected]/usb-busmanager--development--0.1--patch-30
   Integrate host_controller.h

 * [email protected]/usb-busmanager--development--0.1--patch-31
   Many changes to accomodate for new bus_manager handling


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8421 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-07-19 10:18:35 +00:00
Niels Sascha Reedijk 7ce4cf0866 Summary: Merged with development branch (nielx)
Patches applied:

 * [email protected]/usb-busmanager--development--0.1--patch-22
   Update/add licence header


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7689 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-05-30 06:50:18 +00:00
Niels Sascha Reedijk 1501c2bf3e This is just an outline of the USB stack: what it is going to look like. It is definately not
ready for testing. Also the documentation is far from complete (it's in it's early phases).
Unfortunately I don't have enough experience in hardware programming to prototype
it first, so I'll be testing the things that I design in the document.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4275 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-12 20:36:24 +00:00