Commit graph

254 commits

Author SHA1 Message Date
Johannes Anderwald a594afcd76 [USBOHCI]
- Revert previous revision

svn path=/branches/usb-bringup-trunk/; revision=55230
2012-01-27 02:12:32 +00:00
Johannes Anderwald 972bb5254a [USBOHCI]
- Fix setting device address

svn path=/branches/usb-bringup-trunk/; revision=55229
2012-01-27 02:09:18 +00:00
Cameron Gutman bad9585013 [USBHUB_NEW]
- Fix buffer overflow for composite devices

svn path=/branches/usb-bringup-trunk/; revision=55228
2012-01-27 02:02:11 +00:00
Cameron Gutman f0363e1cc1 [USBEHCI_NEW]
- Disable debug spam

svn path=/branches/usb-bringup-trunk/; revision=55225
2012-01-26 20:25:12 +00:00
Cameron Gutman bc7a50b969 [USBSTOR]
- Set the correct transfer direction value in the CBW
- Fixes the infamous system hang that occurred when writing to a USB drive

svn path=/branches/usb-bringup-trunk/; revision=55223
2012-01-26 20:02:42 +00:00
Cameron Gutman 38758cfacb [USBSTOR]
- USBD_SHORT_TRANSFER_OK is only a valid flag if USBD_TRANSFER_DIRECTION_IN is also set 

svn path=/branches/usb-bringup-trunk/; revision=55222
2012-01-26 19:30:46 +00:00
Johannes Anderwald 8f792f3587 [USBCCGP]
- Implement querying device relations for FDO
- Implement creating device objects for each discovered function
- Invalidate device relations after the child pdo have been created
- Implement PDO device relations, most of query id, query device capabilities, start device
- USBCCGP should now initialize and create the child pdos
- Next is device control handling
- WIP, untested

svn path=/branches/usb-bringup-trunk/; revision=55219
2012-01-26 19:11:44 +00:00
Johannes Anderwald 2d7c9100e1 [USBCCGP]
- Query bus interface and check if USBC_DEVICE_CONFIGURATION_INTERFACE_V1 is supported. This interface is implemented by attached usb filter drivers and is used to enumerate functions of the composite usb device 
- Implement enumeration of function by using usb interface association descriptors and by the USBC_DEVICE_CONFIGURATION_INTERFACE_V1
- Needs audio legacy method and union function descriptors to be fully functional
- WIP, not yet tested
- Fix build with mingw by declaring _DISK_GEOMETRY_EX outside the function


svn path=/branches/usb-bringup-trunk/; revision=55197
2012-01-26 13:45:59 +00:00
Cameron Gutman b4c6fa3b4c [USBOHCI]
- Wait the required time for the port to be ready after powering it up

svn path=/branches/usb-bringup-trunk/; revision=55196
2012-01-26 04:35:04 +00:00
Johannes Anderwald 1cede4f077 [USBCCGP]
- Start implement USB Composite generic parent driver which is used for USB composite devices
- Start implement FDO initialization, needs to implement parsing of usb interface assocaition descriptor to complete FDO initialization

svn path=/branches/usb-bringup-trunk/; revision=55195
2012-01-26 03:42:56 +00:00
Cameron Gutman c60ff01cc6 [USBOHCI]
- Properly dismiss the enable status changed interrupt to avoid an interrupt storm after a device is disconnected

svn path=/branches/usb-bringup-trunk/; revision=55189
2012-01-26 01:46:06 +00:00
Cameron Gutman 334c9ed261 [USBEHCI]
- Fix GetPortStatus() and remove the cached status stuff (except for reset that we have to cache because the EHCI spec has no port reset complete bit)

svn path=/branches/usb-bringup-trunk/; revision=55188
2012-01-26 00:29:25 +00:00
Cameron Gutman e4cf28f086 [USBHUB_NEW]
- Revert r55167 now that OHCI is fixed
- USB drives attached to an OHCI controller before boot are now enumerated without a reconnect needed

svn path=/branches/usb-bringup-trunk/; revision=55187
2012-01-26 00:11:15 +00:00
Cameron Gutman bbd84c4171 [USBHUB_NEW]
- Remove the hacky way of determining if a device connect occurred (prone to all sorts of race conditions) and just always create a device since the only reason we reset right now is for a device connect

