Hi,

I just started to get into touch with the IrDA stuff with the background to
get it work on my Dell Latitude C600 with Nokia 8210 and Kodak DC290 ...

So I've almost no clue on the IrDA stuff and you should be prepared
for some newbie questions and Ihope you do not consider this as spam ;-)

FYI:

1) 2.4.7 std kernel with SMC stuff enabled as well as all the options stuff
   FIR on the C600 enabled , Com4

This seems to be working, when aliasing ird0 to irport and
irattach /dev/ttyS3.  At least syslog says, when sending an entry from
the 8210 to the C600:

Sep 12 07:12:52 kermit kernel: IrDA: Registered device irda1
Sep 12 07:12:53 kermit kernel: irlmp_register_client_R17f18bfb()
Sep 12 07:12:53 kermit kernel: irtty_net_open()
Sep 12 07:12:53 kermit kernel: irlap_change_speed(), setting speed to 9600
Sep 12 07:14:11 kermit kernel: irlap_change_speed(), setting speed to 115200
Sep 12 07:14:12 kermit kernel: irlmp_state_active(), Unknown event 
LM_LAP_DISCOVERY_CONFIRM
Sep 12 07:14:12 kermit kernel: iriap_connect_indication()
Sep 12 07:14:12 kermit kernel: irlap_recv_disc_frame()
Sep 12 07:14:12 kermit kernel: irlap_change_speed(), setting speed to 9600
Sep 12 07:14:14 kermit kernel: irlmp_link_unitdata_indication(), found no matching 
LSAP!

and cat /proc/net/irda/discovery

nickname: Nokia 8210, hint: 0xb125, saddr: 0xfb289703, daddr: 0xbe0e0000


But I'm wondering about the "irlmp_state_active(), Unknown event 
LM_LAP_DISCOVERY_CONFIRM". Is this ok and is it worth to go further trying out some 
stuff
or does this need to be fixed first? 


2) I tried to get the SMC driver working, since this seems to be the only way
   to get FIR.

   So I aliases irda0 to smc-ircc. Unfortunately this didn't work with
   the default 2.4.7 kernel. So I patched smc-ir.[ch] as described in
   the README on http://www.linofee.org/~elkner/irda/patches/

   Loading the modul works - at least when I try it the second time.
   I.e. after a reboot, doing modprobe smc-ircc I get:

/lib/modules/2.4.7-xfs/kernel/drivers/net/irda/smc-ircc.o: init_module: No such device
/lib/modules/2.4.7-xfs/kernel/drivers/net/irda/smc-ircc.o: Hint: insmod errors can be 
caused by incorrect module parameters, including invalid IO or IRQ parameters
/lib/modules/2.4.7-xfs/kernel/drivers/net/irda/smc-ircc.o: insmod 
/lib/modules/2.4.7-xfs/kernel/drivers/net/irda/smc-ircc.o failed
/lib/modules/2.4.7-xfs/kernel/drivers/net/irda/smc-ircc.o: insmod smc-ircc failed

        and the syslog says:

