Commit graph

44 commits

Author SHA1 Message Date
Johannes Anderwald cf494ea401 [HIDCLASS]
- Check if attaching to device stack failed. In that case fail the request
[HIDUSB]
- Always set SupriseRemovalOk
[USBCCGP] [HIDCLASS] [USBHUB] [USBSTOR]
- Check if the pdo is still in the pdo list. Only call IoDeleteDevice in that case

svn path=/branches/usb-bringup-trunk/; revision=55429
2012-02-05 15:36:00 +00:00
Johannes Anderwald 80c665d2ac [HIDCLASS]
- Remove PDO from pdo list when it is destroyed
- Handle IRP_MN_QUERY_REMOVE_DEVICE, IRP_MN_CANCEL_STOP_DEVICE, IRP_MN_QUERY_STOP_DEVICE, IRP_MN_CANCEL_REMOVE_DEVICE
[HIDUSB]
- Add driver unload routine
[MOUHID]
- Wait for completion of pending irp
[USBHUB]
- Remove pdo from PDO list
- Handle IRP_MN_QUERY_DEVICE_RELATIONS
- Add stub driver unload routine
[USBOHCI]
- handle IRP_MN_REMOVE for FDO
- remove ASSERT

svn path=/branches/usb-bringup-trunk/; revision=55411
2012-02-04 14:10:18 +00:00
Cameron Gutman e7484d185a [PCI][HIDCLASS][HIDUSB][KBDHID][MOUHID][USBCCGP][USBOHCI][USBEHCI][USBHUB][USBSTOR]
- Handle query remove IRPs
- Fix some other removal bugs

svn path=/branches/usb-bringup-trunk/; revision=55399
2012-02-03 22:59:53 +00:00
Johannes Anderwald 71b5a853dc [USBOHCI]
- Don't hardcode the device speed

svn path=/branches/usb-bringup-trunk/; revision=55392
2012-02-03 11:29:03 +00:00
Cameron Gutman be54f427e6 [USBHUB]
- Missed a fix from last commit
- Wait for the device status change work item to complete
- The USB stack is now properly constructed for USB booting

svn path=/branches/usb-bringup-trunk/; revision=55339
2012-01-30 22:45:16 +00:00
Cameron Gutman 475fe08f3c [USBHUB]
- Send the SCE IRP before resetting the port so we can wait on it for device enumeration

svn path=/branches/usb-bringup-trunk/; revision=55338
2012-01-30 22:19:47 +00:00
Johannes Anderwald fc2d4e3800 - Remove cruft from CMakeLists.txt
- Silence debug flood
- Remove debugging code
- Add traces for composite device detection
- Don't print device descriptor

svn path=/branches/usb-bringup-trunk/; revision=55302
2012-01-29 23:11:21 +00:00
Johannes Anderwald 0a2f895e36 [USBHUB_NEW]
- Rewrite GetDeviceIds function
- Don't rely on hardcoded constants when building the device id strings
- Don't corrupt the device id string when building the instance id string
- Fix bug in GetUsbStringDescriptor which read beyond the allocated string when copying the result.

svn path=/branches/usb-bringup-trunk/; revision=55238
2012-01-27 12:29: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 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
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
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
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 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
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
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 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 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
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 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
Michael Martin 9d7751a2f6 [USBHUB_NEW]
- Only get the string descriptors if they are available. Fixes crash when using usb mouse and keyboards in windows.

svn path=/branches/usb-bringup/; revision=51688
2011-05-12 23:31:32 +00:00
Michael Martin 8d98341ac8 [USBHUB_NEW]
- Implement IOCTL_INTERNAL_USB_GET_PORT_STATUS.
- Fixes to comments




svn path=/branches/usb-bringup/; revision=51683
2011-05-12 12:58:07 +00:00
Michael Martin 4f76ebe078 [USBHUB_NEW]
- Save PortNumber in child device extensions as its needed when PNP request device capabilities.
- Handle IOCTL_INTERNAL_USB_SUBMIT_URB request by creating a new Irp and passing the Urb down to the miniport. 
- Now working with our ehci driver, we at least see a usb driver and can browse directory in Windows, though doing so results in assert as ehci doesnt support transfers over 5 Pages yet. Fix coming soon.



