diff options
author | Matt DeVillier <matt.devillier@gmail.com> | 2022-03-01 15:35:17 -0600 |
---|---|---|
committer | Felix Held <felix-coreboot@felixheld.de> | 2022-03-17 14:35:33 +0000 |
commit | 23be41880c1ff0b1485fc6fe1b92d990c3decf8a (patch) | |
tree | 9ff8b39608bbb8e86340301da3344460bbe91be5 /src | |
parent | 3fc3e6c6095589849f5523f583ff946e051799c7 (diff) |
ec/chromeec/ec_smbios: Set system manufacturer for ChromeOS devices
Currently, many Linux drivers use DMI quirks to identify ChromeOS
devices and handle them accordingly: namely they look for the SMBIOS
system manufactuer to be "GOOGLE" or "Google", and the bios-vendor to be
coreboot. Historically this was consistently the case, but recent model
ChromeOS devices allow the OEM to set the mainboard manufacturer, which
is also the default system manufacturer. This breaks many DMI quirks,
notably ones used by SOF (sound open firmware) for audio.
To fix this, set the system manufactuer for ChromeOS devices to "Google"
for devices selecting CONFIG_EC_GOOGLE_CHROMEEC_SKUID, leaving the OEM
customization in place for the mainboard manufacturer. Since boards
selecting CONFIG_EC_GOOGLE_CHROMEEC_SKUID are the only ones overriding
the default mainboard manufacturer, they are the only ones which need
this correction.
Test: build/boot google/bloog with Linux 5.16, verify SOF drivers
correctly detect device as a Chromebook and load the appropriate
audio firmware.
Change-Id: I9de17fa12689ab4e627b995818aa3d2653102b04
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/62796
Reviewed-by: Felix Singer <felixsinger@posteo.net>
Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/ec/google/chromeec/ec_smbios.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/ec/google/chromeec/ec_smbios.c b/src/ec/google/chromeec/ec_smbios.c index 1ee7283dc1..aedcf85afe 100644 --- a/src/ec/google/chromeec/ec_smbios.c +++ b/src/ec/google/chromeec/ec_smbios.c @@ -37,3 +37,8 @@ const char *smbios_mainboard_manufacturer(void) return manuf; } + +const char *smbios_system_manufacturer(void) +{ + return "Google"; +} |