Skip to contentSkip to conversation

What's the status of kernel PNP?

DISCUSSION [email protected] 1 participant 2 messages Jul 9, 2001 – Jul 11, 2001 1 message not in the archive

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

#1 lore raw
Quoted 10 lines · On Mon, Jul 09, 2001 at 07:34:10AM -0000, [email protected] wrote:
Quoted 2 lines

Please provide more detailed hardware description and a output of 'cat /proc/isapnp'. IMHO this problem can be solved easily.

Thank you for being so soothing. As you could probably notice, I was a bit frustrated.

On the first machine, with the modem (note that I ran isapnp manually, since this modem is my net connection!):

Quoted 6 lines

Card 1 'MOT15f0:Motorola VoiceSURFR 56K Modem' PnP version 1.0
Logical device 0 'MOT15f0:Unknown'
Supported registers 0x2
Compatible device MOT15f0
Device is active
Active port 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff

		  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Use of isapnptools package mixed with kernel 2.4.x ISA PNP subsystem is asking for trouble. Move /etc/isapnp.conf file to some other place and try to reboot.

[SNIP]

Quoted 14 lines

isapnp: Scanning for PnP cards...
isapnp: Card 'Motorola VoiceSURFR 56K Modem'
isapnp: Device 'Unknown'
isapnp: 1 Plug & Play card detected total
PnP: PNP BIOS installation structure at 0xc00fdbd0
PnP: PNP BIOS version 1.0, entry at f0000:d20e, dseg at f0000 Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039 Initializing RT netlink socket
apm: BIOS version 1.1 Flags 0x03 (Driver version 1.14) Starting kswapd v1.8
parport0: PC-style at 0x378, irq 7 [PCSPP(,...)]
matroxfb: Matrox Millennium (PCI) detected
matroxfb: 640x480x8bpp (virtual: 640x13081)

Quoted 8 lines

matroxfb: framebuffer at 0xFE000000, mapped to 0xc6807000, size 8388608
Console: switching to colour frame buffer device 80x30
fb0: MATROX VGA frame buffer device
pty: 256 Unix98 ptys configured
Serial driver version 5.05b (2001-05-03) with MANY_PORTS SHARE_IRQ SERIAL_PCI ISAPNP enabled ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A
ttyS02 at port 0x03e8 (irq = 5) is a 16550A

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Hmm, looks strange to me, it seems that serial driver found your modem and configured it as /dev/ttyS2. Did you try to test it with minicom for example ?

Signature · 2 lines
Andrey Panin            | Embedded systems software engineer
[email protected]        | PGP key: http://www.orbita1.ru/~pazke/AndreyPanin.asc
#2 lore raw

Hi,

please test the attached patch (2.4.6-ac2), it should add support for ISAPNP PCMCIA card.

Best regards.

PS. Is your modem working now ?

Signature · 2 lines
Andrey Panin            | Embedded systems software engineer
[email protected]        | PGP key: http://www.orbita1.ru/~pazke/AndreyPanin.asc
linux/drivers/pcmcia/i82365.c renamed from linux.vanilla/drivers/pcmcia/i82365.c +54 -0
diff -ur -X /usr/dontdiff /linux.vanilla/drivers/pcmcia/i82365.c /linux/drivers/pcmcia/i82365.c
@@ -57,6 +57,10 @@
 #include <pcmcia/ss.h>
 #include <pcmcia/cs.h>
 
+#ifdef CONFIG_ISAPNP
+#include <linux/isapnp.h>
+#endif
+
 /* ISA-bus controllers */
 #include "i82365.h"
 #include "cirrus.h"
@@ -816,10 +820,56 @@
 
 #ifdef CONFIG_ISA
 
+#if defined(CONFIG_ISAPNP) || (defined(CONFIG_ISAPNP_MODULE) && defined(MODULE))
+#define I82365_ISAPNP
+#endif
+
+#ifdef I82365_ISAPNP
+static struct isapnp_device_id id_table[] __initdata = {
+	{ 	ISAPNP_ANY_ID, ISAPNP_ANY_ID, ISAPNP_VENDOR('P', 'N', 'P'),
+		ISAPNP_FUNCTION(0x0e00), (unsigned long) "Intel 82365-Compatible
" },
+	{ 	ISAPNP_ANY_ID, ISAPNP_ANY_ID, ISAPNP_VENDOR('P', 'N', 'P'),
+		ISAPNP_FUNCTION(0x0e01), (unsigned long) "Cirrus Logic CL-PD6720" },
+	{ 	ISAPNP_ANY_ID, ISAPNP_ANY_ID, ISAPNP_VENDOR('P', 'N', 'P'),
+		ISAPNP_FUNCTION(0x0e02), (unsigned long) "VLSI VL82C146" },
+	{	0 }
+};
+MODULE_DEVICE_TABLE(isapnp, id_table);
+
+static struct pci_dev *i82365_pnpdev;
+#endif
+
 static void __init isa_probe(void)
 {
     int i, j, sock, k, ns, id;
     ioaddr_t port;
+#ifdef I82365_ISAPNP
+    struct isapnp_device_id *devid;
+    struct pci_dev *dev;
+
+    for (devid = id_table; devid->vendor; devid++) {
+	if ((dev = isapnp_find_dev(NULL, devid->vendor, devid->function, NULL))) {
+	    printk("ISAPNP ");
+
+	    if (dev->prepare && dev->prepare(dev) < 0) {
+		printk("prepare failed\n");
+		break;
+	    }
+
+	    if (dev->activate && dev->activate(dev) < 0) {
+		printk("activate failed\n");
+		break;
+	    }
+
+	    if ((i365_base = pci_resource_start(dev, 0))) {
+		printk("no resources ?\n");
+		break;
+	    }
+	    i82365_pnpdev = dev;
+	    break;
+	}
+    }
+#endif
 
     if (check_region(i365_base, 2) != 0) {
 	if (sockets == 0)
@@ -1604,6 +1654,10 @@
 	i365_set(i, I365_CSCINT, 0);
 	release_region(socket[i].ioaddr, 2);
     }
+#if defined(CONFIG_ISA) && defined(I82365_ISAPNP)
+    if (i82365_pnpdev && i82365_pnpdev->deactivate)
+		i82365_pnpdev->deactivate(i82365_pnpdev);
+#endif
 } /* exit_i82365 */
 
 module_init(init_i82365);