svn path=/branches/usb-bringup/; revision=51672
2011-05-11 02:25:11 +00:00
Michael Martin db5142f32f [USBHUB_NEW]
- Forgotten change in 51641. Fixes build of usbhub.

svn path=/branches/usb-bringup/; revision=51657
2011-05-09 10:48:00 +00:00
Michael Martin 3063e3bf5e [USBHUB_NEW]
- Implement constructing CompatibleIds string using device descriptor. However, if the Class of the device descriptor is 0, then Class, SubClass and Prot which make up this string must come from the Interface.
- Change Ids and Descriptions to Unicode Strings. 
- Move the creating of Id strings to one place, CreateDeviceIds, and called it at device creation.

svn path=/branches/usb-bringup/; revision=51641
2011-05-08 12:24:26 +00:00
Michael Martin 54c5af9906 [USBHUB_NEW]
- Some devices implement a default Language, LangId of 0. Some do not. Use LangId 0x0409 (English) until LangId is implemented.
- Remove an unused variable.

svn path=/branches/usb-bringup/; revision=51622
2011-05-07 16:10:09 +00:00
Michael Martin e9fe271ad6 [USBHUB_NEW]
- The lower level driver completes the SCE IRP whenever the change state has been modified for a port. When handling the SCE IRP completion only check for flags in change state. The Change flags must be cleared else the hub driver will get non stop SCE IRP completions.
- Allocate IRP from Pool vice calling IoAllocateIrp. Dont free the IRP in the completion routine as the port driver, oddly, frees them.
- GetUsbDeviceDescriptor: Remove use of MDL and use only buffer instead to make our new usbehci happy.
- When calling the interface routines, correctly use the BusContext returned from the interface instead of the RootHubPdo. This worked on windows as it just happened they were the same.
- Implement RootHubInitCallbackFunction, which only job currently is to send the first SCE IRP.
- For Start Device for child device objects fake success for now. Will be implemented later.
- Implement returning IRP_MN_QUERY_IDs, IRP_MN_QUERY_DEVICE_TEXTs and IRP_MN_QUERY_BUS_INFORMATION.
- Add basic handling for IRP_MJ_POWER.
- Misc code changes.
 

svn path=/branches/usb-bringup/; revision=51620
2011-05-07 14:49:02 +00:00
Michael Martin e84208fd18 [USBHUB_NEW]
- Add UsbDeviceHandle to child device extensions structure to be passed with URB requests.
- Reimplement the Worker Thread DeviceStatusChangeThread called on SCE completion. Each SetFeature and ClearFeature resend SCE request.
Only create the usb child device if the PortStatusChange member of the device extensions was modified.
- Implement CreateUsbChildDeviceObject used for creating a deviceobject for the USB device and initializing it.
- Implement GetUsbStringDescriptor for getting DeviceId, TextDescription and InstanceId from USB Device.
- Move the initial QueryStatusChangeEndpoint to after the hub device receives start pnp.
- USBHUB driver is now back to the same functionality of previous version. Showing the device wizard for connected devices.

svn path=/branches/usb-bringup/; revision=51581
2011-05-04 21:45:55 +00:00
Michael Martin 0fe38c839b [USBHUB_NEW]
- Change parameter name for DeviceObject in functions to clearify which device object is to received IRPs.
- Fix a typo in GetPortStatusAndChange that caused the function to return nothing for status and change.
- Call QueryStatusChangeEndpoint to send the first SCE request in Query Bus Releations.
- Complete implementation of StatusChangeEndpointCompletion. Queue a work item for DeviceStatusChangeThread, which will be used to initialize the usb device and create related device objects.



svn path=/branches/usb-bringup/; revision=51576
2011-05-04 12:58:42 +00:00
Michael Martin af70a910fb [USBHUB_NEW]
- Start work on reimplementing UsbHub driver.
- Implement SubmitRequestToRootHub, QueryStatusChangeEndpoint, QueryInterface, GetPortStatusAndChange, SetPortFeature and ClearPortFeature.Handle QueryBusRelations.
- Partially implement PNP handling for FDO. When starting the device get all the information about the RootHub the driver will need and enable Power on all ports.
- Partially implement PNP handling for PDO, QueryId and QueryDeviceText.
- WIP



svn path=/branches/usb-bringup/; revision=51569
2011-05-04 01:07:21 +00:00