History log of /haiku-fatelf/src/add-ons/kernel/busses/usb/ohci_hardware.h
Revision Date Author Comments
# 2b883e19 06-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

Fix compilation of OHCI on x86.

Fixes were needed to go with the USB stack changes. Haven't tested it
yet because I don't have a a machine with OHCI, but I doubt there
will be any problems.


# 16d113f9 10-May-2011 Jérôme Duval <korli@users.berlios.de>

fix typo


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41423 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1dd6c50c 14-Sep-2009 Michael Lotz <mmlr@mlotz.ch>

When submitting transfers there is a race condition between adding the pending
transfer to the transfer list and scheduling the transfer descriptors on the
controller by switching the endpoint tail. Since we only check that the endpoint
head is equal to the endpoint tail to conclude that there are no active
transfers, we need to ensure that we don't accidently do that check before the
transfer descriptors are scheduled. Otherwise we could happen to processed a not
yet started transfer and finishing it before an actual transfer has taken place.
This would then lead to 0 byte transfers and toggle mismatches. To fix this we
now protect the transfer addition and tail switching as well as the check in the
finisher with a per-endpoint mutex. Note that we allocate the lock on the heap
and only store the pointer in the endpoint structure as this one is allocated
from the precious physical memory pool. Could fix #4067.
Also switched the Jamfile to UsePrivateKernelHeaders (for the MutexLocker) and
removed BeOS compatibility.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33129 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a5a72836 18-May-2008 Michael Lotz <mmlr@mlotz.ch>

* Build the interrupt tree the same (imperfect) way as in EHCI to conserve
on resources but still satisfy the scheduling policy. This works well, but
effectifly limits the bandwidth available as the interrupts aren't spread
across different frames.
* Implement finding the interrupt endpoint head for a certain interval.
* Deactivate endpoints that are going away until removing them is implemented.
* Allow short packets for all data phases.
* Disable tracing by default.

There you go, interrupt transfers should work as well. Should enable mice,
keyboards, hubs and other devices that use interrupt pipes. Note that it's
still easily possible that a single failed request will hang an endpoint and
prevent a device from working.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25554 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 408a8ff3 18-May-2008 Michael Lotz <mmlr@mlotz.ch>

* Completely rework how transfer finishing is implemented. It is now using
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


# a9d7e87d 17-May-2008 Michael Lotz <mmlr@mlotz.ch>

* Implement "tail switching" so that a new transfer descriptor chain can be
appended to an endpoint descriptor without locking/disabling the endpoint.
* Correct the direction of the data phase of a control transfer.
* Some minor cleanup.

Control requests without data phase (set address for example) might actually
work now, but this is still untested.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25541 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 20bbb1bf 18-May-2008 Michael Lotz <mmlr@mlotz.ch>

* Make the operational register memory a uint8 * instead of a uint32 * so the
driver has at least a chance of working (it previously always used wrong
offsets for register access).
* Remove the hash approach for now (I'm going to explore a few other ways of
doing that first).
* Reorder some stuff and check for errors in some more places.
* More cleanup (mostly whitespace again).

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25538 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fd1e6f2b 16-May-2008 Michael Lotz <mmlr@mlotz.ch>

* Getting familiar with the existing code
* Cleanup (whitespace, nameing, code style)
* Move around methods so they match the header order
* Fix some obvious stuff
* Initialize all members
* Sync roothub code (this will be reworked to a common roothub)
* Only minor functional changes (to the worse for now)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25527 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5f061e0b 24-Jan-2008 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* More work on the finisher thread
* Reworked SubmitTrasfer method
* Implemented CancelQueuedTransfers
* Minor clean up


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23722 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 27d7771a 22-Jan-2008 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Renamed fFinishTransfer to fLastTransfer (I don't even know why I called it
so in the first place)
* Renamed local variable descriptor to current in the finisher thread
* Using next_done_descriptor instead of next_logical_descriptor, as the latest
is used to keep track of all descriptors that belongs to the transfer
* Added _UnlinkTransfer private method
* Implemented _FreeDescriptorChain
* Moved endpoint pointer from the ohci_general_td structur to the transfer_data_s
structure, ad the ohci_general_td has already a transfer_data_s pointer which can
be used to the endpoint pointer reducing ridundancy.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23701 a95241bf-73f2-0310-859d-f6bbb57e9c96