svn path=/branches/usb-bringup-trunk/; revision=55186
2012-01-26 00:02:03 +00:00
Cameron Gutman 23f71216c4 [USBOHCI]
- Fix and enable the proper GetPortStatus implementation
- Remove the old hacked cached port status mess

svn path=/branches/usb-bringup-trunk/; revision=55185
2012-01-25 23:56:29 +00:00
Johannes Anderwald 84e941632b [USBOHCI]
- Disable GetPortStatus implementation
- Fix build

svn path=/branches/usb-bringup-trunk/; revision=55182
2012-01-25 19:56:35 +00:00
Cameron Gutman 25d8cf82c9 [USBOHCI]
- Fix StartController() to perform initialization according to OHCI spec
- Fixes the infamous OHCI initialization hang on real hardware

svn path=/branches/usb-bringup-trunk/; revision=55181
2012-01-25 19:46:44 +00:00
Johannes Anderwald 219fac4641 [USBOHCI]
- Add alignment check

svn path=/branches/usb-bringup-trunk/; revision=55176
2012-01-25 18:56:56 +00:00
Johannes Anderwald 58dab5a63b [USBOHCI]
- No need to turn off interrupts 
- Check if bios is active
- Check for timeouts when resetting host controller

svn path=/branches/usb-bringup-trunk/; revision=55171
2012-01-25 09:50:04 +00:00
Cameron Gutman 6c55f96de8 [USBOHCI]
- Don't turn off interrupts before setting the OHCI_OWNERSHIP_CHANGE_REQUEST bit because it prevents the SMM driver from receiving the interrupt that tells it to give up ownership of the host controller
- This fix should be merged to Haiku also which has the same bug

svn path=/branches/usb-bringup-trunk/; revision=55170
2012-01-25 06:35:00 +00:00
Cameron Gutman 75676e7e49 [USBSTOR]
- Use the correct USBD_TRANSFER_DIRECTION value for write operations

svn path=/branches/usb-bringup-trunk/; revision=55169
2012-01-25 06:09:24 +00:00
Johannes Anderwald 40df6bbbe4 [USBHUB]
- Partly revert 55167, it conflicts with hotplugging

svn path=/branches/usb-bringup-trunk/; revision=55168
2012-01-25 04:00:33 +00:00
Johannes Anderwald a0dc4083ad [USBSTOR]
- Add debug trace
[USBOHCI]
- Implement proper GetPortStatus
[USBHUB]
- Reset all connected ports before sending first SCE
- USB Devices present before booting are now detected with OHCI controller. EHCI code is present but not yet activated

svn path=/branches/usb-bringup-trunk/; revision=55167
2012-01-25 03:39:57 +00:00
Cameron Gutman 6fab1a7c6a [USBSTOR]
- Fix a bug in SRB queuing

svn path=/branches/usb-bringup-trunk/; revision=55166
2012-01-25 01:46:35 +00:00
Cameron Gutman e3d0e34a18 [USBSTOR]
- Get the actual value for the removable media bit instead of hardcoding it to true

svn path=/branches/usb-bringup-trunk/; revision=55165
2012-01-25 01:09:59 +00:00
Cameron Gutman 131dbc69a7 [USBSTOR]
- Don't lie about removable media support for anything except hard drives

svn path=/branches/usb-bringup-trunk/; revision=55160
2012-01-25 00:03:18 +00:00
Cameron Gutman 11e87a17ea [USBSTOR]
- Rewrite pending SRB handling and change some behavior of the IRP queue
- The caller is no longer responsible for checking whether it can call USBSTOR_QueueNextRequest; frozen IRP queue and pending SRB are both handled for them
- It's no longer required for the caller of USBSTOR_QueueTerminateRequest to know whether the SRB was active (which was impossible before when handling a cancellation)
- Many potential race issues with IRP cancellation are eliminated
- Debugging hung SRBs is much easier now that pointer to the active one is stored in the FDO

svn path=/branches/usb-bringup-trunk/; revision=55157
2012-01-24 23:04:31 +00:00
Cameron Gutman 2f5db208de [USBSTOR]
- Fix broken IRP error handling and leaking memory

svn path=/branches/usb-bringup-trunk/; revision=55155
2012-01-24 22:28:44 +00:00
Cameron Gutman 75947d6708 [USBEHCI/USBOHCI]
- Handle invalid device handles gracefully instead of crashing

