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 <linuxb...@vittgam.net>
Signed-off-by: Salvatore Bellizzi <l...@seppia.net>

---

--- 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"),

Reply via email to