About this simultaneous listen and talk problem we had… here is what
we discovered this morning.
First, the 1394 card we use is sold by Belkin and uses “Lucent
Microelectronics FW323 (rev4)”. I have tried with a different card: an
Adaptec with “Texas Instrument TSB12LV26” and to my surprise, IT WORKED.
We did not try this before because all our XP machines had Belkin cards
and all our linux machines had Adaptec. We did not realize that, and
therefore mistakenly associated the problem to the platform. I’m afraid
we don’t have other brands of card to try at the moment.
We had a look on the web for compatibility issues with this Belkin card.
It showed that this card is apparently not working very well (for
example, it is one of the few cards that does not work on linux.
Indeed, according to our tests, this card seems to behave very bad with
TALK using the current linux 1394 drivers).
So the culprit was that darn host controller. Here it is for the
record…
Mat
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Mathieu Routhier
Sent: Friday, June 04, 2004 11:44 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] 1394: stopping a ‘talk’ transfer stops all transfers?
Hi guys,
I am experiencing a specific problem in my 1394 driver and I was
wondering if this was a known problem or just something weird going on.
I am using simultaneously and independently two isochronous transfers.
The first is a LISTEN transfer, and the second is a TALK transfer. When
both transfers are running and I stop the TALK transfer, I suddenly stop
receiving callback on the LISTEN transfer, which should still be
running. I have confirmed with an analyzer that the packets are still
traveling on the bus, but the lower driver does not notify me by calling
the callback.
When this condition happens, a workaround I have found is to perform, on
the LISTEN transfer: “STOP, DETACH_BUFFER, FREE_RESOURCES ;
ALLOCATE_RESOURCES, ATTACH_BUFFER, LISTEN”. When I do this, with the
exact same parameters as before, I begin receiving callbacks again. A
simple “STOP; LISTEN” sequence is not sufficient to wake the system up.
Notice that if I am using both transfers and I stop the LISTEN transfer
instead, then the TALK transfer keeps rolling… The problem shows up
only when it is the TALK transfer that is stopped.
This is quite frightening and I wonder if this could be a bug in the
1394 lower driver even though I’d be happier to find out that this is a
problem in my own code. Is it something any of you have experienced
before? Any suggestion as to how I could better diagnose the problem?
Mathieu Routhier
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
You are currently subscribed to ntdev as: xxxxx@cvds.com
To unsubscribe send a blank email to xxxxx@lists.osr.com