# acf9124f 17-Jan-2008 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Added definition for the hash related methods (not implemented)
* Continue working in the _FinishTransfer thread
* added next_done_descriptor in ohci_[general|isochronous]_td structure in order to handle
collisions.
* added next_logical_descriptor to ohci_isochronous_td structure



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23594 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4cfc1fee 17-Jan-2008 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Added hash function and related data in order to find the virtual address
of the descriptor from its physical address returned by the controller.

NOTE: As stated in the commented code, when the controller has finished processing
some descriptors, it returns the first element physical address of an heterogeneous list
(general + isochronous) and there is not way to tell the descriptor type.
This solution, which implementes two hash tables (one for generic descriptors and
one for isochronous) is the one adopted from *BSD.
If somebody has better idea, please let me know. :)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23589 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d98bdb30 06-Jan-2008 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Started working on the finisher thread
* Added some TRACE calls in the _InterruptHandler


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23266 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 01489ae0 20-Nov-2007 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Remove SubmitAsyncTransfer and SubmitPeriodicTransfer
* Added _SubmitControlRequest (almost implemented), _LinkDescriptors, _WriteDescriptorChain (basically copied from EHCI, and UHCI)
* Renamed ohci_general_descriptor to ohci_general_td, and ohci_isochronous_descriptor to ohci_isochronous_td
* Finished _CreateGeneralDescriptor and _FreeGeneralDescriptor
* Added buffer_size member to ohci_general_td instead and removed last_logical_byte_address as it looked unnecessary
* minor clean up


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22968 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4ff17443 17-Nov-2007 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Implemented _InsertEndpointForPipe
* usual clean up


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22938 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ca73cdd6 14-Nov-2007 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Renamed some variables
* Reworking the interrupts endpoints tree parts
* Added spin_locker, semaphore, finisher thread and interrupt handler (not implemented)
* Made fInterruptEndpoints allocation dynamic instead of static
* Fixed Start method (it should be correct now)




git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22927 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9d211eb1 25-Oct-2007 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Removed endpoint and descriptor wrappers, everything is in the related structure like it's done in the uhci driver.
* Clean up continues


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22733 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dfd1357a 20-Oct-2007 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Rewrote part of the constructor: most of the code is ported from FreeBSD
* Usual clean up


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22625 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2907d85a 19-Oct-2007 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Renaming macros


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22624 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f82eb041 14-Oct-2007 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* License changed: I've successfully contacted Jan-Rixt Van Hoye, and he gave me his bless :)
* Usual clean up


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22555 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1b442f19 13-Oct-2007 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Revert Copyright


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22527 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 46a41c43 12-Oct-2007 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Clean up (removing unneeded comment)
* Renaming, fixing coding guidelines
* Re-writing AddTo method
* Removing ohci_software.h file (its content has been moved to ohci.h) but it will probably be deleted in the future.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22522 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 04394283 02-Oct-2006 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Implemented endpoint creation for Pipes.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18986 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2159acc7 25-Sep-2006 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Implemented most of the roothub.

There remains only one issue: reading the Port registers seem to return a bogus value (0). I need to find out what's causing it.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18918 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 915367e3 31-Aug-2006 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Wrote the initialisation routine of the host controller
* Started cleaning up the style (WIP)
* I'll slowly phase out ohci_software.h, since it is BSD legacy
* Cleanup other BSD inspired naming. I like full names.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18723 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 34314b98 28-Aug-2006 Niels Sascha Reedijk <niels.reedijk@gmail.com>

