- Implement IopFixupResourceListWithRequirements to replace IopCreateResourceListFromRequirements
- This functions fills in gaps between required resources and currently allocated resources in the resource list
- It also implements support for alternate requirement descriptors which IopCreateResourceListFromRequirements ignored
- Fix a critical bug in requirement processing that could result in the kernel allocating resources outside the devices requested range
- Now the PnP manager will actually claim resources that the device reports that it needs but it does not currently have
svn path=/branches/usb-bringup-trunk/; revision=55537
- Store configuration index in the setup packet
- Perform retrieving the configuration request before storing the configuration details. Perform the same action for the select interface request
- EHCI now supports selecting configuration & interface on devices with more than one configuration (previously only one configuration was supported)
- Code has not yet been tested, as no available usb device has such feature
svn path=/branches/usb-bringup-trunk/; revision=55536
- Don't corrupt memory when a queue head / transfer descriptor is freed
- How did this work before...
svn path=/branches/usb-bringup-trunk/; revision=55525
- Ignore error when the device provides a string descriptor but no contents
- Fixes installation of cheap usb devices
svn path=/branches/usb-bringup-trunk/; revision=55514
- Add back old implementation for testing purposes (if'd out)
- Display more status field of queue head / transfer descriptor
- Dump queue head when a halted queue is detected
- Display data toggle status
svn path=/branches/usb-bringup-trunk/; revision=55502
- Don't wait for the work item to complete in the SCE completion handler
- Use an event to signal the completion of a reset and wait for that event during IRP_MN_START_DEVICE handling so devices are enumerated synchronously which allows USB boot devices to be enumerated
svn path=/branches/usb-bringup-trunk/; revision=55493
- Fix a few bulk transfer bugs
- Enable interrupt completion on last interrupt
- Increment transferred offset
- Mass storage device now gets further (passing SRB_FUNCTION_CLAIM_DEVICE)
svn path=/branches/usb-bringup-trunk/; revision=55491
- Rewrite the transfer descriptor handling
- Take into account the direction of the pid
- Revert previously added hacks
- Support now more than one transfer descriptor for control transfers
- Include the bulk transfers in one queue head which should speed up operation
- Store data toggle in usb endpoint structure
- Mass storage devices now passes the control status phase on real hw and enters bulk operation stage
svn path=/branches/usb-bringup-trunk/; revision=55489
- Don't set NumberOfTransaction 0x3 for the async queue head(Haiku doesnt do it too)
- Also don't set maximum packet length or interrupt on complete
- Stop the async / periodic schedules after acquiring ownership from os (ported from the Pedigree OS)
- Remove unused structs from header
- Allocate device descriptor from start of a page to prevent alignment issues
- Clear halted bit in the queue overlay transaction layer (usb_queue.cpp:507)
- Always set the alternative and next pointers in BuildControlTransferQueueHead
- Use data the toggle in the transfer requests
- Start using toggle in bulk requests, invert data toggle after each descriptor
- EHCI controller still reports error 0xA / 0xB which is USB Error Interrupt + Frame List Rollover + [USB Interrupt]
- Errors need to be researched more, though the control transfers results appear o.k.
- Tested in real hw + ros stack with USB Mass Storage Device
- Currently hangs after first completed CDB/Data/CSW block
svn path=/branches/usb-bringup-trunk/; revision=55483
- Wait for periodic scheduling to start
- Increase the wait interval for asynchronous scheduling to start
svn path=/branches/usb-bringup-trunk/; revision=55477
- Add more structures to ntdddisk.h
- Fix more compile errors in disk_new
- disk_new builds but fails to link as classpnp import lib is broken
svn path=/branches/usb-bringup-trunk/; revision=55451
- Implement ResetController and call it before setting up the controller
- Don't disable 64-bit addressing until the BIOS gives up control of the controller
- Comment out manually clearing the SMI interrupt and the BIOS owned flag by request of janderwald
- EHCI no longer hangs for me on real hardware during controller initialization
svn path=/branches/usb-bringup-trunk/; revision=55450
- Check if the report uses a report id
- Fix arrows in USB 2 PS/2 conversion table (Needs more fixing)
svn path=/branches/usb-bringup-trunk/; revision=55440
- 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
- Define USBDI_VERSION to 0x500 instead 0x600 because we support none of the Vista APIs so USBD will report the correct version
svn path=/branches/usb-bringup-trunk/; revision=55420
- Add and fix missing exports
- Add UNIMPLEMENTED to unimplemented functions
- Fix completely broken USBD_GetPdoRegistryParameter (which wasn't even exported because somebody made a typo and couldn't figure it out)
- My Linksys USB300M driver now loads but it runs into some unimplemented code paths in usbehci
svn path=/branches/usb-bringup-trunk/; revision=55416
- Add HID devices to the critical device database
- Fixes issues with mouse/keyboard not working until new device wizards are dismissed (USB drives work too)
[UMPNPMGR]
- Fix install failure after the kernel detects a critical device
[NTOSKRNL]
- Finally enable the proper IopResetDevice code
- Driver updating without a reboot for running devices is supported now (if someone will write the GUI)
[USBEHCI][USBOHCI]
- Fix removal bugs
svn path=/branches/usb-bringup-trunk/; revision=55401
- Remove hack of forwarding pdo requests to lower device object of fdo
- Implement handling of reset port and cycle port
- IOCTL_INTERNAL_USB_RESET_PORT / IOCTL_INTERNAL_USB_CYCLE_PORT now need to be implemented in usbhub
svn path=/branches/usb-bringup-trunk/; revision=55396
- Check if the transfer descriptors reported errors and propagate the error in the urb status field
- OHCI now reports error which the class driver are handling
- Allocate device descriptor from non paged pool to prevent possible alignment problems
- Fix checking of completed transfer descriptors
- Fix double freeing of descriptors
- Cleanup endpoints when the halted bit is set by the host controllers
- Check for the endpoint direction in the data descriptor
- Setup descriptor needs buffer rounding set
svn path=/branches/usb-bringup-trunk/; revision=55389
- Use constants instead of hardcoding register offsets. Taken from Haiku
- Elements in HCSP-PORTROUTE are 4 bit entries instead
svn path=/branches/usb-bringup-trunk/; revision=55385
- Write the partition table back after CheckActiveBootPartition() because it could've changed the partition table on a disk with no active partition
- Fixes issues installing ROS on new disks and disks with no active partitions (including USB disks)
svn path=/branches/usb-bringup-trunk/; revision=55382