[ltp] making Irda FIR mode faster

Laurent Gilson linux-thinkpad@linux-thinkpad.org
Tue, 30 Jan 2007 22:15:36 +0100


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=3Da8 pf=3D1 nr=3D5 (2)
21:01:39.615031 (0009.21 ms) rr:cmd < ca=3Da8 pf=3D1 nr=3D4 (2)
21:01:39.615042 (0000.01 ms) i:rsp  > ca=3Da8 pf=3D1 nr=3D5 ns=3D4 LM sl=
sap=3D1f  =

dlsap=3D02 TTP credits=3D3
         OBEX CONTINUE final=3D1 len=3D3 (8)
21:01:39.669207 (0054.16 ms) i:cmd  < ca=3Da8 pf=3D1 nr=3D5 ns=3D5 LM sl=
sap=3D02  =

dlsap=3D1f TTP credits=3D1
         OBEX PUT final=3D0 len=3D1024 body=3D[1018 bytes] {unterminated=
} (514)
21:01:39.669222 (0000.01 ms) rr:rsp > ca=3Da8 pf=3D1 nr=3D6 (2)
Segmentation fault


restarting irdadump during the transfer shows this:

21:03:01.806524 (0000.01 ms) i:rsp  > ca=3Da8 pf=3D1 nr=3D5 ns=3D7 LM sl=
sap=3D20  =

dlsap=3D02 (8)
21:03:01.861226 (0054.70 ms) i:cmd  < ca=3Da8 pf=3D1 nr=3D0 ns=3D5 LM sl=
sap=3D02  =

dlsap=3D20 (514)
21:03:01.861244 (0000.02 ms) rr:rsp > ca=3Da8 pf=3D1 nr=3D6 (2)
21:03:01.920689 (0059.45 ms) i:cmd  < ca=3Da8 pf=3D1 nr=3D0 ns=3D6 LM sl=
sap=3D02  =

dlsap=3D20 (514)
21:03:01.920703 (0000.01 ms) rr:rsp > ca=3Da8 pf=3D1 nr=3D7 (2)
21:03:01.937283 (0016.58 ms) i:cmd  < ca=3Da8 pf=3D1 nr=3D0 ns=3D7 LM sl=
sap=3D02  =

dlsap=3D20 (11)
21:03:01.937297 (0000.01 ms) rr:rsp > ca=3Da8 pf=3D1 nr=3D0 (2)
21:03:01.946498 (0009.20 ms) rr:cmd < ca=3Da8 pf=3D1 nr=3D0 (2)
21:03:01.946510 (0000.01 ms) i:rsp  > ca=3Da8 pf=3D1 nr=3D0 ns=3D0 LM sl=
sap=3D20  =

dlsap=3D02 (8)
21:03:02.001373 (0054.86 ms) i:cmd  < ca=3Da8 pf=3D1 nr=3D1 ns=3D0 LM sl=
sap=3D02  =

dlsap=3D20 (514)
21:03:02.001388 (0000.01 ms) rr:rsp > ca=3Da8 pf=3D1 nr=3D1 (2)

What makes me wonder is the dmesg:
nsc-ircc, Found chip at base=3D0x02e
nsc-ircc, driver loaded (Dag Brattli)
CLASS: registering class device: ID =3D 'irda0'
class_hotplug - name =3D 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.

Any ideas ?

Thanks.