for (i = 0; i < nr_uarts; i++) {
                struct uart_8250_port *up = &serial8250_ports[i];
 
+               if (up->port.type == PORT_8250_CIR)
+                       continue;
+
                if (up->port.dev)
                        continue;
 
                if (up->dl_write)
                        uart->dl_write = up->dl_write;
 
-               if (serial8250_isa_config != NULL)
-                       serial8250_isa_config(0, &uart->port,
-                                       &uart->capabilities);
+               if (uart->port.type != PORT_8250_CIR) {
+                       if (serial8250_isa_config != NULL)
+                               serial8250_isa_config(0, &uart->port,
+                                               &uart->capabilities);
+
+                       ret = uart_add_one_port(&serial8250_reg,
+                                               &uart->port);
+                       if (ret == 0)
+                               ret = uart->port.line;
+               } else {
+                       dev_info(uart->port.dev,
+                               "skipping CIR port at 0x%lx / 0x%llx, IRQ %d\n",
+                               uart->port.iobase,
+                               (unsigned long long)uart->port.mapbase,
+                               uart->port.irq);
 
-               ret = uart_add_one_port(&serial8250_reg, &uart->port);
-               if (ret == 0)
-                       ret = uart->port.line;
+                       ret = 0;
+               }
        }
        mutex_unlock(&serial_mutex);
 
 
        unsigned char lsr, iir;
        int retval;
 
-       if (port->type == PORT_8250_CIR)
-               return -ENODEV;
-
        if (!port->fifosize)
                port->fifosize = uart_config[port->type].fifo_size;
        if (!up->tx_loadsz)
 static int serial8250_request_port(struct uart_port *port)
 {
        struct uart_8250_port *up = up_to_u8250p(port);
-       int ret;
-
-       if (port->type == PORT_8250_CIR)
-               return -ENODEV;
 
-       ret = serial8250_request_std_resource(up);
-
-       return ret;
+       return serial8250_request_std_resource(up);
 }
 
 static int fcr_get_rxtrig_bytes(struct uart_8250_port *up)
        struct uart_8250_port *up = up_to_u8250p(port);
        int ret;
 
-       if (port->type == PORT_8250_CIR)
-               return;
-
        /*
         * Find the region that we can probe for.  This in turn
         * tells us whether we can probe for the type of port.