OSDN Git Service

serial: 8250: add support for ACPI-probed serial port for X-Gene platform
authorFeng Kan <fkan@apm.com>
Sat, 6 Dec 2014 01:45:57 +0000 (17:45 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 9 Jan 2015 22:16:27 +0000 (14:16 -0800)
Enable APM X-Gene SoC serial port functionality when using ACPI table to
initialize serial port.

Signed-off-by: Feng Kan <fkan@apm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/8250/8250_dw.c

index 555de07..e601162 100644 (file)
@@ -351,10 +351,20 @@ static int dw8250_probe_of(struct uart_port *p,
 static int dw8250_probe_acpi(struct uart_8250_port *up,
                             struct dw8250_data *data)
 {
+       const struct acpi_device_id *id;
        struct uart_port *p = &up->port;
 
        dw8250_setup_port(up);
 
+       id = acpi_match_device(p->dev->driver->acpi_match_table, p->dev);
+       if (!id)
+               return -ENODEV;
+
+       if (!p->uartclk)
+               if (device_property_read_u32(p->dev, "clock-frequency",
+                                            &p->uartclk))
+                       return -EINVAL;
+
        p->iotype = UPIO_MEM32;
        p->serial_in = dw8250_serial_in32;
        p->serial_out = dw8250_serial_out32;
@@ -577,6 +587,7 @@ static const struct acpi_device_id dw8250_acpi_match[] = {
        { "INT3435", 0 },
        { "80860F0A", 0 },
        { "8086228A", 0 },
+       { "APMC0D08", 0},
        { },
 };
 MODULE_DEVICE_TABLE(acpi, dw8250_acpi_match);