Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4e323489 authored by Darren Hart's avatar Darren Hart Committed by Greg Kroah-Hartman
Browse files

pch_uart: Use DMI interface for board detection



Use the DMI interface rather than manually matching DMI strings.

Signed-off-by: default avatarDarren Hart <dvhart@linux.intel.com>
Cc: Michael Brunner <mibru@gmx.de>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 7d12b976
Loading
Loading
Loading
Loading
+49 −22
Original line number Original line Diff line number Diff line
@@ -373,35 +373,62 @@ static const struct file_operations port_regs_ops = {
};
};
#endif	/* CONFIG_DEBUG_FS */
#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. */
/* Return UART clock, checking for board specific clocks. */
static int pch_uart_get_uartclk(void)
static int pch_uart_get_uartclk(void)
{
{
	const char *cmp;
	const struct dmi_system_id *d;


	if (user_uartclk)
	if (user_uartclk)
		return user_uartclk;
		return user_uartclk;


	cmp = dmi_get_system_info(DMI_BOARD_NAME);
	d = dmi_first_match(pch_uart_dmi_table);
	if (cmp && strstr(cmp, "CM-iTC"))
	if (d)
		return CMITC_UARTCLK;
		return (int)d->driver_data;

	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;


	return DEFAULT_UARTCLK;
	return DEFAULT_UARTCLK;
}
}