Sep 12 07:38:57 kermit kernel: irda_init()
Sep 12 07:38:57 kermit kernel: irlmp_init()
Sep 12 07:38:57 kermit kernel: ircc_init
Sep 12 07:38:57 kermit kernel: ircc_init Try to open all known SMC chipsets
Sep 12 07:38:57 kermit kernel: smc_superio_flat()
Sep 12 07:38:57 kermit kernel: smc_probe()
Sep 12 07:38:57 kermit kernel: smc_access()
Sep 12 07:38:57 kermit kernel: smc_access()
Sep 12 07:38:57 kermit kernel: smc_superio_paged()
Sep 12 07:38:57 kermit kernel: smc_probe()
Sep 12 07:38:57 kermit kernel: smc_access()
Sep 12 07:38:57 kermit last message repeated 2 times
Sep 12 07:38:57 kermit kernel: found SMC SuperIO Chip (devid=0x0b rev=00 base=0x03f0): 
FDC37N972
Sep 12 07:38:57 kermit kernel: ircc_open
Sep 12 07:38:57 kermit kernel: SMC IrDA Controller found
Sep 12 07:38:57 kermit kernel:  IrCC version 2.0, firport 0x300, sirport 0x2e8 dma=3, 
irq=3
Sep 12 07:38:57 kermit kernel: irport_open_Rbfa366e7()
Sep 12 07:38:57 kermit kernel: irport_open_Rbfa366e7(), can't get iobase of 0x2e8
Sep 12 07:38:57 kermit kernel: smc_superio_flat()
Sep 12 07:38:57 kermit kernel: smc_probe()
Sep 12 07:38:57 kermit kernel: smc_access()
Sep 12 07:38:57 kermit kernel: smc_superio_paged()
Sep 12 07:38:57 kermit kernel: smc_probe()
Sep 12 07:38:57 kermit kernel: smc_access()
Sep 12 07:38:57 kermit kernel: smc_superio_flat()
Sep 12 07:38:57 kermit kernel: smc_probe()
Sep 12 07:38:57 kermit kernel: smc_access()
Sep 12 07:38:57 kermit kernel: smc_superio_paged()
Sep 12 07:38:57 kermit kernel: smc_probe()
Sep 12 07:38:57 kermit kernel: smc_access()
Sep 12 07:38:57 kermit kernel: smc_superio_flat()
Sep 12 07:38:57 kermit kernel: smc_probe()
Sep 12 07:38:57 kermit kernel: smc_access()
Sep 12 07:38:57 kermit kernel: smc_superio_paged()
Sep 12 07:38:57 kermit kernel: smc_probe()
Sep 12 07:38:57 kermit kernel: smc_access()
Sep 12 07:38:57 kermit kernel: irport_close_R75304489(), Releasing Region 2e8


        When I try it a second time, there is no error and syslog says:

Sep 12 07:39:56 kermit kernel: irda_init()
Sep 12 07:39:56 kermit kernel: irlmp_init()
Sep 12 07:39:56 kermit kernel: ircc_init
Sep 12 07:39:56 kermit kernel: ircc_init Try to open all known SMC chipsets
Sep 12 07:39:56 kermit kernel: smc_superio_flat()
Sep 12 07:39:56 kermit kernel: smc_probe()
Sep 12 07:39:56 kermit kernel: smc_access()
Sep 12 07:39:56 kermit kernel: smc_access()
Sep 12 07:39:56 kermit kernel: smc_superio_paged()
Sep 12 07:39:56 kermit kernel: smc_probe()
Sep 12 07:39:56 kermit kernel: smc_access()
Sep 12 07:39:56 kermit last message repeated 2 times
Sep 12 07:39:56 kermit kernel: found SMC SuperIO Chip (devid=0x0b rev=00 base=0x03f0): 
FDC37N972
Sep 12 07:39:56 kermit kernel: ircc_open
Sep 12 07:39:56 kermit kernel: SMC IrDA Controller found
Sep 12 07:39:56 kermit kernel:  IrCC version 2.0, firport 0x300, sirport 0x2e8 dma=3, 
irq=3
Sep 12 07:39:56 kermit kernel: irport_open_Rbfa366e7()
Sep 12 07:39:56 kermit kernel: IrDA: Registered device irda0
Sep 12 07:39:56 kermit kernel: smc_superio_flat()
Sep 12 07:39:56 kermit kernel: smc_probe()
Sep 12 07:39:56 kermit kernel: smc_access()
Sep 12 07:39:56 kermit kernel: smc_superio_paged()
Sep 12 07:39:56 kermit kernel: smc_probe()
Sep 12 07:39:56 kermit kernel: smc_access()
Sep 12 07:39:56 kermit kernel: smc_superio_flat()
Sep 12 07:39:56 kermit kernel: smc_probe()
Sep 12 07:39:56 kermit kernel: smc_access()
Sep 12 07:39:56 kermit kernel: smc_superio_paged()
Sep 12 07:39:56 kermit kernel: smc_probe()
Sep 12 07:39:56 kermit kernel: smc_access()
Sep 12 07:39:56 kermit kernel: smc_superio_flat()
Sep 12 07:39:56 kermit kernel: smc_probe()
Sep 12 07:39:56 kermit kernel: smc_access()
Sep 12 07:39:56 kermit kernel: smc_superio_paged()
Sep 12 07:39:56 kermit kernel: smc_probe()
Sep 12 07:39:56 kermit kernel: smc_access()

        So I guess something still needs to be fixed?

