Commit graph

195 commits

Author SHA1 Message Date
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