lenovo/t440p: Add HDA verbs from the OEM firmware

To get the HDA verbs from the OEM firmware, open the firmware with
UEFITool, search for the existing HDA verbs, extract the UEFI module
and look for the verbs. Copy the consecutive 4 dword sets that look
like HDA verbs.

It is tested to make audio output from both the speaker and headphone
work.

Change-Id: Ie359fdf6785b1c0be8dc201cd76176c0a7fe7942
Signed-off-by: Iru Cai <mytbk920423@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/45693
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
This commit is contained in:
Iru Cai 2020-09-24 21:18:40 +08:00 committed by Patrick Georgi
parent fbdab90b57
commit 871f62c376
2 changed files with 22 additions and 2 deletions

View File

@ -30,7 +30,6 @@ the laptop able to power on.
## Known Issues ## Known Issues
- No audio output when using a headphone
- Cannot get the mainboard serial number from the mainboard: the OEM - Cannot get the mainboard serial number from the mainboard: the OEM
UEFI firmware gets the serial number from an "emulated EEPROM" via UEFI firmware gets the serial number from an "emulated EEPROM" via
I/O port 0x1630/0x1634, but it's still unknown how to make it work I/O port 0x1630/0x1634, but it's still unknown how to make it work

View File

@ -5,8 +5,9 @@
const u32 cim_verb_data[] = { const u32 cim_verb_data[] = {
0x10ec0292, /* Codec Vendor / Device ID: Realtek */ 0x10ec0292, /* Codec Vendor / Device ID: Realtek */
0x17aa220e, /* Subsystem ID */ 0x17aa220e, /* Subsystem ID */
12, /* Number of 4 dword sets */ 32, /* Number of 4 dword sets */
AZALIA_SUBVENDOR(0, 0x17aa220e), AZALIA_SUBVENDOR(0, 0x17aa220e),
AZALIA_RESET(1),
AZALIA_PIN_CFG(0, 0x12, 0x90a60130), AZALIA_PIN_CFG(0, 0x12, 0x90a60130),
AZALIA_PIN_CFG(0, 0x13, 0x40000000), AZALIA_PIN_CFG(0, 0x13, 0x40000000),
AZALIA_PIN_CFG(0, 0x14, 0x90170110), AZALIA_PIN_CFG(0, 0x14, 0x90170110),
@ -18,6 +19,26 @@ const u32 cim_verb_data[] = {
AZALIA_PIN_CFG(0, 0x1b, 0x411111f0), AZALIA_PIN_CFG(0, 0x1b, 0x411111f0),
AZALIA_PIN_CFG(0, 0x1d, 0x40738105), AZALIA_PIN_CFG(0, 0x1d, 0x40738105),
AZALIA_PIN_CFG(0, 0x1e, 0x411111f0), AZALIA_PIN_CFG(0, 0x1e, 0x411111f0),
0x05350000, 0x0534601a, 0x05450000, 0x05442000,
0x05350003, 0x05341ef8, 0x05450003, 0x05441ef8,
0x05350016, 0x05341ee1, 0x05450016, 0x05441ee1,
0x05350023, 0x05341f7b, 0x05450023, 0x05441f7b,
0x05350030, 0x05341fbd, 0x05450030, 0x05441fbd,
0x05350000, 0x0534e01a, 0x05450030, 0x05441fbd,
0x02050020, 0x02048014, 0x02050020, 0x02040014,
0x05350000, 0x0534e01a, 0x05450000, 0x0544e01a,
0x0205001c, 0x02046800, 0x0205006d, 0x0204aa10,
0x02050076, 0x02040009, 0x0205006b, 0x02045029,
0x0205006c, 0x0204a400, 0x02050018, 0x02047208,
0x0205001a, 0x02049ad2, 0x02050014, 0x02040710,
0x02050079, 0x02040b40, 0x02050070, 0x02048800,
0x00b3f410, 0x00c3f11f, 0x00c3f001, 0x015707c0,
0x0153b080, 0x01470740, 0x0143b000, 0x02050004,
0x02040080, 0x01470c02, 0x000f0000, 0x000f0000,
0x02050029, 0x02040050, 0x02050025, 0x0204ebc2,
0x02050026, 0x02044028, 0x02050029, 0x02040250,
0x000f0000, 0x000f0000, 0x02050005, 0x0204ff1f,
}; };
const u32 pc_beep_verbs[0] = {}; const u32 pc_beep_verbs[0] = {};