[EMAIL PROTECTED] writes:

> Dag wrote:
> > o Started fixing the SMC driver as well, so please contribute!
> 
> I haven't had much time on this since I have a second laptop to play with only 
> one week per month.
> Anyway, my understanding of the problem is the DMA tx at high speed is limited 
> to 1500 bytes frames, because of a wrong setup of the chipset, or maybe the 
> driver have to reinitiate DMA transfers until there is a residue.
> Any idea ?

What I have found out is that single mode DMA is too slow for FIR (but not
for MIR) That will give you Rx overruns and Tx underruns since the DMA
cannot keep up with the transfers, which is probably why you cannot send
frames larger than 1500 bytes. The latest patch'es has fixed this and the
drivers are now using demand mode DMA! I'm making a new 2.2.14 patch right
now. You should probably try it out and check if it fixes your problems!?
 
> > o SMC driver needs more hacking. Should be quite easy to fix!
> 
>   What kind of hacking are you refering to ? Is it the typo fixes, error 
> counting and missing mutual exclusion ? Or is it something else ?

It should send out back-to-back frames like the NSC driver is doing, and
the _receive_complete() function looks very suspicious to me. Is there
really no other way than using _dma_residue() to find out how long the Rx
frame is? What if multiple back-to-back (brickwall) frames are received
before the interrupt handler is scheduled?
 
-- 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