* 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.