3) Now I try irattach irda0 -s 1 of course without preprobing smc-ircc
   1st time it does not work, second time I get a kernel panic (BTW:
   I really like xfs - saves a lot of time and headaches ;-)):

Sep 12 07:47:32 kermit kernel: irda_init()
Sep 12 07:47:32 kermit kernel: irlmp_init()
Sep 12 07:47:32 kermit kernel: ircc_init
Sep 12 07:47:32 kermit kernel: ircc_init Try to open all known SMC chipsets
Sep 12 07:47:32 kermit kernel: smc_superio_flat()
Sep 12 07:47:32 kermit kernel: smc_probe()
Sep 12 07:47:32 kermit kernel: smc_access()
Sep 12 07:47:32 kermit kernel: smc_access()
Sep 12 07:47:32 kermit kernel: smc_superio_paged()
Sep 12 07:47:32 kermit kernel: smc_probe()
Sep 12 07:47:32 kermit kernel: smc_access()
Sep 12 07:47:32 kermit last message repeated 2 times
Sep 12 07:47:32 kermit kernel: found SMC SuperIO Chip (devid=0x0b rev=00 base=0x03f0): 
FDC37N972
Sep 12 07:47:32 kermit kernel: ircc_open
Sep 12 07:47:32 kermit kernel: SMC IrDA Controller found
Sep 12 07:47:32 kermit kernel:  IrCC version 2.0, firport 0x300, sirport 0x2e8 dma=3, 
irq=3
Sep 12 07:47:32 kermit kernel: irport_open_Rbfa366e7()
Sep 12 07:47:33 kermit kernel: IrDA: Registered device irda0
Sep 12 07:47:33 kermit kernel: smc_superio_flat()
Sep 12 07:47:33 kermit kernel: smc_probe()
Sep 12 07:47:33 kermit kernel: smc_access()
Sep 12 07:47:33 kermit kernel: smc_superio_paged()
Sep 12 07:47:33 kermit kernel: smc_probe()
Sep 12 07:47:33 kermit kernel: smc_access()
Sep 12 07:47:33 kermit kernel: smc_superio_flat()
Sep 12 07:47:33 kermit kernel: smc_probe()
Sep 12 07:47:33 kermit kernel: smc_access()
Sep 12 07:47:33 kermit kernel: smc_superio_paged()
Sep 12 07:47:33 kermit kernel: smc_probe()
Sep 12 07:47:33 kermit kernel: smc_access()
Sep 12 07:47:33 kermit kernel: smc_superio_flat()
Sep 12 07:47:33 kermit kernel: smc_probe()
Sep 12 07:47:33 kermit kernel: smc_access()
Sep 12 07:47:33 kermit kernel: smc_superio_paged()
Sep 12 07:47:33 kermit kernel: smc_probe()
Sep 12 07:47:33 kermit kernel: smc_access()
Sep 12 07:47:33 kermit kernel: irlmp_register_client_R17f18bfb()
Sep 12 07:47:33 kermit kernel: ircc_net_open
Sep 12 07:47:33 kermit kernel: spurious 8259A interrupt: IRQ7.
Sep 12 07:47:33 kermit kernel: irlap_change_speed(), setting speed to 9600

lsmod:

smc-ircc               10187   1 
irport                  9592   1  [smc-ircc]
irda                  175146   1  [smc-ircc irport]


4) When I preload smc-ircc and after this I do a irattach irda0 -s 1

syslog says:

Sep 12 07:55:38 kermit kernel: irlmp_register_client_R17f18bfb()
Sep 12 07:55:38 kermit kernel: ircc_net_open
Sep 12 07:55:38 kermit kernel: spurious 8259A interrupt: IRQ7.
Sep 12 07:55:38 kermit kernel: irlap_change_speed(), setting speed to 9600
Sep 12 07:55:39 kermit kernel: ircc_change_speed
Sep 12 07:55:39 kermit kernel: ircc_change_speed(), using irport to change speed to 
9600
Sep 12 07:55:39 kermit kernel: irport_change_speed_complete()

        Now I send an entry from the 8210 to the C600:

