summaryrefslogtreecommitdiff
path: root/openembedded/packages/linux/linux-openzaurus-2.6.14-rc4/pxa-serial-hack.patch
diff options
context:
space:
mode:
Diffstat (limited to 'openembedded/packages/linux/linux-openzaurus-2.6.14-rc4/pxa-serial-hack.patch')
-rw-r--r--openembedded/packages/linux/linux-openzaurus-2.6.14-rc4/pxa-serial-hack.patch82
1 files changed, 82 insertions, 0 deletions
diff --git a/openembedded/packages/linux/linux-openzaurus-2.6.14-rc4/pxa-serial-hack.patch b/openembedded/packages/linux/linux-openzaurus-2.6.14-rc4/pxa-serial-hack.patch
new file mode 100644
index 000000000..7892a0f92
--- /dev/null
+++ b/openembedded/packages/linux/linux-openzaurus-2.6.14-rc4/pxa-serial-hack.patch
@@ -0,0 +1,82 @@
+Index: linux-2.6.13/drivers/serial/8250.c
+===================================================================
+--- linux-2.6.13.orig/drivers/serial/8250.c 2005-09-15 09:26:00.000000000 +0100
++++ linux-2.6.13/drivers/serial/8250.c 2005-09-15 09:28:49.000000000 +0100
+@@ -2312,7 +2312,12 @@
+ .devfs_name = "tts/",
+ .dev_name = "ttyS",
+ .major = TTY_MAJOR,
++#ifdef CONFIG_SERIAL_PXA
++ .minor = 64 + 3,
++ .name_base = 3,
++#else
+ .minor = 64,
++#endif
+ .nr = UART_NR,
+ .cons = SERIAL8250_CONSOLE,
+ };
+Index: linux-2.6.13/drivers/serial/serial_core.c
+===================================================================
+--- linux-2.6.13.orig/drivers/serial/serial_core.c 2005-09-15 09:26:00.000000000 +0100
++++ linux-2.6.13/drivers/serial/serial_core.c 2005-09-15 09:30:16.000000000 +0100
+@@ -1969,7 +1969,7 @@
+ }
+
+ printk(KERN_INFO "%s%d at %s (irq = %d) is a %s\n",
+- drv->dev_name, port->line, address, port->irq, uart_type(port));
++ drv->dev_name, port->line + drv->name_base, address, port->irq, uart_type(port));
+ }
+
+ static void
+@@ -2133,6 +2133,7 @@
+ normal->driver_name = drv->driver_name;
+ normal->devfs_name = drv->devfs_name;
+ normal->name = drv->dev_name;
++ normal->name_base = drv->name_base;
+ normal->major = drv->major;
+ normal->minor_start = drv->minor;
+ normal->type = TTY_DRIVER_TYPE_SERIAL;
+Index: linux-2.6.13/include/linux/serial_core.h
+===================================================================
+--- linux-2.6.13.orig/include/linux/serial_core.h 2005-09-15 09:26:03.000000000 +0100
++++ linux-2.6.13/include/linux/serial_core.h 2005-09-15 09:28:49.000000000 +0100
+@@ -318,6 +318,7 @@
+ const char *driver_name;
+ const char *dev_name;
+ const char *devfs_name;
++ int name_base;
+ int major;
+ int minor;
+ int nr;
+Index: linux-2.6.13/drivers/serial/serial_cs.c
+===================================================================
+--- linux-2.6.13.orig/drivers/serial/serial_cs.c 2005-09-15 09:26:00.000000000 +0100
++++ linux-2.6.13/drivers/serial/serial_cs.c 2005-09-15 09:28:49.000000000 +0100
+@@ -298,7 +298,7 @@
+ kio_addr_t iobase, int irq)
+ {
+ struct uart_port port;
+- int line;
++ int line, linestart;
+
+ memset(&port, 0, sizeof (struct uart_port));
+ port.iobase = iobase;
+@@ -315,10 +315,16 @@
+ return -EINVAL;
+ }
+
++#if CONFIG_SERIAL_PXA
++ linestart = 3;
++#else
++ linestart = 0;
++#endif
++
+ info->line[info->ndev] = line;
+- sprintf(info->node[info->ndev].dev_name, "ttyS%d", line);
++ sprintf(info->node[info->ndev].dev_name, "ttyS%d", line+linestart);
+ info->node[info->ndev].major = TTY_MAJOR;
+- info->node[info->ndev].minor = 0x40 + line;
++ info->node[info->ndev].minor = 0x40 + line + linestart;
+ if (info->ndev > 0)
+ info->node[info->ndev - 1].next = &info->node[info->ndev];
+ info->ndev++;