<-- Back to Linux PCMCIA Survey.
Following patch to serial.c
is needed to make the serial part of the card work with linux-2.4.19-pre5:
The patch is a courtesy of Robert Fries <robert_fries_at_partech.com>.
--- drivers/char/serial.c.dist Thu Apr 4 11:52:32 2002
+++ drivers/char/serial.c Wed Nov 13 13:02:05 2002
@@ -4234,6 +4234,33 @@
return 0;
}
+/* 83c175 entry for Ositech and Psion cards */
+static int __devinit
+pci_83c175_fn(struct pci_dev *dev,
+ struct pci_board *board,
+ int enable)
+{
+ u_int ioaddr;
+ if (!enable) return(0);
+ pci_read_config_dword(dev, PCI_BASE_ADDRESS_0, &ioaddr);
+ if (!(ioaddr & PCI_BASE_ADDRESS_SPACE_IO))
+ pci_read_config_dword(dev, PCI_BASE_ADDRESS_1, &ioaddr);
+ if (!(ioaddr & PCI_BASE_ADDRESS_SPACE_IO)) {
+ printk(KERN_NOTICE "pci_83c175: didn't find an IO window\n");
+ return(1);
+ }
+ ioaddr &= PCI_BASE_ADDRESS_IO_MASK;
+ mdelay(100);
+ outl(0x4C00, ioaddr + 0x80);
+ mdelay(100);
+ outl(0x4C80, ioaddr + 0x80);
+ mdelay(100);
+ return(0);
+}
+
+
+
+
/*
* This is the configuration table for all of the PCI serial boards
* which we support. It is directly indexed by the pci_board_num_t enum
@@ -4308,6 +4335,7 @@
pbn_computone_4,
pbn_computone_6,
pbn_computone_8,
+ pbn_83c175,
};
static struct pci_board pci_boards[] __devinitdata = {
@@ -4412,6 +4440,9 @@
0x40, 2, NULL, 0x200 },
{ SPCI_FL_BASE0, 8, 921600, /* IOMEM */ /* pbn_computone_8 */
0x40, 2, NULL, 0x200 },
+
+ { SPCI_FL_BASE0, 1, 115200, /* pbn_83c175 */
+ 0,0, pci_83c175_fn },
};
/*
@@ -4874,6 +4905,13 @@
{ PCI_VENDOR_ID_SGI, PCI_DEVICE_ID_SGI_IOC3,
0xFF00, 0, 0, 0,
pbn_sgi_ioc3 },
+ /* 83c175 entries for Ositech and Psion cards */
+ { PCI_VENDOR_ID_SMC, PCI_DEVICE_ID_SMC_LANEPIC,
+ PCI_SUBVENDOR_ID_OSITECH, PCI_SUBDEVICE_ID_OSITECH_JOS,0,0,
+ pbn_83c175 },
+ { PCI_VENDOR_ID_SMC, PCI_DEVICE_ID_SMC_LANEPIC,
+ PCI_SUBVENDOR_ID_PSION, PCI_SUBDEVICE_ID_PSION_UNKNOWN,0,0,
+ pbn_83c175 },
#ifdef CONFIG_DDB5074
/*
--- include/linux/pci_ids.h.dist Thu Apr 4 11:52:40 2002
+++ include/linux/pci_ids.h Wed Nov 13 11:34:53 2002
@@ -789,6 +789,11 @@
#define PCI_VENDOR_ID_SMC 0x10b8
#define PCI_DEVICE_ID_SMC_EPIC100 0x0005
+#define PCI_DEVICE_ID_SMC_LANEPIC 0x0006
+#define PCI_SUBVENDOR_ID_OSITECH 0x13a2
+#define PCI_SUBDEVICE_ID_OSITECH_JOS 0x8007
+#define PCI_SUBVENDOR_ID_PSION 0x1420
+#define PCI_SUBDEVICE_ID_PSION_UNKNOWN 0x8003
#define PCI_VENDOR_ID_AL 0x10b9
#define PCI_DEVICE_ID_AL_M1445 0x1445