Sep 12 07:57:20 kermit kernel: NETDEV WATCHDOG: irda0: transmit timed out
Sep 12 07:57:20 kermit kernel: irda0: transmit timed out
Sep 12 07:57:20 kermit kernel: ircc_change_speed
Sep 12 07:57:20 kermit kernel: ircc_change_speed(), using irport to change speed to 
9600
Sep 12 07:57:21 kermit kernel: irlap_change_speed(), setting speed to 115200
Sep 12 07:57:21 kermit kernel: ircc_change_speed
Sep 12 07:57:21 kermit kernel: ircc_change_speed(), using irport to change speed to 
115200
Sep 12 07:57:21 kermit kernel: irport_change_speed_complete()
Sep 12 07:57:21 kermit kernel: irlmp_state_active(), Unknown event 
LM_LAP_DISCOVERY_CONFIRM
Sep 12 07:57:25 kermit kernel: IrLAP, no activity on link!
Sep 12 07:57:34 kermit kernel: irlap_change_speed(), setting speed to 9600
Sep 12 07:57:34 kermit kernel: ircc_change_speed
Sep 12 07:57:34 kermit kernel: ircc_change_speed(), using irport to change speed to 
9600
Sep 12 07:57:34 kermit kernel: irport_change_speed_complete()

        Now the 8210 shows "Sending business card" almost forever, i.e.
        until it gets probably a kind of timeout after about 1 minute or so.

        Does this mean, IrDA is actually working but there is no application
        which responds to the send message? 

4) When I try now irattach /dev/ttyS3 I always get 

Sep 12 08:07:01 kermit irattach: tcsetattr: Input/output error

        no matter, whether irattach irda0 is still running or not.
        I even can't remove the irda, irport, smc-ircc modules,
        since the kernel reports, that they are still used ... hmmm, by whom?

5) When I try the old fashion way (at least I guess it is), I get after
   a reboot with irattach /dev/ttyS3:

Sep 12 08:17:16 kermit kernel: irda_init()
Sep 12 08:17:16 kermit kernel: irlmp_init()
Sep 12 08:17:16 kermit kernel: IrDA: Registered device irda0
Sep 12 08:17:17 kermit kernel: irlmp_register_client_R17f18bfb()
Sep 12 08:17:17 kermit kernel: irtty_net_open()
Sep 12 08:17:17 kermit kernel: irlap_change_speed(), setting speed to 9600

lsmod:

irtty                   8910   2  (autoclean)
irda                  175146   1  (autoclean) [irtty]

        and when sending an entry from the 8210 to the C600:

Sep 12 08:19:53 kermit kernel: irlap_change_speed(), setting speed to 115200
Sep 12 08:19:53 kermit kernel: irlmp_state_active(), Unknown event 
LM_LAP_DISCOVERY_CONFIRM
Sep 12 08:19:54 kermit kernel: iriap_connect_indication()
Sep 12 08:19:54 kermit kernel: irlap_recv_disc_frame()
Sep 12 08:19:54 kermit kernel: irlap_change_speed(), setting speed to 9600
Sep 12 08:19:55 kermit kernel: irlmp_link_unitdata_indication(), found no matching 
LSAP!
Sep 12 08:19:56 kermit kernel: irlmp_link_unitdata_indication(), found no matching 
LSAP!

        and the 8210 shows with 2 seconds "Business card send complete" or
        something like that.


So what does this actually mean? smc-ircc via irport is not working and
irtty does or vice versa or both [not] ? 

Finally last question: Assuming I get the IrDA stuff working, I didnt found
any Linux application, which are designed for the 8210 or DC290.
So I probably need to prog them myself :(. Are there any documentation and
APIs I can use for this (plain C or Java are preferred)? If so, where should
I start? 
Because of the little time I have, I do not really want to revers engineer
the windows crap ...

I hope, somebody can answer my questions to make me and probably other 
Dell Laptop users happy ;-)

Regards,
jens.
-- 
+---[ Jens Elkner ]--------------------------------------------------------+
| Walther-Rathenau-Str. 58                 [EMAIL PROTECTED]              |
| 39104 Magdeburg   GERMANY              http://www.linofee.org/           |
+--------------------------------------------------------------------------+
_______________________________________________
Linux-IrDA mailing list  -  [EMAIL PROTECTED]
http://www.pasta.cs.UiT.No/mailman/listinfo/linux-irda

Reply via email to