Subject: CVS commit: src/sys/dev/usb
To: None <source-changes@NetBSD.org>
From: Nathan J Williams <nathanw@netbsd.org>
List: source-changes
Date: 08/03/2003 21:59:28
Module Name:	src
Committed By:	nathanw
Date:		Sun Aug  3 21:59:27 UTC 2003

Modified Files:
	src/sys/dev/usb: uvisor.c

Log Message:
Bunch of changes to make the Palm Tungsten T work:

* Mark the actual Handspring Visor as type "VISOR" and all others
  "PALM4" (notably, the Sony Clie 41 changes from Visor-type to
  Palm4-type).

* For Palm4-type devices, use the GET_PALM_CONNECTION_INFORMATION
  query instead of the GET_CONNECTION_INFORMATION query, and interpret
  the returned data structure appropriately. This permits attaching a
  ucom device to newer devices such as the Tungsten T that do not
  support the Visor-style query (data structure definition gleaned
  from the Linux 2.4.21 visor.c).

* Crank down UVISORBUFSIZE from 1024 to 64 to avoid a problem where
  the Palm device and the USB host controller deadlock. The USB host
  controller is expecting an early-end-of-transmission packet with 0
  data, and the Palm doesn't send one because it's already
  communicated the amount of data it's going to send in a header
  (which ucom/uvisor are oblivious to). This is the problem that has
  been known on the pilot-link lists as the "[Free]BSD USB problem",
  but not understood.

  XXX It would be better for the Palm protocol to be handled entirely
  in userland via ugen, since the serial protocol abstraction isn't
  really adequate for the amount of structure that's here, and the
  64-byte limit is just a workaround. The pilot-link tools aren't up
  to the task yet, though.


To generate a diff of this commit:
cvs rdiff -r1.20 -r1.21 src/sys/dev/usb/uvisor.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.