PERFORCE change 126687 for review
Hans Petter Selasky
hselasky at FreeBSD.org
Sat Sep 22 02:37:49 PDT 2007
http://perforce.freebsd.org/chv.cgi?CH=126687
Change 126687 by hselasky at hselasky_laptop001 on 2007/09/22 09:36:58
Pre-commit overview (dummy commit)
==================================
This is the first of a series of patches for the USB P4
project by me. Be aware that the USB P4 project will not be
compilable until I am finished due to USB API / structure
changes.
Functional changes
==================
- multi sub-frame USB transfers (currently only the EHCI +
WHCI has hardware support for this)
- USB device side support (no real drivers yet, though the
framework has been hammered out)
- stricter "wMaxPacketSize" filtering
- the ucom and usb_cdev layer now supports transferring data
directly to/from USB DMA buffers.
- factored out MS_TO_TICKS into USBD_MS_TO_TICKS which has
1024 milliseconds per second instead of 1000 to save
redundant division.
Technical changes
=================
- convert kernel USB flags into a bitmap (scripted)
- "usbd_transfer_done()" is now part of "usbd_transfer_dequeue()"
- remove internal data bounching framework
- using DMA'able buffers is now a requirement for all USB drivers
- factored out USB root control transfers into "usbd_std_root_transfer()"
- passing a mutex to "usbd_do_request_flags()" and all
"usbreq_xxx()" functions is now mandatory.
- stack usage reduction in general
- factored out ADD_BYTES() into USBD_ADD_BYTES()
- refactor function parameter passing
- use structs instead of passing actual values
- pass pointers first then elements decreasing
by size, to optimize stack on embedded systems,
when possible
- cache some string descriptors in "struct usbd_device"
- use a common USB control transfer to proxy all USB control
transactions per "struct usbd_device". This speeds up USB
control transactions alot, hence there is no need to
allocate/setup anything when executing a USB control
transaction.
Style changes (in separate patches)
===================================
- subsitute all "u_intXXX" into "uintXXX"
- stylish "s/if\(/if \(/g", "s/for\(/for \(/g", "s/while\(/while \(/g",
"s/do\(/do \(/g"
- tab after "#define"
Patches for all of the above and more will follow in pieces
with detailed comments.
Affected files ...
.. //depot/projects/usb/src/sys/dev/usb/README#16 edit
Differences ...
==== //depot/projects/usb/src/sys/dev/usb/README#16 (text+ko) ====
@@ -1,3 +1,10 @@
+Hi,
+
+The USB P4 project does currently not compile due to ongoing work,
+which is expected to be complete by the end of Sunday the 23rd 2007.
+
+--HPS
+
DESCRIPTION OF THE NEW USB API
The new USB 2.0 API consists of 4 functions. All transfer types are managed
More information about the p4-projects
mailing list