First commit to show that work on the ohci bus has restarted.
It doesn't do anything yet, but it allocates the io registers properly and
now the values that are returned when reading it make sense.

More to come...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18673 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5a072ced 14-Mar-2005 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Quick merge of my development branch with mainline (for SVN switch).
The OHCI stuff was done by Jixt (thanks)./installusb
All is still very much work in progress

Patches applied:

* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--base-0
tag of Niels.Reedijk@gmail.com--haiku-2005/usb-busses--mainline--0.1--base-0

* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-1
Set the PORT_STATUS_LOW_SPEED flag correctly (using the register bitflag for low speed devices, instead of the proper lowspeed flag)

* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-2
Clean up transfers when they're done

* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-3


* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-4


* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-5


* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-6


* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-7
Remove obsolete ehci.c

* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-8


* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-9
Completed memory allocation + initialization

* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-10
First attempt at performing control transfers - failed miserably

* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-11
Trying to read a 16bit value into a 8bit integer, stupid

* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-12
nicer way of getting the base io address

* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-13
Take over control from BIOS

* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-14
Revert change for disabling USB BIOS support


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11743 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2b883e1977b1c420935c80b6fb9eb0067f112301 06-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

Fix compilation of OHCI on x86.

Fixes were needed to go with the USB stack changes. Haven't tested it
yet because I don't have a a machine with OHCI, but I doubt there
will be any problems.


# 16d113f9e5dc24440955d7c1c0b31e278f3f2ed9 10-May-2011 Jérôme Duval <korli@users.berlios.de>

fix typo


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41423 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1dd6c50cb3cdbcfe254d9b60f04bbfad100e6848 14-Sep-2009 Michael Lotz <mmlr@mlotz.ch>

When submitting transfers there is a race condition between adding the pending
transfer to the transfer list and scheduling the transfer descriptors on the
controller by switching the endpoint tail. Since we only check that the endpoint
head is equal to the endpoint tail to conclude that there are no active
transfers, we need to ensure that we don't accidently do that check before the
transfer descriptors are scheduled. Otherwise we could happen to processed a not
yet started transfer and finishing it before an actual transfer has taken place.
This would then lead to 0 byte transfers and toggle mismatches. To fix this we
now protect the transfer addition and tail switching as well as the check in the
finisher with a per-endpoint mutex. Note that we allocate the lock on the heap
and only store the pointer in the endpoint structure as this one is allocated
from the precious physical memory pool. Could fix #4067.
Also switched the Jamfile to UsePrivateKernelHeaders (for the MutexLocker) and
removed BeOS compatibility.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33129 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a5a728361ccfdf83dcf89fa7a6f86b8f197b6e80 18-May-2008 Michael Lotz <mmlr@mlotz.ch>

* Build the interrupt tree the same (imperfect) way as in EHCI to conserve
on resources but still satisfy the scheduling policy. This works well, but
effectifly limits the bandwidth available as the interrupts aren't spread
across different frames.
* Implement finding the interrupt endpoint head for a certain interval.
* Deactivate endpoints that are going away until removing them is implemented.
* Allow short packets for all data phases.
* Disable tracing by default.

There you go, interrupt transfers should work as well. Should enable mice,
keyboards, hubs and other devices that use interrupt pipes. Note that it's
still easily possible that a single failed request will hang an endpoint and
prevent a device from working.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25554 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 408a8ff36a2514df0dcdc2cefe0daa7ad0972f41 18-May-2008 Michael Lotz <mmlr@mlotz.ch>

* Completely rework how transfer finishing is implemented. It is now using
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


# a9d7e87d40decf63c52a13f553955b0865f45a48 17-May-2008 Michael Lotz <mmlr@mlotz.ch>

* Implement "tail switching" so that a new transfer descriptor chain can be
appended to an endpoint descriptor without locking/disabling the endpoint.
* Correct the direction of the data phase of a control transfer.
* Some minor cleanup.

