On 06/26/2013 05:58 AM, Darren Hart wrote: > Subject: [PATCH] pch_uart: Use DMI interface for board detection > > Use the DMI interface rather than manually matching DMI strings. > > Signed-off-by: Darren Hart <dvhart@xxxxxxxxxxxxxxx> > --- > drivers/tty/serial/pch_uart.c | 71 > +++++++++++++++++++++++++++++-------------- > 1 file changed, 49 insertions(+), 22 deletions(-) > > diff --git a/drivers/tty/serial/pch_uart.c > b/drivers/tty/serial/pch_uart.c > index 572d481..271cc73 100644 > --- a/drivers/tty/serial/pch_uart.c > +++ b/drivers/tty/serial/pch_uart.c > @@ -373,35 +373,62 @@ static const struct file_operations port_regs_ops > = { > }; > #endif /* CONFIG_DEBUG_FS */ > > +static struct dmi_system_id __initdata pch_uart_dmi_table[] = { > + { > + .ident = "CM-iTC", > + { > + DMI_MATCH(DMI_BOARD_NAME, "CM-iTC"), > + }, > + (void *)CMITC_UARTCLK, > + }, > + { > + .ident = "FRI2", > + { > + DMI_MATCH(DMI_BIOS_VERSION, "FRI2"), > + }, > + (void *)FRI2_64_UARTCLK, > + }, > + { > + .ident = "Fish River Island II", > + { > + DMI_MATCH(DMI_PRODUCT_NAME, "Fish River Island II"), > + }, > + (void *)FRI2_48_UARTCLK, > + }, > + { > + .ident = "COMe-mTT", > + { > + DMI_MATCH(DMI_BOARD_NAME, "COMe-mTT"), > + }, > + (void *)NTC1_UARTCLK, > + }, > + { > + .ident = "nanoETXexpress-TT", > + { > + DMI_MATCH(DMI_BOARD_NAME, "nanoETXexpress-TT"), > + }, > + (void *)NTC1_UARTCLK, > + }, > + { > + .ident = "MinnowBoard", > + { > + DMI_MATCH(DMI_BOARD_NAME, "MinnowBoard"), > + }, > + (void *)MINNOW_UARTCLK, > + }, > +}; > + > /* Return UART clock, checking for board specific clocks. */ > static int pch_uart_get_uartclk(void) > { > - const char *cmp; > + const struct dmi_system_id *d; > > if (user_uartclk) > return user_uartclk; > > - cmp = dmi_get_system_info(DMI_BOARD_NAME); > - if (cmp && strstr(cmp, "CM-iTC")) > - return CMITC_UARTCLK; > - > - cmp = dmi_get_system_info(DMI_BIOS_VERSION); > - if (cmp && strnstr(cmp, "FRI2", 4)) > - return FRI2_64_UARTCLK; > - > - cmp = dmi_get_system_info(DMI_PRODUCT_NAME); > - if (cmp && strstr(cmp, "Fish River Island II")) > - return FRI2_48_UARTCLK; > - > - /* Kontron COMe-mTT10 (nanoETXexpress-TT) */ > - cmp = dmi_get_system_info(DMI_BOARD_NAME); > - if (cmp && (strstr(cmp, "COMe-mTT") || > - strstr(cmp, "nanoETXexpress-TT"))) > - return NTC1_UARTCLK; > - > - cmp = dmi_get_system_info(DMI_BOARD_NAME); > - if (cmp && strstr(cmp, "MinnowBoard")) > - return MINNOW_UARTCLK; > + d = dmi_first_match(pch_uart_dmi_table); > + if (d) > + return (int)d->driver_data; This and the (void *) casts above will generate a warning on 64bit, right? We need to go through long here... -- js suse labs -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html