[ltp] making Irda FIR mode faster

Simon Williams linux-thinkpad@linux-thinkpad.org
Thu, 01 Feb 2007 15:28:52 +0000


Laurent Gilson wrote:
> Hello,
> 
> i'm trying to get fast irda working. SIR works like a charm but is dead
> slow (+-5KB/s). Removing the SIR modules, stopping irattach, modprobing
> nsc_ircc and relaunching irattach works, but it still slow (+-10KB/s). I
> was thinking more about 350-400 KB/s.
> 
> irdadump did not realy show me something informative:
> 
> 21:01:39.605820 (0000.01 ms) rr:rsp > ca=a8 pf=1 nr=5 (2)
> 21:01:39.615031 (0009.21 ms) rr:cmd < ca=a8 pf=1 nr=4 (2)
> 21:01:39.615042 (0000.01 ms) i:rsp  > ca=a8 pf=1 nr=5 ns=4 LM slsap=1f 
> dlsap=02 TTP credits=3
>         OBEX CONTINUE final=1 len=3 (8)
> 21:01:39.669207 (0054.16 ms) i:cmd  < ca=a8 pf=1 nr=5 ns=5 LM slsap=02 
> dlsap=1f TTP credits=1
>         OBEX PUT final=0 len=1024 body=[1018 bytes] {unterminated} (514)
> 21:01:39.669222 (0000.01 ms) rr:rsp > ca=a8 pf=1 nr=6 (2)
> Segmentation fault
> 
> 
> restarting irdadump during the transfer shows this:
> 
> 21:03:01.806524 (0000.01 ms) i:rsp  > ca=a8 pf=1 nr=5 ns=7 LM slsap=20 
> dlsap=02 (8)
> 21:03:01.861226 (0054.70 ms) i:cmd  < ca=a8 pf=1 nr=0 ns=5 LM slsap=02 
> dlsap=20 (514)
> 21:03:01.861244 (0000.02 ms) rr:rsp > ca=a8 pf=1 nr=6 (2)
> 21:03:01.920689 (0059.45 ms) i:cmd  < ca=a8 pf=1 nr=0 ns=6 LM slsap=02 
> dlsap=20 (514)
> 21:03:01.920703 (0000.01 ms) rr:rsp > ca=a8 pf=1 nr=7 (2)
> 21:03:01.937283 (0016.58 ms) i:cmd  < ca=a8 pf=1 nr=0 ns=7 LM slsap=02 
> dlsap=20 (11)
> 21:03:01.937297 (0000.01 ms) rr:rsp > ca=a8 pf=1 nr=0 (2)
> 21:03:01.946498 (0009.20 ms) rr:cmd < ca=a8 pf=1 nr=0 (2)
> 21:03:01.946510 (0000.01 ms) i:rsp  > ca=a8 pf=1 nr=0 ns=0 LM slsap=20 
> dlsap=02 (8)
> 21:03:02.001373 (0054.86 ms) i:cmd  < ca=a8 pf=1 nr=1 ns=0 LM slsap=02 
> dlsap=20 (514)
> 21:03:02.001388 (0000.01 ms) rr:rsp > ca=a8 pf=1 nr=1 (2)
> 
> What makes me wonder is the dmesg:
> nsc-ircc, Found chip at base=0x02e
> nsc-ircc, driver loaded (Dag Brattli)
> CLASS: registering class device: ID = 'irda0'
> class_hotplug - name = irda0
> IrDA: Registered device irda0
> nsc-ircc, Using dongle: IBM31T1100 or Temic TFDS6000/TFDS6500
> irlap_change_speed(), setting speed to 9600
> irlap_change_speed(), setting speed to 115200
> irlmp_state_dtr(), Unknown event LM_LAP_CONNECT_CONFIRM on LSAP 0x0
> irlmp_state_dtr(), Unknown event LM_LAP_CONNECT_CONFIRM on LSAP 0x0
> irlap_change_speed(), setting speed to 9600
> 
> 115200 ? FIR is supposed to do ~4MBit. Why does it not switch to 4000000 
> ? Setting
> 4mbits in /proc/sys/net/irda/max_baud_rate gets overwritten at each 
> transfer.

What are you getting it to communicate with? My guess is that it's 
slowing down to the speed of the other device.

At least you got IrDA working. It worked great for me with my T20. After 
hours and hours of various attempts, I gave up trying to get even SIR 
working with my T23.