[PATCH] platform/chrome: cros_ec_lpc: Add support for newer Google devices using custom coreboot firmware or stock SeaBIOS.

From: Vittorio Gambaletta (VittGam)
Date: Thu May 10 2018 - 17:53:35 EST


Custom coreboot firmware does not contain "Google_*" as BIOS
version string; also, booting through stock SeaBIOS will present
an empty BIOS version string to Linux. So the generic match at
the top would not work.

A previous patch added the "GOOGLE" match for DMI system vendor,
but newer machines such as Skylake-based Caroline use "Google"
instead.

Also amend the previous comment adding a note that this is needed
for stock SeaBIOS too.

Signed-off-by: Vittorio Gambaletta <linuxbugs@xxxxxxxxxxx>
Signed-off-by: Salvatore Bellizzi <lkml@xxxxxxxxxx>

---

--- a/drivers/platform/chrome/cros_ec_lpc.c
+++ b/drivers/platform/chrome/cros_ec_lpc.c
@@ -347,7 +347,8 @@
},
{
/*
- * If the box is running custom coreboot firmware then the
+ * If the box is running custom coreboot firmware,
+ * or is booting Linux through stock SeaBIOS, then the
* DMI BIOS version string will not be matched by "Google_",
* but the system vendor string will still be matched by
* "GOOGLE".
@@ -358,6 +359,16 @@
},
},
{
+ /*
+ * Newer machines use "Google" instead of "GOOGLE" as
+ * DMI system vendor string.
+ */
+ .matches = {
+ DMI_MATCH(DMI_BIOS_VENDOR, "coreboot"),
+ DMI_MATCH(DMI_SYS_VENDOR, "Google"),
+ },
+ },
+ {
/* x86-link, the Chromebook Pixel. */
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "GOOGLE"),