svn path=/branches/usb-bringup-trunk/; revision=55154
2012-01-24 22:21:30 +00:00
Cameron Gutman a65fd45042 [USBSTOR]
- Release the spinlock before returning (accidentally removed)

svn path=/branches/usb-bringup-trunk/; revision=55152
2012-01-24 21:33:51 +00:00
Johannes Anderwald 4f681bfe61 [USBEHCI]
- Display error status when host controller reports failure

svn path=/branches/usb-bringup-trunk/; revision=55149
2012-01-24 20:49:01 +00:00
Johannes Anderwald b4447be2c3 [USBHUB]
- Fix bugs introduced in 55134, 55135
- USB Mass Storage devices should now automatically install again

svn path=/branches/usb-bringup-trunk/; revision=55147
2012-01-24 17:00:30 +00:00
Cameron Gutman 94f1525447 [USBSTOR]
- Fix cancellation for IRPs that have already been dispatched for processing by IoStartNextPacket
- Don't complete IRPs with the IRP list lock held
- Clear the cancel routine before completing the IRP

svn path=/branches/usb-bringup-trunk/; revision=55138
2012-01-24 04:39:09 +00:00
Johannes Anderwald 3b70f619c8 [USBHUB]
- Add more checks for detecting composite device

svn path=/branches/usb-bringup-trunk/; revision=55135
2012-01-23 23:41:40 +00:00
Johannes Anderwald e62233a8e7 [USBHUB]
- Check if the device is a composite device
- Report USB\COMPOSITE as compatible id when a usb compsite device is detected

svn path=/branches/usb-bringup-trunk/; revision=55134
2012-01-23 23:29:54 +00:00
Johannes Anderwald 98731d6286 [USBOHCI]
- Fix warning
- Remove assert
[USBEHCI]
- Remove assert

svn path=/branches/usb-bringup-trunk/; revision=55122
2012-01-23 16:47:19 +00:00
Cameron Gutman eb6202bdb6 [USBEHCI]
- Remove unused variable

svn path=/branches/usb-bringup-trunk/; revision=55121
2012-01-23 16:29:43 +00:00
Johannes Anderwald fa3c4bb4eb [USBHUB]
- Silent traces

svn path=/branches/usb-bringup-trunk/; revision=55120
2012-01-23 16:25:43 +00:00
Cameron Gutman 1f321cafad [USB-BRINGUP-TRUNK]
- Allow surprise removal of HID devices
- Don't assemble useless empty resource lists

svn path=/branches/usb-bringup-trunk/; revision=55119
2012-01-23 16:22:43 +00:00
Johannes Anderwald 33e7325e17 [USBSTOR]
- Silent traces

svn path=/branches/usb-bringup-trunk/; revision=55118
2012-01-23 16:22:33 +00:00
Johannes Anderwald 88a17911fa [USBEHCI]
- Remove traces

svn path=/branches/usb-bringup-trunk/; revision=55117
2012-01-23 16:17:21 +00:00
Cameron Gutman 2e9bda4f63 [USB-BRINGUP-TRUNK]
- Store correct device power state for PowerSystemWorking

svn path=/branches/usb-bringup-trunk/; revision=55115
2012-01-23 16:06:32 +00:00
Cameron Gutman d55c9c5101 [USB-BRINGUP-TRUNK]
- Restore the frame interval register after a reset as per OHCI spec

svn path=/branches/usb-bringup-trunk/; revision=55112
2012-01-23 15:53:25 +00:00
Johannes Anderwald 8478147bbf [USBEHCI]
- Use the same lock in the IUSBQueue as in the IDMAMemoryManager
- add debug traces (default off)

svn path=/branches/usb-bringup-trunk/; revision=55110
2012-01-23 15:49:43 +00:00
Cameron Gutman 437353f8cd [USB-BRINGUP-TRUNK]
- Compute the frame interval correctly
- Fixes a deadlock on real hardware after enabling interrupts

svn path=/branches/usb-bringup-trunk/; revision=55094
2012-01-23 10:10:51 +00:00
Johannes Anderwald 1cdf0e1d0d [USBEHCI]
- Don't complete irps with lock held

svn path=/branches/usb-bringup-trunk/; revision=55091
2012-01-23 04:22:11 +00:00
Johannes Anderwald b434c46463 [USBEHCI]
- Don't acquire spinlock twice

svn path=/branches/usb-bringup-trunk/; revision=55090
2012-01-23 03:50:11 +00:00
Johannes Anderwald 99926db97d [USBSTOR]
- Fix attempt #2  the offset bug
- fix identation

