Commit graph

266 commits

Author SHA1 Message Date
Cameron Gutman 86feb20aad [USB-BRINGUP-TRUNK]
- Fix build errors in kbdhid and mouhid

svn path=/branches/usb-bringup-trunk/; revision=55025
2012-01-20 22:17:32 +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 065fd7dbd5 [USB-BRINGUP]
- Add keyboard hid driver template ripped off from mouhid driver
- Implement keyboard driver initialization

svn path=/branches/usb-bringup/; revision=54850
2012-01-06 16:35:55 +00:00
Johannes Anderwald f53c2c4f14 [HID]
- Implement quering compatible ids
- Fix result status for quering instance id
- Fix bug in msmouse.inf

svn path=/branches/usb-bringup/; revision=54843
2012-01-05 18:22:48 +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 d1e00dac5c [USB-BRINGUP]
- Implement a HID parsing library, which is based on Haiku`s exellent HID Stack
- Implement HidP_FreeCollection, HidP_GetCaps, HidP_GetCollectionDescription, HidP_MaxUsageListLength, HidP_GetSpecificValueCaps, HidP_GetUsages, HidP_GetScaledUsageValue
- hidparse driver is now implemented enough to support a hid mouse
- Tested in VBox 4.1.4 + WinXP + ReactOS usbohci+ mouhid+ hidclass+ hidparse+hidusb

svn path=/branches/usb-bringup/; revision=54834
2012-01-04 21:58:18 +00:00
Johannes Anderwald 07ae01f96c [USB-BRINGUP]
- Create PDO for each top level collection found
- Use the specified collection index instead of the first
- add collection id to hardware id when the device has more than one top level collection, see http://msdn.microsoft.com/en-us/windows/hardware/gg487473 for details

svn path=/branches/usb-bringup/; revision=54808
2012-01-02 12:00:51 +00:00
Johannes Anderwald 842fe995ce [USB-BRINGUP]
- Fake status success for unimplemented IRP_MN_REMOVE_DEVICE
- Fix tons of bugs in the read report completion routine
- Implement function to re-use a complete report irp
- Use correct device object when invoking the mini driver's dispatch routine in the read function
- silence a few traces
- Mouse now works with with ReactOS USB stack + ReactOS HID stack (TBD: implement hidparse.sys)

svn path=/branches/usb-bringup/; revision=54806
2012-01-01 22:48:08 +00:00
Johannes Anderwald f687f32e69 [USB-BRINGUP]
- Move attributes / device description to common struct
- Partly implement IRP_MJ_CREATE, IRP_MJ_CLOSE, IRP_MJ_READ

svn path=/branches/usb-bringup/; revision=54798
2011-12-31 19:09:26 +00:00
Johannes Anderwald eb5e8a089b [USB-BRINGUP]
- Fix bug in HidUsb_AbortPipe, which passed the wrong handle
- Implement reset port routine
- Implement reset worker routine when reading report fails

svn path=/branches/usb-bringup/; revision=54797
2011-12-31 18:22:18 +00:00
Johannes Anderwald d5ab604853 [USB-BRINGUP]
- Partly implement IRP_MN_START_DEVICE for PDO 
- PDO  now completely initializes
- Remaining IOCTL to implement IRP_MJ_CREATE, IRP_MJ_CLOSE, IRP_MJ_FLUSH, IRP_MJ_READ for partial mouse support in hidclass

svn path=/branches/usb-bringup/; revision=54792
2011-12-31 04:13:37 +00:00
Johannes Anderwald a64411cfbf [USB-BRINGUP]
- Implement HidClassFDO_DeviceRelations
- Implement IOCTL_HID_GET_COLLECTION_INFORMATION,  IOCTL_HID_GET_COLLECTION_DESCRIPTOR
- Implement IRP_MN_QUERY_ID, IRP_MN_QUERY_CAPABILITIES, IRP_MN_QUERY_BUS_INFORMATION, IRP_MN_QUERY_PNP_STATE, IRP_MN_QUERY_DEVICE_RELATIONS, 
- HIDClass PDO is now created and starts initialization, needs IRP_MN_START_DEVICE request implementation
- Tested in Vbox 4.1.4 + WinXP + ReactOS hidusb,hidmou,hidclass

svn path=/branches/usb-bringup/; revision=54791
2011-12-31 03:33:14 +00:00
Johannes Anderwald c671800d55 [USB-BRINGUP]
- Rename device extension
- Implement FDO Initialization (IRP_MN_START_DEVICE)

svn path=/branches/usb-bringup/; revision=54787
2011-12-30 14:34:07 +00:00
Johannes Anderwald ceb3f5ee43 [USB-BRINGUP]
- Implement AddDevice routine for hidusb
- Fix bug in Hid_DispatchUrb, which returned not initialized status code
- Implement IOCTL_HID_GET_REPORT_DESCRIPTOR, IOCTL_HID_READ_REPORT
- Add support routines for reseting / aborting pipe, not yet used
- TBD: implement error handling
- hidusb now works in combination with a usb mouse (other hid devices such as keyboards will require more ioctl implemented)
- Tested in Vbox 4.1.4 + WinXP + ReactOS usbhid.sys + ReactOS usbmou.sys
- Testing procedure -> inject usb mouse after startup (needs mouse integration disabled -> thanks to timo for pointing this out)

svn path=/branches/usb-bringup/; revision=54781
2011-12-29 19:03:40 +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 4e6638bcc3 [USB-BRINGUP]
- Usage page of zero is not used, increment, the MouHid_ButtonUpFlags / MouHid_ButtonDownFlags array
- Mouse clicks now work
- Implement flushing of the hid report queue
- Driver now works in VBox 4.1.4 + WinXP 
- Secondary mouse pointer does not move in VBox (either a Vbox bug / WinXP), tested with ms driver and the same results were reveiled

svn path=/branches/usb-bringup/; revision=54776
2011-12-29 10:07:00 +00:00
Johannes Anderwald 6717a4ecfe [USB-BRINGUP]
- Fix up / down button detection
- Fix move detection. Mouse changes are now detected
- Mouse does not yet work in Vbox, as mouclass driver is for unknown reasons not connecting to the mouhid, needs to be investigated
- Tested in VBox 4.1.4 + ReactOS mouhid.sys

svn path=/branches/usb-bringup/; revision=54775
2011-12-28 17:18:56 +00:00
Johannes Anderwald b27438e17d [USB-BRINGUP]
- Fix a few bugs & race condition in the read report routine
- mouhid initializes and is able to read input reports
- button press / wheel state change is detected
- mouse move detection not yet working

svn path=/branches/usb-bringup/; revision=54774
2011-12-28 16:35:41 +00:00
Johannes Anderwald 012eac6d8f [USB-BRINGUP]
- Implement mouse move detection, wheel state detection

svn path=/branches/usb-bringup/; revision=54772
2011-12-28 11:36:05 +00:00
Johannes Anderwald d4bb27774a [USB-BRINGUP]
- Partly implement mouse read completion
- Implement read initiation
- Implement MouHid_Create, MouHid_Close

svn path=/branches/usb-bringup/; revision=54768
2011-12-27 02:35:03 +00:00
Johannes Anderwald 05c20641db - Link to hal
- Implement mouse button change detection
- Implement support routine for dispatching mouse input data
- Allocate mdl for input report, not yet used

svn path=/branches/usb-bringup/; revision=54767
2011-12-27 00:46:10 +00:00
Johannes Anderwald bf1f779fff [USB-BRINGUP]
- Implement retrieving device / configuration descriptor
- Partly implement hid descriptor parsing
- Select configuration when initialization is complete
- Implement starting up device

svn path=/branches/usb-bringup/; revision=54765
2011-12-26 21:51:05 +00:00
Johannes Anderwald c626190319 [USB-BRINGUP]
- Implement IOCTL_HID_GET_DEVICE_ATTRIBUTES, IOCTL_HID_GET_DEVICE_DESCRIPTOR for hidusb
- Partly implement pnp dispatch routines for hidusb

svn path=/branches/usb-bringup/; revision=54764
2011-12-26 18:20:32 +00:00
Johannes Anderwald 3477d17d4b [USB-BRINGUP]
- Halfplement mouse hid driver, WIP, untested

svn path=/branches/usb-bringup/; revision=54762
2011-12-26 03:37:22 +00:00
Johannes Anderwald 69dfb12f9a [HIDCLASS]
- Implement AddDevice routine

svn path=/branches/usb-bringup/; revision=54760
2011-12-25 23:07:50 +00:00
Johannes Anderwald 8632f8d0f0 [USB-BRINGUP]
- add template for hidclass driver 
- fix hidusb build

svn path=/branches/usb-bringup/; revision=54759
2011-12-25 20:21:34 +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 d8200951b5 - rearrange hid stack
svn path=/branches/usb-bringup/; revision=54756
2011-12-25 18:23:22 +00:00
Johannes Anderwald 3c59337294 - rearrange hid stack
svn path=/branches/usb-bringup/; revision=54754
2011-12-25 18:17:07 +00:00
Johannes Anderwald b03bdfff2a - add directory for hid stack
svn path=/branches/usb-bringup/; revision=54753
2011-12-25 18:16:35 +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