|
@@ -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);
|