svn path=/branches/usb-bringup-trunk/; revision=55089
2012-01-23 02:58:52 +00:00
Johannes Anderwald 8baf90438a [USBSTOR]
- Fix bug in usbstor, which did not take the offset into account

svn path=/branches/usb-bringup-trunk/; revision=55088
2012-01-23 02:49:40 +00:00
Cameron Gutman 3de4023a19 [USB-BRINGUP-TRUNK]
- Fix a broken check that resulted in freeing the same device object twice
- Enable the IoDetachDevice call in usbstor now that the kernel bug is fixed

svn path=/branches/usb-bringup-trunk/; revision=55086
2012-01-23 00:39:28 +00:00
Johannes Anderwald 7ec08a5b86 [USBOHCI]
- Implement interrupt routing

svn path=/branches/usb-bringup-trunk/; revision=55085
2012-01-23 00:36:00 +00:00
Thomas Faber abb3023120 [USBHUB_NEW]
- Fix another calling convention issue

svn path=/branches/usb-bringup-trunk/; revision=55084
2012-01-23 00:27:30 +00:00
Johannes Anderwald 6612dad386 [USBHUB_NEW]
- Fix calling convention of completion routine

svn path=/branches/usb-bringup-trunk/; revision=55083
2012-01-22 23:56:03 +00:00
Johannes Anderwald d5dec59f82 [USBHUB_NEW]
- Fix calling convention of completion routine

svn path=/branches/usb-bringup-trunk/; revision=55082
2012-01-22 23:25:33 +00:00
Cameron Gutman a1bb133fae [USB-BRINGUP-TRUNK]
- Implement device disconnect indication for usbehci and usbohci
- Implement device removal for FDOs and PDOs in usbstor and usbhub

svn path=/branches/usb-bringup-trunk/; revision=55080
2012-01-22 21:58:06 +00:00
Johannes Anderwald b4a6fc90da [USBSTOR]
- Implement legacy IOCTL IOCTL_SCSI_GET_CAPABILITIES,  IOCTL_SCSI_GET_INQUIRY_DATA, IOCTL_SCSI_GET_ADDRESS
- Patch by Cameron Gutman and minor modifications

svn path=/branches/usb-bringup-trunk/; revision=55075
2012-01-22 16:39:53 +00:00
Cameron Gutman 1365766e59 [USB-BRINGUP-TRUNK]
- Remove the legacy usbdrv

svn path=/branches/usb-bringup-trunk/; revision=55074
2012-01-22 16:07:58 +00:00
Johannes Anderwald 9d6209dc3a [USBHUB]
- Fix build

svn path=/branches/usb-bringup-trunk/; revision=55071
2012-01-22 14:58:19 +00:00
Johannes Anderwald f0f22e7bb2 [USBHUB]
- Check if there is device description buffer, as some usb devices don't provide one

svn path=/branches/usb-bringup-trunk/; revision=55070
2012-01-22 14:51:32 +00:00
Johannes Anderwald 0594c0a9a7 [USBHUB]
- Silence traces

svn path=/branches/usb-bringup-trunk/; revision=55045
2012-01-21 17:07:01 +00:00
Cameron Gutman 336d055fa8 [USB-BRINGUP-TRUNK]
- Fix a BSOD during usbstor device initialization
- Enable usbstor in 1st stage

svn path=/branches/usb-bringup-trunk/; revision=55036
2012-01-21 00:31:09 +00:00
Cameron Gutman d0fd35677e [USB-BRINGUP-TRUNK]
- Add usbd to bootcd because usbohci depends on it
- Make device interface creation failure a non-fatal error so the port drivers start successfully in 1st stage

svn path=/branches/usb-bringup-trunk/; revision=55034
2012-01-20 23:58:29 +00:00
Cameron Gutman d8d06f0903 [USB-BRINGUP-TRUNK]
- Fix usbohci build

svn path=/branches/usb-bringup-trunk/; revision=55032
2012-01-20 23:19:18 +00:00
Cameron Gutman 9dacc2a9ac [USB-BRINGUP-TRUNK]
- Fix usbehci build

svn path=/branches/usb-bringup-trunk/; revision=55029
2012-01-20 22:53:30 +00:00
Cameron Gutman 9035fcb4a7 [USB-BRINGUP-TRUNK]
- Fix uninitialized variable use and more build errors

