tree eb0a9beef23463d18d8d440c8fba9cbbb1f986b3
parent 8b378def5a386c4a7f15b51ed79802badb9f5a70
author Bjorn Helgaas <[EMAIL PROTECTED]> Thu, 28 Jul 2005 15:07:39 -0700
committer Linus Torvalds <[EMAIL PROTECTED]> Thu, 28 Jul 2005 22:39:02 -0700

[PATCH] PCDP: if PCDP contains parity information, use it

If the PCDP supplies parity, use it (only none/even/odd supported), and
don't append parity/stop bit arguments unless baud is present.

Signed-off-by: Bjorn Helgaas <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>

 drivers/firmware/pcdp.c |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/drivers/firmware/pcdp.c b/drivers/firmware/pcdp.c
--- a/drivers/firmware/pcdp.c
+++ b/drivers/firmware/pcdp.c
@@ -25,14 +25,22 @@ setup_serial_console(struct pcdp_uart *u
 #ifdef CONFIG_SERIAL_8250_CONSOLE
        int mmio;
        static char options[64], *p = options;
+       char parity;
 
        mmio = (uart->addr.address_space_id == ACPI_ADR_SPACE_SYSTEM_MEMORY);
        p += sprintf(p, "console=uart,%s,0x%lx",
                mmio ? "mmio" : "io", uart->addr.address);
-       if (uart->baud)
+       if (uart->baud) {
                p += sprintf(p, ",%lu", uart->baud);
-       if (uart->bits)
-               p += sprintf(p, "n%d", uart->bits);
+               if (uart->bits) {
+                       switch (uart->parity) {
+                           case 0x2: parity = 'e'; break;
+                           case 0x3: parity = 'o'; break;
+                           default:  parity = 'n';
+                       }
+                       p += sprintf(p, "%c%d", parity, uart->bits);
+               }
+       }
 
        return early_serial_console_init(options);
 #else
-
To unsubscribe from this list: send the line "unsubscribe bk-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to