*** serial.c	2008-01-11 15:05:34.000000000 +0000
--- serial_orig.c	2008-01-11 14:43:10.000000000 +0000
***************
*** 4008,4047 ****
  }
  
  /*
-  * Oxford Semiconductor Inc.
-  * Check that device is part of the Tornado range of devices, then determine
-  * the number of ports available on the device.
-  */
- static int pci_oxsemi_tornado_init(struct pci_dev *dev, struct pci_board *board)
- {
- 	u8 __iomem *p;
-     unsigned long deviceID;
-     unsigned int  number_uarts;
-     
- 	p = ioremap(pci_resource_start(dev, 0),pci_resource_len(dev,0));
- 
- 	if (p == NULL)
-     {
- 		return -ENOMEM;
-     }
-     
-     deviceID = readl(p);
-     if (deviceID != 0x07000200)
-     {
-         // Not a Tornado device
-         iounmap(p);
-         return 0;
-     }
-     
-     number_uarts = readb(p + 0x0004);
-     board->num_ports = number_uarts;
-     printk("%d ports detected on Oxford PCI Express device\n", number_uarts);
-     
- 	iounmap(p);
- 	return 0;
- }
- 
- /*
   * Common enabler code shared by both PCI and ISAPNP probes
   */
  static void __devinit start_pci_pnp_board(struct pci_dev *dev,
--- 4008,4013 ----
***************
*** 4090,4103 ****
  		base_baud = BASE_BAUD;
  	memset(&serial_req, 0, sizeof(serial_req));
  
-     /*
-      * Find number of ports on board
-      */
-     if (dev->vendor == PCI_VENDOR_ID_OXSEMI)
-     {
-         pci_oxsemi_tornado_init(dev, board);
-     }
- 
  	for (k=0; k < board->num_ports; k++) {
  		serial_req.irq = get_pci_irq(dev, board, k);
  		if (get_pci_port(dev, board, &serial_req, k))
--- 4056,4061 ----
***************
*** 4379,4386 ****
  	pbn_b0_2_921600,
  	pbn_b0_4_921600,
  
-     pbn_b0_1_4000000,
- 
  	pbn_b0_bt_1_115200,
  	pbn_b0_bt_2_115200,
  	pbn_b0_bt_1_460800,
--- 4337,4342 ----
***************
*** 4418,4427 ****
  	pbn_panacom4,
  	pbn_plx_romulus,
  	pbn_oxsemi,
-     pbn_oxsemi_1_4000000,
-     pbn_oxsemi_2_4000000,
-     pbn_oxsemi_4_4000000,
-     pbn_oxsemi_8_4000000,
  	pbn_timedia,
  	pbn_intel_i960,
  	pbn_sgi_ioc3,
--- 4374,4379 ----
***************
*** 4467,4474 ****
  	{ SPCI_FL_BASE0, 2, 921600 },		/* pbn_b0_2_921600 */
  	{ SPCI_FL_BASE0, 4, 921600 },		/* pbn_b0_4_921600 */
  
-     { SPCI_FL_BASE0, 1, 4000000 },      /* pbn_b0_1_4000000 */
- 
  	{ SPCI_FL_BASE0 | SPCI_FL_BASE_TABLE, 1, 115200 }, /* pbn_b0_bt_1_115200 */
  	{ SPCI_FL_BASE0 | SPCI_FL_BASE_TABLE, 2, 115200 }, /* pbn_b0_bt_2_115200 */
  	{ SPCI_FL_BASE0 | SPCI_FL_BASE_TABLE, 1, 460800 }, /* pbn_b0_bt_1_460800 */
--- 4419,4424 ----
***************
*** 4512,4525 ****
  		/* This board uses the size of PCI Base region 0 to
  		 * signal now many ports are available */
  	{ SPCI_FL_BASE0 | SPCI_FL_REGION_SZ_CAP, 32, 115200 }, /* pbn_oxsemi */
-     { SPCI_FL_BASE0, 1, 4000000, /* IOMEM */   /* pbn_oxsemi_1_4000000 */
-          0x200, 0, NULL, 0x1000 },
-     { SPCI_FL_BASE0, 2, 4000000, /* IOMEM */ /* pbn_oxsemi_2_4000000 */
-          0x200, 0, NULL, 0x1000 },
-     { SPCI_FL_BASE0, 4, 4000000, /* IOMEM */ /* pbn_oxsemi_4_4000000 */
-          0x200, 0, NULL, 0x1000 },
-     { SPCI_FL_BASE0, 8, 4000000, /* IOMEM */ /* pbn_oxsemi_8_4000000 */
-          0x200, 0, NULL, 0x1000 }, 
  	{ SPCI_FL_BASE_TABLE, 1, 921600,		   /* pbn_timedia */
  		0, 0, pci_timedia_fn },
  	/* EKF addition for i960 Boards form EKF with serial port */
--- 4462,4467 ----
***************
*** 4926,5069 ****
  
  	{	PCI_VENDOR_ID_OXSEMI, PCI_DEVICE_ID_OXSEMI_16PCI95N,
  		PCI_ANY_ID, PCI_ANY_ID, 0, 0, pbn_oxsemi },
! 
!     /*
!      * Oxford Semiconductor Inc. Tornado PCI express device range.
!      */
!    	{	PCI_VENDOR_ID_OXSEMI, 0xc101,    // OXPCIe952 1 Legacy UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_b0_1_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc105,    // OXPCIe952 1 Legacy UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_b0_1_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc11b,    // OXPCIe952 1 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_1_4000000 },
!  	  {	PCI_VENDOR_ID_OXSEMI, 0xc11f,    // OXPCIe952 1 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_1_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc120,    // OXPCIe952 1 Legacy UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_b0_1_4000000 },
!    	{	PCI_VENDOR_ID_OXSEMI, 0xc124,    // OXPCIe952 1 Legacy UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_b0_1_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc138,    // OXPCIe952 1 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_1_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc13d,    // OXPCIe952 1 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_1_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc140,    // OXPCIe952 1 Legacy UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_b0_1_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc141,    // OXPCIe952 1 Legacy UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_b0_1_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc144,    // OXPCIe952 1 Legacy UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_b0_1_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc145,    // OXPCIe952 1 Legacy UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_b0_1_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc158,    // OXPCIe952 2 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_2_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc15d,    // OXPCIe952 2 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_2_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc208,    // OXPCIe954 4 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_4_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc20d,    // OXPCIe954 4 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_4_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc308,    // OXPCIe958 8 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_8_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc30d,    // OXPCIe958 8 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_8_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc40b,    // OXPCIe200 1 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_1_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc40f,    // OXPCIe200 1 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_1_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc41b,    // OXPCIe200 1 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_1_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc41f,    // OXPCIe200 1 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_1_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc42b,    // OXPCIe200 1 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_1_4000000 },
!    	{	PCI_VENDOR_ID_OXSEMI, 0xc42f,    // OXPCIe200 1 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_1_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc43b,    // OXPCIe200 1 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_1_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc43f,    // OXPCIe200 1 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_1_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc44b,    // OXPCIe200 1 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_1_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc44f,    // OXPCIe200 1 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_1_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc45b,    // OXPCIe200 1 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_1_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc45f,    // OXPCIe200 1 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_1_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc46b,    // OXPCIe200 1 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_1_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc46f,    // OXPCIe200 1 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_1_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc47b,    // OXPCIe200 1 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_1_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc47f,    // OXPCIe200 1 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_1_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc48b,    // OXPCIe200 1 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_1_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc48f,    // OXPCIe200 1 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_1_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc49b,    // OXPCIe200 1 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_1_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc49f,    // OXPCIe200 1 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_1_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc4ab,    // OXPCIe200 1 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_1_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc4af,    // OXPCIe200 1 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_1_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc4bb,    // OXPCIe200 1 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_1_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc4bf,    // OXPCIe200 1 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_1_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc4cb,    // OXPCIe200 1 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_1_4000000 },
!   	{	PCI_VENDOR_ID_OXSEMI, 0xc4cf,    // OXPCIe200 1 Native UART
!   		PCI_ANY_ID, PCI_ANY_ID, 0, 0,
!   		pbn_oxsemi_1_4000000 },
! 
!     {	PCI_VENDOR_ID_TIMEDIA, PCI_DEVICE_ID_TIMEDIA_1889,
  		PCI_VENDOR_ID_TIMEDIA, PCI_ANY_ID, 0, 0, pbn_timedia },
  
  	{	PCI_VENDOR_ID_LAVA, PCI_DEVICE_ID_LAVA_DSERIAL,
--- 4868,4874 ----
  
  	{	PCI_VENDOR_ID_OXSEMI, PCI_DEVICE_ID_OXSEMI_16PCI95N,
  		PCI_ANY_ID, PCI_ANY_ID, 0, 0, pbn_oxsemi },
! 	{	PCI_VENDOR_ID_TIMEDIA, PCI_DEVICE_ID_TIMEDIA_1889,
  		PCI_VENDOR_ID_TIMEDIA, PCI_ANY_ID, 0, 0, pbn_timedia },
  
  	{	PCI_VENDOR_ID_LAVA, PCI_DEVICE_ID_LAVA_DSERIAL,