svn path=/branches/usb-bringup-trunk/; revision=55027
2012-01-20 22:35:52 +00:00
Cameron Gutman 3a034047fc [USB-BRINGUP-TRUNK]
- Add USB stuff to 1st stage setup

svn path=/branches/usb-bringup-trunk/; revision=55024
2012-01-20 22:04:57 +00:00
Cameron Gutman f5223ccf13 [USB-BRINGUP-TRUNK]
- Remove outdated cmake attribute

svn path=/branches/usb-bringup-trunk/; revision=55021
2012-01-20 21:28:33 +00:00
Cameron Gutman 753f07c723 [USB-BRINGUP-TRUNK]
- Merge 54115-54859

svn path=/branches/usb-bringup-trunk/; revision=55020
2012-01-20 21:19:37 +00:00
Cameron Gutman 6e24a0c6a8 [USB-BRINGUP-TRUNK]
- Merge 51335-53500

svn path=/branches/usb-bringup-trunk/; revision=55019
2012-01-20 21:07:56 +00:00
Cameron Gutman c2d0d784c7 [USB-BRINGUP-TRUNK]
- Create a branch to do a proper merge of USB work from a trunk base instead of from cmake-bringup
- In the future, DO NOT under any circumstances branch another branch. This leads to merge problems!

svn path=/branches/usb-bringup-trunk/; revision=55018
2012-01-20 20:58:46 +00:00
Johannes Anderwald ee21e811d0 [USB-BRINGUP]
- Add a ReactOS hack to let the hid stack initialize
- Add input.inf
- HID Mouse initializes and starts, now win32k needs some work to open the mice

svn path=/branches/usb-bringup/; revision=54838
2012-01-05 04:05:10 +00:00
Johannes Anderwald 21fb64f0bf [USB-BRINGUP]
- Fix creating instance id
- Print debug message
- Sync msmouse with head and add hid installation
- Needs input.inf written
- HID stack starts to initializes and then fails the to enable the device interface (/drivers/hid/hidclass/pdo.c:511), Logs show that IoGetDeviceObjectPointer() fails with STATUS_UNSUCCESSFUL

svn path=/branches/usb-bringup/; revision=54837
2012-01-05 01:24:11 +00:00
Johannes Anderwald 4dc6e068e2 [USB-BRINGUP]
- Create a pesudo random instance id
- Fixes assert when plugin usb devices whose device descriptor don't provide a serial number

svn path=/branches/usb-bringup/; revision=54836
2012-01-05 00:13:50 +00:00
Johannes Anderwald 7e231e2c92 [USBOHCI]
- Silence a few traces
- Add a hack for handling  URB_FUNCTION_CLASS_INTERFACE. The hid bus driver performs this request with zero buffer length, which is not valid. Needs more investigation

svn path=/branches/usb-bringup/; revision=54777
2011-12-29 10:13:36 +00:00
Johannes Anderwald c9d5364c98 - rearrange hid stack
svn path=/branches/usb-bringup/; revision=54757
2011-12-25 18:25:18 +00:00
Johannes Anderwald 1205becf05 [USB-BRINGUP]
- Implement HidP_UsageListDifference, HidP_GetUsagesEx, HidP_UsageAndPageListDifference
- Fix api prototypes
- Fix HidP_GetUsages linking

svn path=/branches/usb-bringup/; revision=54752
2011-12-25 17:09:09 +00:00
Johannes Anderwald 756f0b704b [USBEHCI]
- Implement URB_FUNCTION_ISOCH_TRANSFER, URB_FUNCTION_CLASS_ENDPOINT, URB_FUNCTION_GET_DESCRIPTOR_FROM_INTERFACE

svn path=/branches/usb-bringup/; revision=54736
2011-12-23 15:20:00 +00:00
Johannes Anderwald 6cd3e83d47 [HIDUSB]
- Add stub hidusb driver
- Hidusb driver is reponsible to connect with the hidclass driver (not yet present) and connect hid framework with usb hid devices

svn path=/branches/usb-bringup/; revision=53500
2011-08-30 16:01:00 +00:00
Cameron Gutman b8d27ea0ac [USBSTOR]
- Fix a typo so SRB_FUNCTION_RELEASE_DEVICE actually does what was intended

