I've an HP OmniBook 6100 running linux 2.4.18 and I've had a bear of a time getting IR support up and going.
Some thoughts before I continue: I'd really like to see some better documentation on the ir-tools.. for example irdadump (at least in my case) needed to be told which irda device (irda0) to listen on or else it just sat there and showed nothing. For the longest time i just ran 'irdadump' by itself and had no idea that was bad. Nothing said 'error' or invalid command line or anything like that. Also, thanks to many of the mailing lists, I learned that I had to compile serial support in as a module and then remove the module so that 0x2f8/irq 3 would be free for the driver.. That was key as well. From http://www.hpl.hp.com/personal/Jean_Tourrilhes/IrDA/IrDA.html : * Remove the serial driver that gets in the way : > setserial /dev/ttyS1 uart none > rmmod serial >From win2k, I knew it was an NSC chip with dongle_id 0x08 . findchip started to see it, but it says: [root@plastic root]# findchip -d -v nsc Probing for PC87108 ... no chip at 0x150 no chip at 0x398 no chip at 0x0ea Probing for PC87338 ... no chip at 0x398 no chip at 0x15c Wrong chip id=0x00 so that was no good. Luckily, I had seen a similar output from the kernel driver, which i was more than willing to poke around in. Some quick checks determined that: It was a PC87388, id 0, cid_mask 248, revision ?? So I hacked in the driver and removed the checks that I found offensive, and adjusted values to what i have. Dirty! Here's the relevant part of my modules.conf options nsc-ircc dongle_id=0x08 io=0x2f8 irq=3 alias irda0 nsc-ircc Here's the output from insmod/modprobe: [root@plastic root]# modprobe irda [root@plastic root]# echo 3 > /proc/sys/net/irda/debug [root@plastic root]# modprobe nsc-ircc [root@plastic root]# dmesg . . . [snip] . . . nsc_ircc_init(), Probing for PC87108 ... nsc_ircc_init() no chip at 0x150 nsc_ircc_init() no chip at 0x398 nsc_ircc_init() no chip at 0x0ea nsc_ircc_init(), Probing for PC87338 ... nsc_ircc_init() Found PC87338 chip, id=0, cid_mask=248, revision=0 nsc_ircc_init() Found PC87338 chip, revision=0 nsc_ircc_open() nsc-ircc, Found chip at base=0x02e nsc_ircc_setup() Driver nsc-ircc Found chip version 24 nsc-ircc, driver loaded (Dag Brattli) IrDA: Registered device irda0 nsc-ircc, Using dongle: HP HSDL-2300, HP HSDL-3600/HSDL-3610 nsc_ircc_init_dongle_interface(), HP HSDL-2300, HP HSDL-3600/HSDL-3610 nsc_ircc_init() no chip at 0x398 nsc_ircc_init() no chip at 0x15c nsc_ircc_net_ioctl(), irda0, (cmd=0x8B01) after that, I just ran [root@plastic root]# irattach irda0 -s 1 and all was well. Here's the diff from the stock nsc-ircc.c vs my hacked one: [root@plastic irda]# diff -U 3 nsc-ircc.c.old nsc-ircc.c --- nsc-ircc.c.old Mon Mar 18 14:47:39 2002 +++ nsc-ircc.c Mon Mar 18 14:41:28 2002 @@ -90,7 +90,7 @@ static nsc_chip_t chips[] = { { "PC87108", { 0x150, 0x398, 0xea }, 0x05, 0x10, 0xf0, nsc_ircc_probe_108, nsc_ircc_init_108 }, - { "PC87338", { 0x398, 0x15c, 0x2e }, 0x08, 0xb0, 0xf8, + { "PC87338", { 0x2e, 0x398, 0x15c }, 0x08, 0xb0, 0xf8, nsc_ircc_probe_338, nsc_ircc_init_338 }, { NULL } }; @@ -187,7 +187,13 @@ /* Read chip identification register */ outb(chip->cid_index, cfg_base); id = inb(cfg_base+1); - if ((id & chip->cid_mask) == chip->cid_value) { + /* hacked in to test by tmk */ + IRDA_DEBUG(2, __FUNCTION__ + "() Found %s chip, id=%d, cid_mask=%d, revision=%d\n", + chip->name, id, chip->cid_mask, id & ~chip->cid_mask ); + /* if ((id & chip->cid_mask) == chip->cid_value) { */ + /* 0 matches, so we'll use that for now.. -tmk */ + if ((id & chip->cid_mask) == 0) { IRDA_DEBUG(2, __FUNCTION__ "() Found %s chip, revision=%d\n", chip->name, id & ~chip->cid_mask); @@ -697,12 +703,14 @@ /* Read the Module ID */ switch_bank(iobase, BANK3); version = inb(iobase+MID); - - /* Should be 0x2? */ + /* this part 'fixed' by tmk */ + IRDA_DEBUG(2, __FUNCTION__ + "() Driver %s Found chip version %02x\n", driver_name, version); + /* Should be 0x2? if (0x20 != (version & 0xf0)) { ERROR("%s, Wrong chip version %02x\n", driver_name, version); return -1; - } + } */ /* Switch to advanced mode */ switch_bank(iobase, BANK2); __________________________________________________ Do You Yahoo!? Yahoo! Sports - live college hoops coverage http://sports.yahoo.com/ _______________________________________________ Linux-IrDA mailing list - [EMAIL PROTECTED] http://www.pasta.cs.UiT.No/mailman/listinfo/linux-irda
