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