Palm m50x & the USB stack

Adriaan de Groot
Wed, 11 Jun 2003 16:10:44 -0000

[It seems the last time this came up was in march, under the heading of
"Sony
Cybershot should be in hardware notes". This message is intended mainly to
document what I've managed to track down.]

The m500s still will not sync with pilot-link 0.11.7 in -STABLE. An easily
triggerable panic is another issue [1]. The pilot-link code first opens
/dev/ugenX and then switches to /dev/ugenX.2, which is the HotSync endpoint
for HotSyncs (endpoint 1 is listed as "Generic" in the endpoint
descriptions).  Relevant code is then:

        i = 0; /* 0 or USBD_SHORT_XFER_OK */
        if (ioctl(endpoint_fd, USB_SET_SHORT_XFER, &i) < 0) {

        i = 50;
        if (ioctl(endpoint_fd, USB_SET_TIMEOUT, &i) < 0) {

later, writes to the endpoint go fine, but a read() on the endpoint_fd returns
immediately with ETIMEDOUT if the USB_TIMEOUT is non-0. I've started
following this through the ugen code, but get totally lost in kernel
intricacies. Mostly I need a good way to dump debug info to the console while
running though this code. Is kprintf() the right way to go? Will (over)using
it cause timing problems in the ugen code?

I've got 5.1-RELEASE on a laptop, I'll check tomorrow if the situation
is any
different there (though cvsweb indicates not much has changed, really,
recently, and NetBSD 1.6.1 fails just as miserably as FreeBSD 4.8 in doing
anything with an m500.).

[ade]

[1] open(/dev/ugen0) open(/dev/ugen0.2) ioctl(/dev/ugen0.2) is pretty much it,
as documented in the pilot-link source.

--
pub  1024D/FEA2A3FE 2002-06-18 Adriaan de Groot <groot@kde.org>
     Key fingerprint = 934E 31AA 80A7 723F 54F9  50ED 76AC EE01 FEA2 A3FE