o Add ignore_ports option to avoid probing for a port in specified addresses

Signed-off-by: Aristeu Sergio Rozanski Filho <aris@cathedrallabs.org>

Index: 2.6/drivers/serial/8250.c
===================================================================
--- 2.6.orig/drivers/serial/8250.c	2005-05-09 13:14:33.000000000 -0300
+++ 2.6/drivers/serial/8250.c	2005-05-09 17:24:41.000000000 -0300
@@ -121,6 +121,9 @@
 
 #define UART_NR	(ARRAY_SIZE(old_serial_port) + CONFIG_SERIAL_8250_NR_UARTS)
 
+static unsigned long ignore_ports[UART_NR];
+static unsigned int ignore_ports_count;
+
 #ifdef CONFIG_SERIAL_8250_RSA
 
 #define PORT_RSA_MAX 4
@@ -2060,13 +2063,19 @@
 static void __init
 serial8250_register_ports(struct uart_driver *drv, struct device *dev)
 {
-	int i;
+	int i, j;
 
 	serial8250_isa_init_ports();
 
 	for (i = 0; i < UART_NR; i++) {
 		struct uart_8250_port *up = &serial8250_ports[i];
 
+		for (j = 0; j < ignore_ports_count; j++)
+			if (ignore_ports[j] == up->port.iobase)
+				break;
+		if (j < ignore_ports_count)
+			continue;
+
 		up->port.dev = dev;
 		uart_add_one_port(drv, &up->port);
 	}
@@ -2554,6 +2563,10 @@
 MODULE_PARM_DESC(share_irqs, "Share IRQs with other non-8250/16x50 devices"
 	" (unsafe)");
 
+module_param_array(ignore_ports, ulong, &ignore_ports_count, 0444);
+MODULE_PARM_DESC(ignore_ports, "I/O ports that should be ignored "
+		 "on probe");
+
 #ifdef CONFIG_SERIAL_8250_RSA
 module_param_array(probe_rsa, ulong, &probe_rsa_count, 0444);
 MODULE_PARM_DESC(probe_rsa, "Probe I/O ports for RSA");
