In 2.4.19 this here had to be disabled: (here is the modified nsc-ircc.2.4.19)
--- kernel-source-2.4.20/drivers/net/irda/nsc-ircc.c 2003-01-04 11:08:19.000000000 +0100
+++ kernel-source-2.4.21-pre4/drivers/net/irda/nsc-ircc.c 2003-03-01 21:07:24.000000000 +0100
@@ -704,10 +704,12 @@
driver_name, version);
/* Should be 0x2? */
+#if 0
if (0x20 != (version & 0xf0)) {
ERROR("%s, Wrong chip version %02x\n", driver_name, version);
return -1;
}
+#endif
/* Switch to advanced mode */
switch_bank(iobase, BANK2);
This already worked for Marcin according to his explanation but in my case something more had to be disabled:
Somewhere around line 190 there is this:
if ((id & chip->cid_mask) == chip->cid_value) {
Move this away by either commenting it out or deleting it and put this in place:
if ( 1 ) {
Then make new modules like this (as root):
make modules
and then copy /usr/src/where_your_linux_dir_is/drivers/net/irda/nsc-ircc.o to /lib/modules/your_kernel/kernel/drivers/net/irda/
In case you use 2.4.19, this here might work for you without the kernel sources.