Here are is a patch to fix the main bugs in
drivers/net/irda/nsc-ircc.c from Linux 2.4.3.

Thomas
--- nsc-ircc.c_2.4.3    Tue Mar 20 15:04:59 2001
+++ nsc-ircc.c  Sun Apr  1 19:47:09 2001
@@ -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, 0xf0, 
+       { "PC87338", { 0x398, 0x15c, 0x2e }, 0x08, 0xb0, 0xf8, 
          nsc_ircc_probe_338, nsc_ircc_init_338 },
        { NULL }
 };
@@ -160,7 +160,7 @@
        int i = 0;
 
        /* Probe for all the NSC chipsets we know about */
-       for (chip=chips; chip->name ; chip++,i++) {
+       for (chip=chips; chip->name ; chip++) {
                IRDA_DEBUG(2, __FUNCTION__"(), Probing for %s ...\n", 
                           chip->name);
                
@@ -196,7 +196,7 @@
                                 * we init the chip, if not we probe the values
                                 * set by the BIOS
                                 */                             
-                               if (io[i] < 2000) {
+                               if (io[i] < 0x2000) {
                                        chip->init(chip, &info);
                                } else
                                        chip->probe(chip, &info);
@@ -597,7 +597,7 @@
        outb(CFG_PNP0, cfg_base);
        reg = inb(cfg_base+1);
        
-       pnp = (reg >> 4) & 0x01;
+       pnp = (reg >> 3) & 0x01;
        if (pnp) {
                IRDA_DEBUG(2, "(), Chip is in PnP mode\n");
                outb(0x46, cfg_base);

Reply via email to