diff --git a/src/soc/intel/broadwell/pch/hda.c b/src/soc/intel/broadwell/pch/hda.c index c6ae590bc4..ba7d342fe5 100644 --- a/src/soc/intel/broadwell/pch/hda.c +++ b/src/soc/intel/broadwell/pch/hda.c @@ -129,12 +129,19 @@ static void hda_enable(struct device *dev) } } +static void hda_final(struct device *dev) +{ + /* Set HDCFG.BCLD */ + pci_or_config16(dev, 0x40, 1 << 1); +} + static struct device_operations hda_ops = { .read_resources = &pci_dev_read_resources, .set_resources = &pci_dev_set_resources, .enable_resources = &pci_dev_enable_resources, .init = &hda_init, .enable = &hda_enable, + .final = &hda_final, .ops_pci = &pci_dev_ops_pci, }; diff --git a/src/southbridge/intel/lynxpoint/azalia.c b/src/southbridge/intel/lynxpoint/azalia.c index ad84b0093a..27ee9248a2 100644 --- a/src/southbridge/intel/lynxpoint/azalia.c +++ b/src/southbridge/intel/lynxpoint/azalia.c @@ -121,11 +121,18 @@ static void azalia_init(struct device *dev) } } +static void azalia_final(struct device *dev) +{ + /* Set HDCFG.BCLD */ + pci_or_config16(dev, 0x40, 1 << 1); +} + static struct device_operations azalia_ops = { .read_resources = pci_dev_read_resources, .set_resources = pci_dev_set_resources, .enable_resources = pci_dev_enable_resources, .init = azalia_init, + .final = azalia_final, .ops_pci = &pci_dev_ops_pci, };