Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 May 2011 23:48:30 +0200
From:      "Daniel O'Connor" <doconnor@gsoft.com.au>
To:        freebsd-usb@freebsd.org
Subject:   USB driver locking
Message-ID:  <91D613ED-CA0F-41BF-AD53-2FD42529DCF8@gsoft.com.au>

next in thread | raw e-mail | index | archive | help
Hi,
I have a Cypress FX2 based USB interface board connected to our radar =
data acquisition chassis. It is used for configuring the hardware and =
getting data back to the PC.

I wrote a driver which is a very skinny wrapper around the (very handy) =
usb_fifo device node code.

I have several end points, all bulk. 2 are for serial comms, 2 for a low =
speed control bus and 1 for high speed data back to the PC.

The PC sends 10-250 byte packets out to modules on the serial bus and =
gets replies (after a 10-500 msec) of a similar size.

The low speed control bus is driven by the FX2 and the PC sends it 3 =
byte packets which is processes to read/write on the control bus, then =
sends a 3 byte packet back.

I find that my application has rare problems where it does not get a =
reply from the micro to a control bus packet, or perhaps the micro =
doesn't receive it (I need to add a sequence number or similar to my =
protocol to try and detect it I think).

I found that this problem happens much less rarely (less than once a =
day) on a UP machine than on an SMP one.

Given that I am wondering if it is some sort of locking issue, and if =
anyone has seen anything similar?

I can supply the driver code if anyone is interested :)

Thanks.

--
Daniel O'Connor software and network engineer
for Genesis Software - http://www.gsoft.com.au
"The nice thing about standards is that there
are so many of them to choose from."
  -- Andrew Tanenbaum
GPG Fingerprint - 5596 B766 97C0 0E94 4347 295E E593 DC20 7B3F CE8C









Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?91D613ED-CA0F-41BF-AD53-2FD42529DCF8>