James <[EMAIL PROTECTED]> writes:

> >I don't think I understand this last sentence. What do you mean by timer
> >interrupt? In Linux they are usually 10 ms or more, so how can you use a
> >timer interrupt in the driver?
> Since you ask #define HZ big and associated gubbins (we used this in
> alpha linux) it's horrible I didn't do it so don't look at me like
> that.

Personally I think that a default HZ of 100 is way to low. It should have
been 1000, or something appropriate in between.

> >I'm not sure if I understand your problem, but think of hard_xmit() as the
> >"producer" and tx_interrupt() as the "consumer". With proper locking,
> >things should be pretty easy. 
> Ok. I thought of this but I didn't think this would be a good enough 
> optimization, so to check we are both saying the same thing. Suppose
> four packets arrive in less that the time for the first packet to
> transmit.
> 
> hard_xmit(A)
> queues A, starts transmitter in send one frame and interrupt mode.
> hard_xmit(B)
> queues B
> hard_xmit(C)
> queues C
> hard_xmit(D)
> queues D
> TxDone interrupt
> Transmitter is restarted and asked to transmit packets B,C and D then
> stop and interrupt.
> TxDone interrupt
> Queue is now empty.
> 
> Yes?

Yes, 

.. but this is very chip dependent. In the NSC driver I can futher optimize
the driver by starting a Tx DMA of 16K and have the chip halt DMA when the
first frame is fully sent. Then the TxDone interrupt can check if there are
more frames to be sent (which the hard_xmit() function should have already
copied to DMA memory) and just let the chip continue DMA now that there are
more frames to be sent. If there are no more frames to be sent, then the
transmitter and DMA is stopped.

> > > 3) (Mathematicians  can never count) could you export the
> > > crc table from wrapper.c so it is visible in toshoboe?
> >Sure, but what do you need it for?
> The oboe doesn't reliably check CRC in SIR mode, the documentation doesn't
> claim it does, and I gave it some tests (now that I have loopback mode).
> I couldn't find an exported function (probably my fault) to check the FCS.

OK

-- Dag

-- 
   / Dag Brattli                   | The Linux-IrDA Project               /
  // University of Tromsoe, Norway | Infrared communication for Linux    //
 /// http://www.cs.uit.no/~dagb    | http://www.cs.uit.no/linux-irda/   ///

_______________________________________________
Linux-IrDA mailing list  -  [EMAIL PROTECTED]
http://www4.pasta.cs.UiT.No/mailman/listinfo/linux-irda

Reply via email to