Index: linux-3.12.33-rt47-i386/drivers/tty/serial/Kconfig
===================================================================
--- linux-3.12.33-rt47-i386.orig/drivers/tty/serial/Kconfig
+++ linux-3.12.33-rt47-i386/drivers/tty/serial/Kconfig
@@ -575,7 +575,7 @@ config SERIAL_IMX_CONSOLE
 
 config SERIAL_UARTLITE
 	tristate "Xilinx uartlite serial port support"
-	depends on PPC32 || MICROBLAZE || MFD_TIMBERDALE || ARCH_ZYNQ
+	depends on X86 || PPC32 || MICROBLAZE || MFD_TIMBERDALE || ARCH_ZYNQ
 	select SERIAL_CORE
 	help
 	  Say Y here if you want to use the Xilinx uartlite serial controller.
Index: linux-3.12.33-rt47-i386/drivers/tty/serial/uartlite.c
===================================================================
--- linux-3.12.33-rt47-i386.orig/drivers/tty/serial/uartlite.c
+++ linux-3.12.33-rt47-i386/drivers/tty/serial/uartlite.c
@@ -57,6 +57,7 @@
 #define ULITE_CONTROL_RST_RX	0x02
 #define ULITE_CONTROL_IE	0x10
 
+#if 0
 struct uartlite_reg_ops {
 	u32 (*in)(void __iomem *addr);
 	void (*out)(u32 val, void __iomem *addr);
@@ -105,6 +106,17 @@ static inline void uart_out32(u32 val, u
 
 	reg_ops->out(val, port->membase + offset);
 }
+#else
+static inline u32 uart_in32(u32 offset, struct uart_port *port)
+{
+        return readb(port->membase + offset);
+}
+
+static inline void uart_out32(u32 val, u32 offset, struct uart_port *port)
+{
+        writeb(val,port->membase + offset);
+}
+#endif
 
 static struct uart_port ulite_ports[ULITE_NR_UARTS];
 
@@ -268,6 +280,8 @@ static int ulite_startup(struct uart_por
 	if (ret)
 		return ret;
 
+	ret = readb(port->membase + ULITE_STATUS);
+
 	uart_out32(ULITE_CONTROL_RST_RX | ULITE_CONTROL_RST_TX,
 		ULITE_CONTROL, port);
 	uart_out32(ULITE_CONTROL_IE, ULITE_CONTROL, port);
@@ -329,7 +343,6 @@ static void ulite_release_port(struct ua
 
 static int ulite_request_port(struct uart_port *port)
 {
-	int ret;
 
 	pr_debug("ulite console: port=%p; port->mapbase=%llx\n",
 		 port, (unsigned long long) port->mapbase);
@@ -346,14 +359,18 @@ static int ulite_request_port(struct uar
 		return -EBUSY;
 	}
 
+
+#if 0
+	int ret;
 	port->private_data = &uartlite_be;
 	ret = uart_in32(ULITE_CONTROL, port);
 	uart_out32(ULITE_CONTROL_RST_TX, ULITE_CONTROL, port);
 	ret = uart_in32(ULITE_STATUS, port);
 	/* Endianess detection */
 	if ((ret & ULITE_STATUS_TXEMPTY) != ULITE_STATUS_TXEMPTY)
-		port->private_data = &uartlite_le;
+               port->private_data = &uartlite_le;
 
+#endif
 	return 0;
 }
 
@@ -576,7 +593,7 @@ static int ulite_assign(struct device *d
 	port->membase = NULL;
 	port->ops = &ulite_ops;
 	port->irq = irq;
-	port->flags = UPF_BOOT_AUTOCONF;
+	port->flags = UPF_BOOT_AUTOCONF | UPF_SHARE_IRQ;
 	port->dev = dev;
 	port->type = PORT_UNKNOWN;
 	port->line = id;