diff options
author | Duncan Laurie <dlaurie@google.com> | 2018-10-19 17:01:31 -0700 |
---|---|---|
committer | Duncan Laurie <dlaurie@chromium.org> | 2018-10-31 18:31:15 +0000 |
commit | 29f2b258c855ab13452eb7ebd519140860fbe76a (patch) | |
tree | 66c26c37aa252dd99e19c23217c6bb6bd7906f15 /src/ec/google | |
parent | f5d688a5a2bc1d62fb463a76a04267cb349b158f (diff) |
ec/google/wilco: Unmute audio on init
The speakers start up muted, and the EC must be told by the BIOS
to unmute it. This helps prevent popping noises on boot/resume.
Change-Id: I693f1d01e46e19362ef8fd0d5b3f4930967b5a12
Signed-off-by: Duncan Laurie <dlaurie@google.com>
Reviewed-on: https://review.coreboot.org/29203
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/ec/google')
-rw-r--r-- | src/ec/google/wilco/chip.c | 3 | ||||
-rw-r--r-- | src/ec/google/wilco/commands.h | 7 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/ec/google/wilco/chip.c b/src/ec/google/wilco/chip.c index 929d1cc312..0cd0048f67 100644 --- a/src/ec/google/wilco/chip.c +++ b/src/ec/google/wilco/chip.c @@ -63,6 +63,9 @@ static void wilco_ec_init(struct device *dev) /* Direct power button to the host for processing */ wilco_ec_send(KB_POWER_BUTTON_TO_HOST, 1); + + /* Unmute speakers */ + wilco_ec_send(KB_HW_MUTE_CONTROL, AUDIO_UNMUTE_125MS); } static void wilco_ec_resource(struct device *dev, int index, diff --git a/src/ec/google/wilco/commands.h b/src/ec/google/wilco/commands.h index 7a9bc05a07..4a19030216 100644 --- a/src/ec/google/wilco/commands.h +++ b/src/ec/google/wilco/commands.h @@ -36,6 +36,8 @@ enum { KB_ACPI = 0x3a, /* Manage the EC power button passthru to the host */ KB_POWER_BUTTON_TO_HOST = 0x3e, + /* Manage the EC control of speaker mute */ + KB_HW_MUTE_CONTROL = 0x60, /* Inform the EC that the host is about to enter S3 */ KB_SLP_EN = 0x64, /* Inform the EC about BIOS boot progress */ @@ -54,6 +56,11 @@ enum bios_progress_code { BIOS_PROGRESS_POST_COMPLETE = 0x04, }; +enum ec_audio_mute { + AUDIO_MUTE = 0, /* Mute speakers immediately */ + AUDIO_UNMUTE_125MS, /* Unmute in 125ms */ +}; + /* * EC Information */ |