Skip to contentSkip to conversation

2.5.42: IrDA issues

DISCUSSION ALESSANDRO.SUARDI 3 participants 5 messages Oct 23, 2002 – Oct 24, 2002

lore
Share & tools
lore
#0 lore raw
Quoted 2 lines · Alessandro Suardi
Quoted 1 line

Jean Tourrilhes wrote:

[snip]

Quoted 16 lines
Quoted 3 lines

Will provide irdadump stuff soon[-ish], I'm wading through a backlog
of, uhm, too much email. The short-form report really meant "is this a known issue ?"...

irtty is busted, that's why I asked for the driver you are
using (its clearly a driver issue). I believe smc-ircc and irport are sick as well.

Quoted 10 lines

Anyway - the box is a Dell Latitude CPx750J with this:

[root@dolphin root]# findchip -v
Found SMC FDC37N958FR Controller at 0x3f0, DevID=0x01, Rev. 1
SIR Base 0x3e8, FIR Base 0x290
IRQ = 4, DMA = 3
Enabled: yes, Suspended: no
UART compatible: yes
Half duplex delay = 3 us

Quoted 7 lines
Quoted 3 lines

So clearly I'm using smc-ircc.o.

(Of course I'll try and reproduce in 2.5.44 tonight or tomorrow).

Stop ! Daniele Peri has just released a new version of the SMC
driver (smc-ircc2, link on my web page). I would like you to try this new driver and report to me. I plan to push this new driver in the kernel soon. So, don't waste too much time on the old driver.

Unfortunately I can't compile the new driver. I modified the Makefile to
comment out versioning (which i don't use) and change kernelversion to an appropriate 2.5.44, but it fails like this:

In file included from /usr/src/linux-2.5.44/include/linux/irq.h:19,

                 from /usr/src/linux-2.5.44/include/asm/hardirq.h:6,
                 from /usr/src/linux-2.5.44/include/linux/interrupt.h:25,
                 from /usr/src/linux-2.5.44/include/linux/netdevice.h:454,
                 from smsc-ircc2.c:47:
/usr/src/linux-2.5.44/include/asm/irq.h:16:25: irq_vectors.h: No such file or directory
In file included from /usr/src/linux-2.5.44/include/asm/hardirq.h:6,
                 from /usr/src/linux-2.5.44/include/linux/interrupt.h:25,
                 from /usr/src/linux-2.5.44/include/linux/netdevice.h:454,
                 from smsc-ircc2.c:47:
/usr/src/linux-2.5.44/include/linux/irq.h:67: `NR_IRQS' undeclared here (not in a function)
In file included from /usr/src/linux-2.5.44/include/linux/irq.h:69,
                 from /usr/src/linux-2.5.44/include/asm/hardirq.h:6,
                 from /usr/src/linux-2.5.44/include/linux/interrupt.h:25,
                 from /usr/src/linux-2.5.44/include/linux/netdevice.h:454,
                 from smsc-ircc2.c:47:

/usr/src/linux-2.5.44/include/asm/hw_irq.h:27: NR_IRQS' undeclared here (not in a function) /usr/src/linux-2.5.44/include/asm/hw_irq.h:30: NR_IRQS' undeclared here (not in a function) smsc-ircc2.c: In function `smsc_ircc_setup_io':
smsc-ircc2.c:508: called object is not a function
smsc-ircc2.c:508: parse error before string constant
smsc-ircc2.c: In function `smsc_ircc_setup_netdev':
smsc-ircc2.c:637: called object is not a function
smsc-ircc2.c:637: parse error before string constant
smsc-ircc2.c:666: called object is not a function
smsc-ircc2.c:666: parse error before string constant
smsc-ircc2.c: In function `smsc_ircc_net_ioctl':
smsc-ircc2.c:707: called object is not a function
smsc-ircc2.c:707: parse error before string constant
smsc-ircc2.c: In function `smsc_ircc_hard_xmit_sir':
smsc-ircc2.c:798: called object is not a function
smsc-ircc2.c:798: parse error before string constant
smsc-ircc2.c: In function `smsc_ircc_set_fir_speed':
smsc-ircc2.c:840: called object is not a function
smsc-ircc2.c:840: parse error before string constant
smsc-ircc2.c: In function `smsc_ircc_fir_start':
smsc-ircc2.c:893: called object is not a function
smsc-ircc2.c:893: parse error before string constant
smsc-ircc2.c: In function `smsc_ircc_fir_stop':
smsc-ircc2.c:941: called object is not a function
smsc-ircc2.c:941: parse error before string constant
smsc-ircc2.c: In function `smsc_ircc_change_speed':
smsc-ircc2.c:967: called object is not a function
smsc-ircc2.c:967: parse error before string constant
smsc-ircc2.c: In function `smsc_ircc_dma_receive_complete':
smsc-ircc2.c:1350: called object is not a function
smsc-ircc2.c:1350: parse error before string constant
smsc-ircc2.c:1357: called object is not a function
smsc-ircc2.c:1357: parse error before string constant
smsc-ircc2.c: In function `smsc_ircc_interrupt_sir':
smsc-ircc2.c:1485: called object is not a function
smsc-ircc2.c:1485: parse error before string constant
smsc-ircc2.c: In function `smsc_ircc_net_open':
smsc-ircc2.c:1613: called object is not a function
smsc-ircc2.c:1613: parse error before string constant
smsc-ircc2.c: In function `smsc_ircc_sir_start':
smsc-ircc2.c:1785: called object is not a function
smsc-ircc2.c:1785: parse error before string constant
smsc-ircc2.c: In function `smsc_ircc_sir_stop':
smsc-ircc2.c:1824: called object is not a function
smsc-ircc2.c:1824: parse error before string constant
smsc-ircc2.c: In function `smsc_ircc_sir_write_wakeup':
smsc-ircc2.c:1875: called object is not a function
smsc-ircc2.c:1875: parse error before string constant
smsc-ircc2.c: In function `smsc_ircc_look_for_chips':
smsc-ircc2.c:2014: called object is not a function
smsc-ircc2.c:2014: parse error before string constant
smsc-ircc2.c: In function `smc_superio_flat':
smsc-ircc2.c:2057: called object is not a function
smsc-ircc2.c:2057: parse error before string constant
smsc-ircc2.c:2058: called object is not a function
smsc-ircc2.c:2058: parse error before string constant
smsc-ircc2.c:2075: called object is not a function
smsc-ircc2.c:2075: parse error before string constant
smsc-ircc2.c: In function `smc_superio_paged':
smsc-ircc2.c:2096: warning: unused variable `dma'
smsc-ircc2.c:2096: warning: unused variable `irq'
smsc-ircc2.c: In function `smsc_ircc_probe':
smsc-ircc2.c:2149: called object is not a function
smsc-ircc2.c:2149: parse error before string constant
smsc-ircc2.c: In function `smsc_ircc_set_transceiver_smsc_ircc_atc':
smsc-ircc2.c:2277: called object is not a function
smsc-ircc2.c:2277: parse error before string constant
smsc-ircc2.c:2277: warning: left-hand operand of comma expression has no effect smsc-ircc2.c:2277: parse error before ')' token
smsc-ircc2.c: At top level:
smsc-ircc2.c:1819: warning: smsc_ircc_sir_stop' defined but not used smsc-ircc2.c:755: warning: smsc_ircc_timeout' defined but not used
make: *** [smsc-ircc2.o] Error 1

This happens with both drivers pointed by your page. Perhaps 2.5.44 is too new for this driver ?

--alessandro

#1 lore raw
Quoted 33 lines · ALESSANDRO.SUARDI
Quoted 2 lines · Alessandro Suardi
Quoted 1 line

Jean Tourrilhes wrote:

[snip]

Quoted 16 lines
Quoted 3 lines

Will provide irdadump stuff soon[-ish], I'm wading through a backlog
of, uhm, too much email. The short-form report really meant "is this a known issue ?"...

irtty is busted, that's why I asked for the driver you are
using (its clearly a driver issue). I believe smc-ircc and irport are sick as well.

Quoted 10 lines

Anyway - the box is a Dell Latitude CPx750J with this:

[root@dolphin root]# findchip -v
Found SMC FDC37N958FR Controller at 0x3f0, DevID=0x01, Rev. 1
SIR Base 0x3e8, FIR Base 0x290
IRQ = 4, DMA = 3
Enabled: yes, Suspended: no
UART compatible: yes
Half duplex delay = 3 us

Quoted 7 lines
Quoted 3 lines

So clearly I'm using smc-ircc.o.

(Of course I'll try and reproduce in 2.5.44 tonight or tomorrow).

Stop ! Daniele Peri has just released a new version of the SMC
driver (smc-ircc2, link on my web page). I would like you to try this new driver and report to me. I plan to push this new driver in the kernel soon. So, don't waste too much time on the old driver.

Unfortunately I can't compile the new driver. I modified the Makefile to
comment out versioning (which i don't use) and change kernelversion to an appropriate 2.5.44, but it fails like this:

Quoted 6 lines

In file included from /usr/src/linux-2.5.44/include/linux/irq.h:19,

                 from /usr/src/linux-2.5.44/include/asm/hardirq.h:6,
                 from /usr/src/linux-2.5.44/include/linux/interrupt.h:25,
                 from /usr/src/linux-2.5.44/include/linux/netdevice.h:454,
                 from smsc-ircc2.c:47:

/usr/src/linux-2.5.44/include/asm/irq.h:16:25: irq_vectors.h: No such file or directory

Wow ! That's a weird one.
The file in question is in .../arch/i386/mach-generic/. You
may be able to modify the compile directive to add that to the compilation (a "-I" argument).
Alternatively, you can drop the source code directly in the
kernel (you just replace the old smc-ircc.o with the new one and recompile).

Quoted 2 lines

This happens with both drivers pointed by your page. Perhaps 2.5.44 is too new for this driver ?

Ask Daniele...

Quoted 1 line

--alessandro

	Have fun...

	Jean
#4 lore raw
In reply to ALESSANDRO.SUARDI
Quoted 6 lines · ALESSANDRO.SUARDI

/usr/src/linux-2.5.44/include/linux/irq.h:67: `NR_IRQS' undeclared here (not in a function) In file included from /usr/src/linux-2.5.44/include/linux/irq.h:69,

                 from /usr/src/linux-2.5.44/include/asm/hardirq.h:6,
                 from /usr/src/linux-2.5.44/include/linux/interrupt.h:25,
                 from /usr/src/linux-2.5.44/include/linux/netdevice.h:454,
                 from smsc-ircc2.c:47:

I've no idea whether smcc-ircc2 is (already) meant to compile with 2.5. However, when compiling stuff outside of an official 2.5.3x or later kernel tree I've experienced the same problem. For me the solution was to add the arch-specific asm-include explicitly in the Makefile - i.e. try adding some "-I/usr/src/linux/arch/i386/mach-generic" or similar there.

Martin

#2 lore raw
In reply to Jean Tourrilhes

Jean Tourrilhes wrote:

[snip]

Quoted 17 lines
Quoted 9 lines
Quoted 4 lines

Stop ! Daniele Peri has just released a new version of the SMC
driver (smc-ircc2, link on my web page). I would like you to try this new driver and report to me. I plan to push this new driver in the kernel soon. So, don't waste too much time on the old driver.

Unfortunately I can't compile the new driver. I modified the Makefile to comment out versioning (which i don't use) and change kernelversion to an appropriate 2.5.44, but it fails like this:

Quoted 6 lines

In file included from /usr/src/linux-2.5.44/include/linux/irq.h:19,

                from /usr/src/linux-2.5.44/include/asm/hardirq.h:6,
                from /usr/src/linux-2.5.44/include/linux/interrupt.h:25,
                from /usr/src/linux-2.5.44/include/linux/netdevice.h:454,
                from smsc-ircc2.c:47:

/usr/src/linux-2.5.44/include/asm/irq.h:16:25: irq_vectors.h: No such file or directory

Quoted 4 lines

Wow ! That's a weird one.
The file in question is in .../arch/i386/mach-generic/. You
may be able to modify the compile directive to add that to the compilation (a "-I" argument).

OK, this is a beginnning :)

I also had to replace all (mis)usages of __FUNCTION__ in printks,
ERROR and WARNING macros to get the driver to build, and finally I built and loaded it.

So - with this driver the IrDA communication hangs as soon as the
first messages try to go from the PPP script to the phone, and I have to kill irattach and restart it to see anything more from irdadump.

Relevant info... from dmesg:

-------------------------------------------------------------------
smsc_ircc_look_for_chips(): probing: 0x3f0 for: 0x0d smsc_ircc_probe(): cfgbase: 0x3f0, reg: 0x0d, type: FDC smsc_ircc_probe(): cfgbase: 0x3f0, reg: 0x20, type: FDC found SMC SuperIO Chip (devid=0x09 rev=08 base=0x03f0): FDC37N958FR SMsC IrDA Controller found
IrCC version 1.1, firport 0x290, sirport 0x3e8 dma=3, irq=4
smsc_ircc_setup_io(): reading chip settings: dma: 255, irq: 255
Toshiba Satellite 1800 (GP data pin select) transceiver found
IrDA: Registered device irda0 smsc_ircc_look_for_chips(): probing: 0x370 for: 0x0d smsc_ircc_probe(): cfgbase: 0x370, reg: 0x0d, type: FDC smsc_ircc_probe(): cfgbase: 0x370, reg: 0x20, type: FDC smsc_ircc_look_for_chips(): probing: 0xe0 for: 0x0d smsc_ircc_probe(): cfgbase: 0xe0, reg: 0x0d, type: FDC smsc_ircc_probe(): cfgbase: 0xe0, reg: 0x20, type: FDC smsc_ircc_look_for_chips(): probing: 0x2e for: 0x0e smsc_ircc_probe(): cfgbase: 0x2e, reg: 0x0d, type: LPC smsc_ircc_probe(): cfgbase: 0x2e, reg: 0x20, type: LPC smsc_ircc_look_for_chips(): probing: 0x4e for: 0x0e smsc_ircc_probe(): cfgbase: 0x4e, reg: 0x0d, type: LPC smsc_ircc_probe(): cfgbase: 0x4e, reg: 0x20, type: LPC smsc_ircc_change_speed(): changing speed to: 9600 smsc_ircc_sir_start()
CSLIP: code copyright 1989 Regents of the University of California PPP generic driver version 2.4.2 smsc_ircc_hard_xmit_sir(): changing speed. smsc_ircc_change_speed(): changing speed to: 1152000 smsc_ircc_fir_start()
smsc_ircc_set_fir_speed(): changing speed to: 1152000 IrLAP, no activity on link!
IrLAP, no activity on link!
IrLAP, no activity on link!
IrLAP, no activity on link!
-------------------------------------------------------------------

(1152000 should possibly be 115200 ?)

And irdadump says:

--------------------------------------------------------
09:03:00.842829 xid:cmd 589c38b5 > ffffffff S=6 s=0 (14)
09:03:00.932819 xid:cmd 589c38b5 > ffffffff S=6 s=1 (14)
09:03:01.022788 xid:cmd 589c38b5 > ffffffff S=6 s=2 (14)
09:03:01.112789 xid:cmd 589c38b5 > ffffffff S=6 s=3 (14)
09:03:01.202787 xid:cmd 589c38b5 > ffffffff S=6 s=4 (14)
09:03:01.292756 xid:cmd 589c38b5 > ffffffff S=6 s=5 (14)
09:03:01.369859 xid:rsp 589c38b5 < bb700000 S=6 s=5 Nokia 6310 hint=b125 [ PnP Modem Fax Telephony IrCOMM IrOBEX ] (27) 09:03:01.382763 xid:cmd 589c38b5 > ffffffff S=6 s=* dolphin hint=0400 [ Computer ] (23) 09:03:01.422691 snrm:cmd ca=fe pf=1 589c38b5 > bb700000 new-ca=66 (33)
09:03:01.524835 ua:rsp ca=66 pf=1 589c38b5 < bb700000 (31)
09:03:01.524997 rr:cmd > ca=66 pf=1 nr=0 (2)
09:03:01.774694 rr:cmd > ca=66 pf=1 nr=0 (2)
09:03:02.274609 rr:cmd > ca=66 pf=1 nr=0 (2)
09:03:02.774533 rr:cmd > ca=66 pf=1 nr=0 (2)
--------------------------------------------------------

Then hangs (all this is with the 20021007 driver).

Hope it's helpful, ciao,

--alessandro

"everything dies, baby that's a fact
but maybe everything that dies someday comes back"
(Bruce Springsteen, "Atlantic City")

#3 lore raw
Quoted 101 lines · Alessandro Suardi

Jean Tourrilhes wrote:

[snip]

Quoted 18 lines
Quoted 9 lines
Quoted 4 lines

Stop ! Daniele Peri has just released a new version of the SMC
driver (smc-ircc2, link on my web page). I would like you to try this new driver and report to me. I plan to push this new driver in the kernel soon. So, don't waste too much time on the old driver.

Unfortunately I can't compile the new driver. I modified the Makefile to comment out versioning (which i don't use) and change kernelversion to an appropriate 2.5.44, but it fails like this:

Quoted 7 lines

In file included from /usr/src/linux-2.5.44/include/linux/irq.h:19,

               from /usr/src/linux-2.5.44/include/asm/hardirq.h:6,
               from /usr/src/linux-2.5.44/include/linux/interrupt.h:25,
               from /usr/src/linux-2.5.44/include/linux/netdevice.h:454,
               from smsc-ircc2.c:47:

/usr/src/linux-2.5.44/include/asm/irq.h:16:25: irq_vectors.h: No such file or directory

Quoted 4 lines

Wow ! That's a weird one.
The file in question is in .../arch/i386/mach-generic/. You
may be able to modify the compile directive to add that to the compilation (a "-I" argument).

OK, this is a beginnning :)

I also had to replace all (mis)usages of __FUNCTION__ in printks,
ERROR and WARNING macros to get the driver to build, and finally I built and loaded it.

So - with this driver the IrDA communication hangs as soon as the
first messages try to go from the PPP script to the phone, and I have to kill irattach and restart it to see anything more from irdadump.

Relevant info... from dmesg:

-------------------------------------------------------------------
smsc_ircc_look_for_chips(): probing: 0x3f0 for: 0x0d smsc_ircc_probe(): cfgbase: 0x3f0, reg: 0x0d, type: FDC smsc_ircc_probe(): cfgbase: 0x3f0, reg: 0x20, type: FDC found SMC SuperIO Chip (devid=0x09 rev=08 base=0x03f0): FDC37N958FR SMsC IrDA Controller found
IrCC version 1.1, firport 0x290, sirport 0x3e8 dma=3, irq=4
smsc_ircc_setup_io(): reading chip settings: dma: 255, irq: 255
Toshiba Satellite 1800 (GP data pin select) transceiver found
IrDA: Registered device irda0 smsc_ircc_look_for_chips(): probing: 0x370 for: 0x0d smsc_ircc_probe(): cfgbase: 0x370, reg: 0x0d, type: FDC smsc_ircc_probe(): cfgbase: 0x370, reg: 0x20, type: FDC smsc_ircc_look_for_chips(): probing: 0xe0 for: 0x0d smsc_ircc_probe(): cfgbase: 0xe0, reg: 0x0d, type: FDC smsc_ircc_probe(): cfgbase: 0xe0, reg: 0x20, type: FDC smsc_ircc_look_for_chips(): probing: 0x2e for: 0x0e smsc_ircc_probe(): cfgbase: 0x2e, reg: 0x0d, type: LPC smsc_ircc_probe(): cfgbase: 0x2e, reg: 0x20, type: LPC smsc_ircc_look_for_chips(): probing: 0x4e for: 0x0e smsc_ircc_probe(): cfgbase: 0x4e, reg: 0x0d, type: LPC smsc_ircc_probe(): cfgbase: 0x4e, reg: 0x20, type: LPC smsc_ircc_change_speed(): changing speed to: 9600 smsc_ircc_sir_start()
CSLIP: code copyright 1989 Regents of the University of California PPP generic driver version 2.4.2 smsc_ircc_hard_xmit_sir(): changing speed. smsc_ircc_change_speed(): changing speed to: 1152000 smsc_ircc_fir_start()
smsc_ircc_set_fir_speed(): changing speed to: 1152000 IrLAP, no activity on link!
IrLAP, no activity on link!
IrLAP, no activity on link!
IrLAP, no activity on link!
-------------------------------------------------------------------

(1152000 should possibly be 115200 ?)

And irdadump says:

--------------------------------------------------------
09:03:00.842829 xid:cmd 589c38b5 > ffffffff S=6 s=0 (14) 09:03:00.932819 xid:cmd 589c38b5 > ffffffff S=6 s=1 (14) 09:03:01.022788 xid:cmd 589c38b5 > ffffffff S=6 s=2 (14) 09:03:01.112789 xid:cmd 589c38b5 > ffffffff S=6 s=3 (14) 09:03:01.202787 xid:cmd 589c38b5 > ffffffff S=6 s=4 (14) 09:03:01.292756 xid:cmd 589c38b5 > ffffffff S=6 s=5 (14) 09:03:01.369859 xid:rsp 589c38b5 < bb700000 S=6 s=5 Nokia 6310 hint=b125 [ PnP Modem Fax Telephony IrCOMM IrOBEX ] (27) 09:03:01.382763 xid:cmd 589c38b5 > ffffffff S=6 s=* dolphin hint=0400 [ Computer ] (23)
09:03:01.422691 snrm:cmd ca=fe pf=1 589c38b5 > bb700000 new-ca=66 (33) 09:03:01.524835 ua:rsp ca=66 pf=1 589c38b5 < bb700000 (31) 09:03:01.524997 rr:cmd > ca=66 pf=1 nr=0 (2)
09:03:01.774694 rr:cmd > ca=66 pf=1 nr=0 (2)
09:03:02.274609 rr:cmd > ca=66 pf=1 nr=0 (2)
09:03:02.774533 rr:cmd > ca=66 pf=1 nr=0 (2)
--------------------------------------------------------

Quoted 6 lines

Then hangs (all this is with the 20021007 driver).

Hope it's helpful, ciao,

--alessandro

That's a speed problem (1152000 is MIR). You are supposed to
select the proper module parameters to get speed changes to MIR/FIR to work properly (check IrDA mailing list messages from Daniele). Another solution is to limit the speed of the stack to 115200 (115k - see my web page for details).

Good luck...

Jean