Control requests without data phase (set address for example) might actually
work now, but this is still untested.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25541 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 20bbb1bf28b5ccd3fcda07e27f0dd24c62fbe71d 18-May-2008 Michael Lotz <mmlr@mlotz.ch>

* Make the operational register memory a uint8 * instead of a uint32 * so the
driver has at least a chance of working (it previously always used wrong
offsets for register access).
* Remove the hash approach for now (I'm going to explore a few other ways of
doing that first).
* Reorder some stuff and check for errors in some more places.
* More cleanup (mostly whitespace again).

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25538 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fd1e6f2b375d31347be55e2b1924618f9055711f 16-May-2008 Michael Lotz <mmlr@mlotz.ch>

* Getting familiar with the existing code
* Cleanup (whitespace, nameing, code style)
* Move around methods so they match the header order
* Fix some obvious stuff
* Initialize all members
* Sync roothub code (this will be reworked to a common roothub)
* Only minor functional changes (to the worse for now)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25527 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5f061e0b6b5e64775404c84b3a814f7b5e0d4f5d 24-Jan-2008 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* More work on the finisher thread
* Reworked SubmitTrasfer method
* Implemented CancelQueuedTransfers
* Minor clean up


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23722 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 27d7771a1ec1b6cd2ce5635cfc1f6f9a377bb153 22-Jan-2008 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Renamed fFinishTransfer to fLastTransfer (I don't even know why I called it
so in the first place)
* Renamed local variable descriptor to current in the finisher thread
* Using next_done_descriptor instead of next_logical_descriptor, as the latest
is used to keep track of all descriptors that belongs to the transfer
* Added _UnlinkTransfer private method
* Implemented _FreeDescriptorChain
* Moved endpoint pointer from the ohci_general_td structur to the transfer_data_s
structure, ad the ohci_general_td has already a transfer_data_s pointer which can
be used to the endpoint pointer reducing ridundancy.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23701 a95241bf-73f2-0310-859d-f6bbb57e9c96


# acf9124f1b49d095c7ea2a198f78a2105b49c027 17-Jan-2008 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Added definition for the hash related methods (not implemented)
* Continue working in the _FinishTransfer thread
* added next_done_descriptor in ohci_[general|isochronous]_td structure in order to handle
collisions.
* added next_logical_descriptor to ohci_isochronous_td structure



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23594 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4cfc1fee3e724c8c63534bc04b6476446504b7e3 17-Jan-2008 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Added hash function and related data in order to find the virtual address
of the descriptor from its physical address returned by the controller.

NOTE: As stated in the commented code, when the controller has finished processing
some descriptors, it returns the first element physical address of an heterogeneous list
(general + isochronous) and there is not way to tell the descriptor type.
This solution, which implementes two hash tables (one for generic descriptors and
one for isochronous) is the one adopted from *BSD.
If somebody has better idea, please let me know. :)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23589 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d98bdb30bcb05395231e26e7940dbb304a2c9b91 06-Jan-2008 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Started working on the finisher thread
* Added some TRACE calls in the _InterruptHandler


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23266 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 01489ae0603b930a2c14352c24138ca12c33a2d8 20-Nov-2007 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Remove SubmitAsyncTransfer and SubmitPeriodicTransfer
* Added _SubmitControlRequest (almost implemented), _LinkDescriptors, _WriteDescriptorChain (basically copied from EHCI, and UHCI)
* Renamed ohci_general_descriptor to ohci_general_td, and ohci_isochronous_descriptor to ohci_isochronous_td
* Finished _CreateGeneralDescriptor and _FreeGeneralDescriptor
* Added buffer_size member to ohci_general_td instead and removed last_logical_byte_address as it looked unnecessary
* minor clean up


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22968 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4ff174438e3938700c661ca1bf6b400e9138a1db 17-Nov-2007 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Implemented _InsertEndpointForPipe
* usual clean up


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22938 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ca73cdd62fbfb79e407aba0b4372ac76a6be09dc 14-Nov-2007 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Renamed some variables
* Reworking the interrupts endpoints tree parts
* Added spin_locker, semaphore, finisher thread and interrupt handler (not implemented)
* Made fInterruptEndpoints allocation dynamic instead of static
* Fixed Start method (it should be correct now)




