On Wed, 2013-06-26 at 08:43 +0200, Jiri Slaby wrote: > 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... > You can't actually use this driver on 64 bit as there is no hardware, but yes, I can clean that up just on principle. Thank you for pointing that out. -- Darren Hart Intel Open Source Technology Center Yocto Project - Technical Lead - Linux Kernel -- 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