--- linux-2.4.9-plain/drivers/char/serial.c	Tue Aug 14 01:37:33 2001
+++ linux-2.4.9-ext3-nfpom/drivers/char/serial.c	Mon Aug 20 14:31:35 2001
@@ -3902,6 +3902,13 @@
 		}
 		
 	}
+
+ 	/* AVAVLAB uses a different mixture of BARs and offsets */
+ 	/* Not that ugly ;) -- HW */
+ 	if (dev->vendor == PCI_VENDOR_ID_AFAVLAB &&  idx >= 4) {
+ 		base_idx = 4;
+ 		offset = (idx - 4) * 8;
+ 	}
   
 	port =  pci_resource_start(dev, base_idx) + offset;
 
@@ -4841,6 +4848,11 @@
 	{	PCI_VENDOR_ID_XIRCOM, PCI_DEVICE_ID_XIRCOM_X3201_MDM,
 		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
 		pbn_xircom_combo },
+
+ 	/* AFAVLAB serial card, from Harald Welte <laforge@gnumonks.org> */
+ 	{	PCI_VENDOR_ID_AFAVLAB, PCI_DEVICE_ID_AFAVLAB_P028,
+ 		PCI_ANY_ID, PCI_ANY_ID,
+ 		SPCI_FL_BASE_TABLE, 8, 115200 },
 
 	/*
 	 * Untested PCI modems, sent in from various folks...
--- linux-2.4.9-plain/include/linux/pci_ids.h	Tue Aug 14 01:37:33 2001
+++ linux-2.4.9-ext3-nfpom/include/linux/pci_ids.h	Mon Aug 20 14:28:38 2001
@@ -1435,6 +1435,7 @@
 
 #define PCI_VENDOR_ID_AFAVLAB		0x14db
 #define PCI_DEVICE_ID_AFAVLAB_TK9902	0x2120
+#define PCI_DEVICE_ID_AFAVLAB_P028	0x2180
 
 #define PCI_VENDOR_ID_BROADCOM		0x14e4
 #define PCI_DEVICE_ID_TIGON3		0x1644