svn path=/branches/usb-bringup/; revision=52072
2011-06-03 05:43:41 +00:00
Cameron Gutman 392e4b95be [USBSTOR]
- Don't leave DISPATCH_LEVEL while holding a spin lock acquired at DISPATCH_LEVEL
- Synchronize cancellation checking by acquiring the cancel spin lock

svn path=/branches/usb-bringup/; revision=52071
2011-06-03 05:38:27 +00:00
Johannes Anderwald ab7ce0c45c [HIDPARSE]
- Start of HID parser driver
- Contains currently only stubs

svn path=/branches/usb-bringup/; revision=52067
2011-06-02 19:13:51 +00:00
Johannes Anderwald 0dede89665 [USBSTOR]
- Comment out getting usb device interface. It is currently unused and usbhub does not yet support it
- Forward pnp capabilities request to lower device object
- Fix compilation by Usurp

svn path=/branches/usb-bringup/; revision=52063
2011-06-02 15:35:04 +00:00
Johannes Anderwald da9d8082b0 [USBSTOR]
- Remove superflous declaration
- Fix bug when quering for compatible ids
- Remove unused local variable

svn path=/branches/usb-bringup/; revision=52038
2011-06-01 11:31:34 +00:00
Johannes Anderwald d7582766db [USBHUB_NEW]
- Check if the port is usb 2.0 controller. In that case call the Usb2.0 initialize function
- Prevents crash when used with usbohci

svn path=/branches/usb-bringup/; revision=52036
2011-06-01 08:31:33 +00:00
Johannes Anderwald 804a2dc28a [USBHUB_NEW]
- Fix compilation

svn path=/branches/usb-bringup/; revision=52035
2011-06-01 08:10:41 +00:00
Johannes Anderwald f73caa061d [USBOHCI]
- More traces to fix isochronous problem
- Fix broken assert found by mjmartin

svn path=/branches/usb-bringup/; revision=52004
2011-05-30 06:55:32 +00:00
Johannes Anderwald d2accc6c3e [USBOHCI]
- Fix OHCI_ISO_TD structure. Fixes host system crashes in Windows XP
- Fix multiple bugs in isochronous transfer implementation
- Still not yet working, as the interrupt completion is not fired yet

svn path=/branches/usb-bringup/; revision=51998
2011-05-29 19:54:55 +00:00
Johannes Anderwald 2231c8333a [USBOHCI]
- Implement function to retrieve isochronous head endpoint descriptor
- Implement function to retrieve current frame number
- Set isochronous descriptor flag for head endpoint
- Implement retrieve device status for devices
- Implement retrieve class status from device
- Partly implement isochronous descriptor handling in usb queue
- Start implementing isochronous transfers in ISUBRequest
- Code currently not tested as the Virtual Machine with XP + ReactOS usbohci driver brings down the host system when starting the iso transfers. Ironically it crashes in MS usbohci driver


svn path=/branches/usb-bringup/; revision=51957
2011-05-27 13:04:55 +00:00
Johannes Anderwald 9aff3e967c [USBOHCI]
- Set up periodic threshold (90 %)
- Add function to retrieve interrupt endpoints
- Add function to retrieve specific descriptors from interface. These are used by HID devices such as mice / keyboards
- Add function to retrieve interrupt interval
- Enqueue all endpoint descriptors at the end of the associated queue
- Only notify hardware of insertion when it is an bulk / control request
- Scan interrupt endpoint list to find the completed transfer descriptor
- Add debugging function to print out linked endpoint descriptors
- Interrupt transfers are now implemented. 
- Tested in Windows XP SP3 + Vbox 4.04 + Microsoft 5-Button Mouse. The HID mouse installs, initializes and starts up. Unfortunately the mouse does not work as expected yet

svn path=/branches/usb-bringup/; revision=51922
2011-05-26 12:37:18 +00:00
Johannes Anderwald 667b425b6c [USBOHCI]
- Remove dead code
- Silence traces
- Pass status & DoneHead as parameters to dpc routine
- Move IUSBRequest cleanup code into new function and use it for bulk / control transfer cleanup
- Fix bugs in AllocateEndpointDescriptor. It did not take the device address into account. It also did not respect the direction of the descriptor
- Implement support for bulk transfer requests
- Handle irp completion in CompletionCallback
- Tested in Windows XP SP3 + Vbox 4.04 + USB2.0 disabled + ReactOS usbstor + USB mass storage device
- OHCI Mass storage support is now also ready
- Next interrupt transfers

