aboutsummaryrefslogtreecommitdiffstats
path: root/packages/linux/linux-ezx-2.6.24/patches/ezx-serial-bug-workaround.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packages/linux/linux-ezx-2.6.24/patches/ezx-serial-bug-workaround.patch')
-rw-r--r--packages/linux/linux-ezx-2.6.24/patches/ezx-serial-bug-workaround.patch45
1 files changed, 0 insertions, 45 deletions
diff --git a/packages/linux/linux-ezx-2.6.24/patches/ezx-serial-bug-workaround.patch b/packages/linux/linux-ezx-2.6.24/patches/ezx-serial-bug-workaround.patch
deleted file mode 100644
index efff7e06a5..0000000000
--- a/packages/linux/linux-ezx-2.6.24/patches/ezx-serial-bug-workaround.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-Work around some errata in the pxa serial code (copied from motorolas 2.4.x tree)
-
-Index: linux-2.6.24/drivers/serial/pxa.c
-===================================================================
---- linux-2.6.24.orig/drivers/serial/pxa.c
-+++ linux-2.6.24/drivers/serial/pxa.c
-@@ -29,6 +29,10 @@
- #define SUPPORT_SYSRQ
- #endif
-
-+#define pxa_buggy_port(x) ({ \
-+ int cpu_ver; asm("mrc%? p15, 0, %0, c0, c0" : "=r" (cpu_ver)); \
-+ ((x) == PORT_PXA && (cpu_ver & ~1) == 0x69052100); })
-+
- #include <linux/module.h>
- #include <linux/ioport.h>
- #include <linux/init.h>
-@@ -196,7 +200,7 @@
- if (uart_circ_empty(xmit))
- serial_pxa_stop_tx(&up->port);
- }
--
-+static inline irqreturn_t serial_pxa_irq(int, void *);
- static void serial_pxa_start_tx(struct uart_port *port)
- {
- struct uart_pxa_port *up = (struct uart_pxa_port *)port;
-@@ -204,6 +208,8 @@
- if (!(up->ier & UART_IER_THRI)) {
- up->ier |= UART_IER_THRI;
- serial_out(up, UART_IER, up->ier);
-+ if (pxa_buggy_port(up->port.type))
-+ serial_pxa_irq(up->port.irq, NULL);
- }
- }
-
-@@ -299,6 +305,9 @@
-
- mcr |= up->mcr;
-
-+ if (pxa_buggy_port(up->port.type) && up->port.irq != 0)
-+ mcr ^= UART_MCR_OUT2;
-+
- serial_out(up, UART_MCR, mcr);
- }
-