git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22927 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9d211eb10403b899571ca239c00a90f6fcc8b65e 25-Oct-2007 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Removed endpoint and descriptor wrappers, everything is in the related structure like it's done in the uhci driver.
* Clean up continues


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22733 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dfd1357ad21f447892ab9a25a7b21dbc7333b1cf 20-Oct-2007 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Rewrote part of the constructor: most of the code is ported from FreeBSD
* Usual clean up


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22625 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2907d85a71db87392a4db4deef85c3710127d485 19-Oct-2007 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Renaming macros


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22624 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f82eb0415aab313596ee8de85004c1eed22fb3dc 14-Oct-2007 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* License changed: I've successfully contacted Jan-Rixt Van Hoye, and he gave me his bless :)
* Usual clean up


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22555 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1b442f19197e315955fc4948a1e9109501abac79 13-Oct-2007 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Revert Copyright


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22527 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 46a41c432c78ffede0165f705000468672bbd681 12-Oct-2007 Salvatore Benedetto <salvatore.benedetto@gmail.com>

* Clean up (removing unneeded comment)
* Renaming, fixing coding guidelines
* Re-writing AddTo method
* Removing ohci_software.h file (its content has been moved to ohci.h) but it will probably be deleted in the future.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22522 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 04394283560c099f04d3816286635ec6f436b709 02-Oct-2006 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Implemented endpoint creation for Pipes.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18986 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2159acc7d9492bb23888c5f4a8664d49ff91f371 25-Sep-2006 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Implemented most of the roothub.

There remains only one issue: reading the Port registers seem to return a bogus value (0). I need to find out what's causing it.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18918 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 915367e31aea39fe40ae3239dc7fcc738aebf039 31-Aug-2006 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Wrote the initialisation routine of the host controller
* Started cleaning up the style (WIP)
* I'll slowly phase out ohci_software.h, since it is BSD legacy
* Cleanup other BSD inspired naming. I like full names.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18723 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 34314b980333eb800f399d2970743f9b88d0bbf8 28-Aug-2006 Niels Sascha Reedijk <niels.reedijk@gmail.com>

First commit to show that work on the ohci bus has restarted.
It doesn't do anything yet, but it allocates the io registers properly and
now the values that are returned when reading it make sense.

More to come...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18673 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5a072ced7588fd5525ca52d9ce1d45a2d0786b2d 14-Mar-2005 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Quick merge of my development branch with mainline (for SVN switch).
The OHCI stuff was done by Jixt (thanks)./installusb
All is still very much work in progress

Patches applied:

* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--base-0
tag of Niels.Reedijk@gmail.com--haiku-2005/usb-busses--mainline--0.1--base-0

* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-1
Set the PORT_STATUS_LOW_SPEED flag correctly (using the register bitflag for low speed devices, instead of the proper lowspeed flag)

* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-2
Clean up transfers when they're done

* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-3


* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-4


* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-5


* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-6


* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-7
Remove obsolete ehci.c

* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-8


* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-9
Completed memory allocation + initialization

* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-10
First attempt at performing control transfers - failed miserably

* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-11
Trying to read a 16bit value into a 8bit integer, stupid

* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-12
nicer way of getting the base io address

* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-13
Take over control from BIOS

* Niels.Reedijk@gmail.com--nielx-2005/usb-busses--development--0.1--patch-14
Revert change for disabling USB BIOS support


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11743 a95241bf-73f2-0310-859d-f6bbb57e9c96