mb/system76: Reset Realtek codec before configuring

Perform a codec reset before configuring to avoid potential issues like
oryp5 had before 86f410479c ("mb/system76/oryp5: Reset HDA before
configuring").

Inspecting proprietary firmware for multiple boards shows that this is
always done as well.

Change-Id: I64c1fd23f708f77a81fad0bc889f42d4df3f6e61
Signed-off-by: Tim Crawford <tcrawford@system76.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/66918
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jeremy Soller <jeremy@system76.com>
This commit is contained in:
Tim Crawford 2022-08-19 13:18:24 -06:00 committed by Martin L Roth
parent c9cb8ff8fb
commit 705ebbea04
22 changed files with 43 additions and 22 deletions

View File

@ -6,8 +6,9 @@ const u32 cim_verb_data[] = {
/* Realtek, ALC1220 */ /* Realtek, ALC1220 */
0x10ec1220, /* Vendor ID */ 0x10ec1220, /* Vendor ID */
0x155865d1, /* Subsystem ID */ 0x155865d1, /* Subsystem ID */
12, /* Number of entries */ 13, /* Number of entries */
AZALIA_SUBVENDOR(0, 0x155865d1), AZALIA_SUBVENDOR(0, 0x155865d1),
AZALIA_RESET(1),
AZALIA_PIN_CFG(0, 0x12, 0x90a60130), // DMIC AZALIA_PIN_CFG(0, 0x12, 0x90a60130), // DMIC
AZALIA_PIN_CFG(0, 0x14, 0x0421101f), // FRONT (Port-D) AZALIA_PIN_CFG(0, 0x14, 0x0421101f), // FRONT (Port-D)
AZALIA_PIN_CFG(0, 0x15, 0x40000000), // SURR (Port-A) AZALIA_PIN_CFG(0, 0x15, 0x40000000), // SURR (Port-A)

View File

@ -6,8 +6,9 @@ const u32 cim_verb_data[] = {
/* Realtek, ALC1220 */ /* Realtek, ALC1220 */
0x10ec1220, /* Vendor ID */ 0x10ec1220, /* Vendor ID */
0x155865e1, /* Subsystem ID */ 0x155865e1, /* Subsystem ID */
12, /* Number of entries */ 13, /* Number of entries */
AZALIA_SUBVENDOR(0, 0x155865e1), AZALIA_SUBVENDOR(0, 0x155865e1),
AZALIA_RESET(1),
AZALIA_PIN_CFG(0, 0x12, 0x90a60130), // DMIC AZALIA_PIN_CFG(0, 0x12, 0x90a60130), // DMIC
AZALIA_PIN_CFG(0, 0x14, 0x0421101f), // FRONT (Port-D) AZALIA_PIN_CFG(0, 0x14, 0x0421101f), // FRONT (Port-D)
AZALIA_PIN_CFG(0, 0x15, 0x40000000), // SURR (Port-A) AZALIA_PIN_CFG(0, 0x15, 0x40000000), // SURR (Port-A)

View File

@ -6,8 +6,9 @@ const u32 cim_verb_data[] = {
/* Realtek, ALC1220 */ /* Realtek, ALC1220 */
0x10ec1220, /* Vendor ID */ 0x10ec1220, /* Vendor ID */
0x15587714, /* Subsystem ID */ 0x15587714, /* Subsystem ID */
12, /* Number of entries */ 13, /* Number of entries */
AZALIA_SUBVENDOR(0, 0x15587714), AZALIA_SUBVENDOR(0, 0x15587714),
AZALIA_RESET(1),
AZALIA_PIN_CFG(0, 0x12, 0x90a60130), AZALIA_PIN_CFG(0, 0x12, 0x90a60130),
AZALIA_PIN_CFG(0, 0x14, 0x40000000), AZALIA_PIN_CFG(0, 0x14, 0x40000000),
AZALIA_PIN_CFG(0, 0x15, 0x411111f0), AZALIA_PIN_CFG(0, 0x15, 0x411111f0),

View File

@ -6,8 +6,9 @@ const u32 cim_verb_data[] = {
/* Realtek ALC293 */ /* Realtek ALC293 */
0x10ec0293, /* Vendor ID */ 0x10ec0293, /* Vendor ID */
0x15581404, /* Subsystem ID */ 0x15581404, /* Subsystem ID */
12, /* Number of entries */ 13, /* Number of entries */
AZALIA_SUBVENDOR(0, 0x15581404), AZALIA_SUBVENDOR(0, 0x15581404),
AZALIA_RESET(1),
AZALIA_PIN_CFG(0, 0x12, 0x90a60140), AZALIA_PIN_CFG(0, 0x12, 0x90a60140),
AZALIA_PIN_CFG(0, 0x13, 0x40000000), AZALIA_PIN_CFG(0, 0x13, 0x40000000),
AZALIA_PIN_CFG(0, 0x14, 0x90170110), AZALIA_PIN_CFG(0, 0x14, 0x90170110),

View File

@ -6,8 +6,9 @@ const u32 cim_verb_data[] = {
/* Realtek ALC293 */ /* Realtek ALC293 */
0x10ec0293, /* Vendor ID */ 0x10ec0293, /* Vendor ID */
0x15581403, /* Subsystem ID */ 0x15581403, /* Subsystem ID */
12, /* Number of entries */ 13, /* Number of entries */
AZALIA_SUBVENDOR(0, 0x15581403), AZALIA_SUBVENDOR(0, 0x15581403),
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),

View File

@ -6,8 +6,9 @@ const u32 cim_verb_data[] = {
/* Realtek, ALC269VC */ /* Realtek, ALC269VC */
0x10ec0269, /* Vendor ID */ 0x10ec0269, /* Vendor ID */
0x15588560, /* Subsystem ID */ 0x15588560, /* Subsystem ID */
11, /* Number of entries */ 12, /* Number of entries */
AZALIA_SUBVENDOR(0, 0x15588560), AZALIA_SUBVENDOR(0, 0x15588560),
AZALIA_RESET(1),
AZALIA_PIN_CFG(0, 0x12, 0x90a60140), AZALIA_PIN_CFG(0, 0x12, 0x90a60140),
AZALIA_PIN_CFG(0, 0x14, 0x90170110), AZALIA_PIN_CFG(0, 0x14, 0x90170110),
AZALIA_PIN_CFG(0, 0x15, 0x02211020), AZALIA_PIN_CFG(0, 0x15, 0x02211020),

View File

@ -6,8 +6,9 @@ const u32 cim_verb_data[] = {
/* Realtek, ALC293 */ /* Realtek, ALC293 */
0x10ec0293, /* Vendor ID */ 0x10ec0293, /* Vendor ID */
0x15588520, /* Subsystem ID */ 0x15588520, /* Subsystem ID */
12, /* Number of entries */ 13, /* Number of entries */
AZALIA_SUBVENDOR(0, 0x15588520), AZALIA_SUBVENDOR(0, 0x15588520),
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),

View File

@ -6,8 +6,9 @@ const u32 cim_verb_data[] = {
/* Realtek, ALC256 */ /* Realtek, ALC256 */
0x10ec0256, /* Vendor ID */ 0x10ec0256, /* Vendor ID */
0x15585017, /* Subsystem ID */ 0x15585017, /* Subsystem ID */
11, /* Number of entries */ 12, /* Number of entries */
AZALIA_SUBVENDOR(0, 0x15585017), AZALIA_SUBVENDOR(0, 0x15585017),
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),

View File

@ -6,8 +6,9 @@ const u32 cim_verb_data[] = {
/* Realtek, ALC256 */ /* Realtek, ALC256 */
0x10ec0256, /* Vendor ID */ 0x10ec0256, /* Vendor ID */
0x155850e2, /* Subsystem ID */ 0x155850e2, /* Subsystem ID */
11, /* Number of entries */ 12, /* Number of entries */
AZALIA_SUBVENDOR(0, 0x155850e2), AZALIA_SUBVENDOR(0, 0x155850e2),
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),

View File

@ -6,8 +6,9 @@ const u32 cim_verb_data[] = {
/* Realtek, ALC269VC */ /* Realtek, ALC269VC */
0x10ec0269, /* Vendor ID */ 0x10ec0269, /* Vendor ID */
0x15581303, /* Subsystem ID */ 0x15581303, /* Subsystem ID */
11, /* Number of entries */ 12, /* Number of entries */
AZALIA_SUBVENDOR(0, 0x15581303), AZALIA_SUBVENDOR(0, 0x15581303),
AZALIA_RESET(1),
AZALIA_PIN_CFG(0, 0x12, 0x90a60140), AZALIA_PIN_CFG(0, 0x12, 0x90a60140),
AZALIA_PIN_CFG(0, 0x14, 0x90170120), AZALIA_PIN_CFG(0, 0x14, 0x90170120),
AZALIA_PIN_CFG(0, 0x15, 0x02211010), AZALIA_PIN_CFG(0, 0x15, 0x02211010),

View File

@ -6,8 +6,9 @@ const u32 cim_verb_data[] = {
/* Realtek, ALC269VC */ /* Realtek, ALC269VC */
0x10ec0269, /* Vendor ID */ 0x10ec0269, /* Vendor ID */
0x15581414, /* Subsystem ID */ 0x15581414, /* Subsystem ID */
11, /* Number of entries */ 12, /* Number of entries */
AZALIA_SUBVENDOR(0, 0x15581414), AZALIA_SUBVENDOR(0, 0x15581414),
AZALIA_RESET(1),
AZALIA_PIN_CFG(0, 0x12, 0x90a60140), AZALIA_PIN_CFG(0, 0x12, 0x90a60140),
AZALIA_PIN_CFG(0, 0x14, 0x90170120), AZALIA_PIN_CFG(0, 0x14, 0x90170120),
AZALIA_PIN_CFG(0, 0x15, 0x02211010), AZALIA_PIN_CFG(0, 0x15, 0x02211010),

View File

@ -6,8 +6,9 @@ const u32 cim_verb_data[] = {
/* Realtek, ALC269VC */ /* Realtek, ALC269VC */
0x10ec0269, /* Vendor ID */ 0x10ec0269, /* Vendor ID */
0x15581313, /* Subsystem ID */ 0x15581313, /* Subsystem ID */
11, /* Number of entries */ 12, /* Number of entries */
AZALIA_SUBVENDOR(0, 0x15581313), AZALIA_SUBVENDOR(0, 0x15581313),
AZALIA_RESET(1),
AZALIA_PIN_CFG(0, 0x12, 0x90a60140), AZALIA_PIN_CFG(0, 0x12, 0x90a60140),
AZALIA_PIN_CFG(0, 0x14, 0x90170120), AZALIA_PIN_CFG(0, 0x14, 0x90170120),
AZALIA_PIN_CFG(0, 0x15, 0x02211010), AZALIA_PIN_CFG(0, 0x15, 0x02211010),

View File

@ -6,8 +6,9 @@ const u32 cim_verb_data[] = {
/* Realtek ALC293 */ /* Realtek ALC293 */
0x10ec0293, /* Vendor ID */ 0x10ec0293, /* Vendor ID */
0x15581401, /* Subsystem ID */ 0x15581401, /* Subsystem ID */
12, /* Number of entries */ 13, /* Number of entries */
AZALIA_SUBVENDOR(0, 0x15581401), AZALIA_SUBVENDOR(0, 0x15581401),
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),

View File

@ -6,7 +6,7 @@ const u32 cim_verb_data[] = {
/* Realtek, ALC1220 */ /* Realtek, ALC1220 */
0x10ec1220, /* Vendor ID */ 0x10ec1220, /* Vendor ID */
0x155896e1, /* Subsystem ID */ 0x155896e1, /* Subsystem ID */
12, /* Number of entries */ 13, /* Number of entries */
AZALIA_SUBVENDOR(0, 0x155896e1), AZALIA_SUBVENDOR(0, 0x155896e1),
AZALIA_RESET(1), AZALIA_RESET(1),
AZALIA_PIN_CFG(0, 0x12, 0x90a60140), // DMIC AZALIA_PIN_CFG(0, 0x12, 0x90a60140), // DMIC

View File

@ -6,8 +6,9 @@ const u32 cim_verb_data[] = {
/* Realtek, ALC1220 */ /* Realtek, ALC1220 */
0x10ec1220, /* Vendor ID */ 0x10ec1220, /* Vendor ID */
0x155850d3, /* Subsystem ID */ 0x155850d3, /* Subsystem ID */
12, /* Number of entries */ 13, /* Number of entries */
AZALIA_SUBVENDOR(0, 0x155850d3), AZALIA_SUBVENDOR(0, 0x155850d3),
AZALIA_RESET(1),
AZALIA_PIN_CFG(0, 0x12, 0x90a60130), AZALIA_PIN_CFG(0, 0x12, 0x90a60130),
AZALIA_PIN_CFG(0, 0x14, 0x0421101f), AZALIA_PIN_CFG(0, 0x14, 0x0421101f),
AZALIA_PIN_CFG(0, 0x15, 0x40000000), AZALIA_PIN_CFG(0, 0x15, 0x40000000),

View File

@ -6,8 +6,9 @@ const u32 cim_verb_data[] = {
/* Realtek, ALC1220 */ /* Realtek, ALC1220 */
0x10ec1220, /* Vendor ID */ 0x10ec1220, /* Vendor ID */
0x155865e5, /* Subsystem ID */ 0x155865e5, /* Subsystem ID */
12, /* Number of entries */ 13, /* Number of entries */
AZALIA_SUBVENDOR(0, 0x155865e5), AZALIA_SUBVENDOR(0, 0x155865e5),
AZALIA_RESET(1),
AZALIA_PIN_CFG(0, 0x12, 0x90a60130), AZALIA_PIN_CFG(0, 0x12, 0x90a60130),
AZALIA_PIN_CFG(0, 0x14, 0x0421101f), AZALIA_PIN_CFG(0, 0x14, 0x0421101f),
AZALIA_PIN_CFG(0, 0x15, 0x40000000), AZALIA_PIN_CFG(0, 0x15, 0x40000000),

View File

@ -6,8 +6,9 @@ const u32 cim_verb_data[] = {
/* Realtek, ALC1220 */ /* Realtek, ALC1220 */
0x10ec1220, /* Vendor ID */ 0x10ec1220, /* Vendor ID */
0x155865f1, /* Subsystem ID */ 0x155865f1, /* Subsystem ID */
12, /* Number of entries */ 13, /* Number of entries */
AZALIA_SUBVENDOR(0, 0x155865f1), AZALIA_SUBVENDOR(0, 0x155865f1),
AZALIA_RESET(1),
AZALIA_PIN_CFG(0, 0x12, 0x90a60130), AZALIA_PIN_CFG(0, 0x12, 0x90a60130),
AZALIA_PIN_CFG(0, 0x14, 0x0421101f), AZALIA_PIN_CFG(0, 0x14, 0x0421101f),
AZALIA_PIN_CFG(0, 0x15, 0x40000000), AZALIA_PIN_CFG(0, 0x15, 0x40000000),

View File

@ -6,8 +6,9 @@ const u32 cim_verb_data[] = {
/* Realtek, ALC293 */ /* Realtek, ALC293 */
0x10ec0293, /* Vendor ID */ 0x10ec0293, /* Vendor ID */
0x155851a1, /* Subsystem ID */ 0x155851a1, /* Subsystem ID */
12, /* Number of entries */ 13, /* Number of entries */
AZALIA_SUBVENDOR(0, 0x155851a1), AZALIA_SUBVENDOR(0, 0x155851a1),
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),

View File

@ -6,8 +6,9 @@ const u32 cim_verb_data[] = {
/* Realtek, ALC293 */ /* Realtek, ALC293 */
0x10ec0293, /* Vendor ID */ 0x10ec0293, /* Vendor ID */
0x15584018, /* Subsystem ID */ 0x15584018, /* Subsystem ID */
12, /* Number of entries */ 13, /* Number of entries */
AZALIA_SUBVENDOR(0, 0x15584018), AZALIA_SUBVENDOR(0, 0x15584018),
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),

View File

@ -6,8 +6,9 @@ const u32 cim_verb_data[] = {
/* Realtek, ALC293 */ /* Realtek, ALC293 */
0x10ec0293, /* Vendor ID */ 0x10ec0293, /* Vendor ID */
0x155814a1, /* Subsystem ID */ 0x155814a1, /* Subsystem ID */
12, /* Number of entries */ 13, /* Number of entries */
AZALIA_SUBVENDOR(0, 0x155814a1), AZALIA_SUBVENDOR(0, 0x155814a1),
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),

View File

@ -6,8 +6,9 @@ const u32 cim_verb_data[] = {
/* Realtek ALC293 */ /* Realtek ALC293 */
0x10ec0293, /* Vendor ID */ 0x10ec0293, /* Vendor ID */
0x15581325, /* Subsystem ID */ 0x15581325, /* Subsystem ID */
12, /* Number of entries */ 13, /* Number of entries */
AZALIA_SUBVENDOR(0, 0x15581325), AZALIA_SUBVENDOR(0, 0x15581325),
AZALIA_RESET(1),
AZALIA_PIN_CFG(0, 0x12, 0x90a60140), AZALIA_PIN_CFG(0, 0x12, 0x90a60140),
AZALIA_PIN_CFG(0, 0x13, 0x40000000), AZALIA_PIN_CFG(0, 0x13, 0x40000000),
AZALIA_PIN_CFG(0, 0x14, 0x90170110), AZALIA_PIN_CFG(0, 0x14, 0x90170110),

View File

@ -6,8 +6,9 @@ const u32 cim_verb_data[] = {
/* Realtek ALC293 */ /* Realtek ALC293 */
0x10ec0293, /* Vendor ID */ 0x10ec0293, /* Vendor ID */
0x15581323, /* Subsystem ID */ 0x15581323, /* Subsystem ID */
12, /* Number of entries */ 13, /* Number of entries */
AZALIA_SUBVENDOR(0, 0x15581323), AZALIA_SUBVENDOR(0, 0x15581323),
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),