svn path=/branches/usb-bringup/; revision=51917
2011-05-26 02:15:11 +00:00
Johannes Anderwald 2c6077dc50 [USBOHCI]
- Add glue code for supporting iso transfers
- Remove dead from Handle
- Remove broken asserts
- Add support for string descriptors
- Add support for class specific endpoint requests (Needs be ported to usbehci)
- Link to usbd driver
- Add support for retrieving string descriptor
- Rewrite configuration descriptor handling in IUSBDevice. New code is smaller, smarter and handles a lot more cases. Needs to be ported to usbehci
- Wrap usbdlib.h include in extern c macro, it has c linkage
- Control transfers should now work 
- Need to implement support for isochronous / bulk / interrupt transfers until functional
- Tested with Bluetooth USB Stick (multi function, interrupt / bulk / control / isochronous) / USB Microphone (isochronous & control) in XP SP3

svn path=/branches/usb-bringup/; revision=51900
2011-05-25 02:11:06 +00:00
Johannes Anderwald beec9a7b25 [USBD]
- Add missing export

svn path=/branches/usb-bringup/; revision=51899
2011-05-24 23:03:35 +00:00
Johannes Anderwald ed6fad617e [USBOHCI]
- Don't allocate buffer twice
- Cleanup endpoint / general transfer descriptors

svn path=/branches/usb-bringup/; revision=51892
2011-05-24 18:29:57 +00:00
Johannes Anderwald e24bfbfa91 [USBOHCI]
- Add sanity checks
- Preserve  command status value when notifying the hc that a control / bulk endpoint was added
- Re-enable root hub notification interrupt when reset port has been completed
- Dispatch processing to USBQeueu when DoneHead event arrives
- Scan endpoints to find the logical endpoint which was completed by the hardware
- Signal completion to IUSBRequest by calling CompletionCallback
- Create a final transfer descriptor which is linked to the endpoint descriptor
- Control transfers now appear to be working (Device retrieves device descriptor / configuration descriptor and succeeds in setting device address)
- Configuration parsing code needs more work now (currently fails there due to invalid / unexpected configuration descriptor from device)

svn path=/branches/usb-bringup/; revision=51888
2011-05-24 17:57:00 +00:00
Johannes Anderwald b275073474 [USBOHCI]
- Enable global power mode
- Wait untill reset is complete
- Clear reset complete bit when reset is done
- Enable port
- Reset port now works
- USBOHCI still hangs after adding first control request, needs more investigation

svn path=/branches/usb-bringup/; revision=51883
2011-05-24 12:51:03 +00:00
Johannes Anderwald f75cb3d51d [USBOHCI]
- Start implementing control transfers
- Move initialization of usb queue after the bulk / control head endpoints have been created
- Add interface functions to retrieve bulk / control head endpoint descriptors
- Add macros for setting transfer descriptors field (taken from Haiku)
- Partly implement IUSBQueue::AddUSBRequest for control / bulk transfers
- Create endpoint descriptor for control request and link setup descriptor to it 
- Link setup descriptors to data descriptor / status descriptor
- WIP (needs fixes)

svn path=/branches/usb-bringup/; revision=51864
2011-05-23 17:42:52 +00:00
Johannes Anderwald c5acda628c [USBOHCI]
- Fix bug in calculating offset of status register
- Start implementing deferred processing routine
- Signal status change when new device is arrived
- Implement basic GetPortStatus
- Start implementing SetPortFeature, ClearPortStatus
- ResetPort not yet fully working, WIP

svn path=/branches/usb-bringup/; revision=51858
2011-05-23 11:29:55 +00:00
Johannes Anderwald 89d52d98bb [OHCI]
- Add check that controller is functional state
- enable interrupts after the controller has been started
- partly implement isr routine

svn path=/branches/usb-bringup/; revision=51852
2011-05-22 20:48:50 +00:00
Johannes Anderwald d4c4a2e080 [USBOHCI]
- Start of OHCI support
- Based on new usbehci driver and Haiku USB Stack
- Driver initializes the controller and retrieve number of ports

svn path=/branches/usb-bringup/; revision=51851
2011-05-22 19:36:13 +00:00
Johannes Anderwald 3dfadd12ae [USBEHCI]
- Enable sync frame list

svn path=/branches/usb-bringup/; revision=51827
2011-05-20 15:06:39 +00:00