diff options
author | Duncan Laurie <dlaurie@chromium.org> | 2014-08-08 09:59:43 -0700 |
---|---|---|
committer | Marc Jones <marc.jones@se-eng.com> | 2015-03-27 05:39:35 +0100 |
commit | 446fb8e45ef2d555579e7659c1c0a91bb8ff3d78 (patch) | |
tree | c610b4353948d3826b1402a5bc6b1da3da35cff6 /src/soc/intel/broadwell/hda.c | |
parent | 3deaa058502d9cea14fd198c3280d85f1bd2f3a2 (diff) | |
download | coreboot-446fb8e45ef2d555579e7659c1c0a91bb8ff3d78.tar.xz |
broadwell: Misc updates from 2.1.0 ref code
- ADSP IRQ should be exclusive
- HDA should write reg 0x43 even if disabled
- A few clock gating tweaks based on ref code changes
- Move SATA clock gating to sata.c where SIR changes are done
- Add support for enabling Deep SX in AC/DC modes
- CLKREQ VR Idle for enabled PCIE ports
BUG=chrome-os-partner:28234
BRANCH=None
TEST=build and boot on samus
Original-Change-Id: Icece58e32b7a5d2b359debd5516a230cae3fd48c
Original-Signed-off-by: Duncan Laurie <dlaurie@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/211611
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
(cherry picked from commit c0e22ba043ed96bdddca4989b2f29d0e989f6fef)
Signed-off-by: Marc Jones <marc.jones@se-eng.com>
Change-Id: If5f5e1666aa9660e31305ee6369f2febf6757b99
Reviewed-on: http://review.coreboot.org/8952
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin@google.com>
Diffstat (limited to 'src/soc/intel/broadwell/hda.c')
-rw-r--r-- | src/soc/intel/broadwell/hda.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/soc/intel/broadwell/hda.c b/src/soc/intel/broadwell/hda.c index 76868059ec..ba648dbf8d 100644 --- a/src/soc/intel/broadwell/hda.c +++ b/src/soc/intel/broadwell/hda.c @@ -79,10 +79,6 @@ static void hda_pch_init(struct device *dev, u8 *base) pci_write_config32(dev, 0x120, reg32); } - reg8 = pci_read_config8(dev, 0x43); - reg8 &= ~(1 << 6); - pci_write_config8(dev, 0x43, reg8); - /* Additional programming steps */ reg32 = pci_read_config32(dev, 0xc4); reg32 |= (1 << 24); @@ -138,12 +134,17 @@ static void hda_init(struct device *dev) static void hda_enable(struct device *dev) { u32 reg32; + u8 reg8; + + reg8 = pci_read_config8(dev, 0x43); + reg8 |= 0x6f; + pci_write_config8(dev, 0x43, reg8); if (!dev->enabled) { /* Route I/O buffers to ADSP function */ - reg32 = pci_read_config32(dev, 0x42); - reg32 |= (1 << 7) | (1 << 6); - pci_write_config32(dev, 0x42, reg32); + reg8 = pci_read_config8(dev, 0x42); + reg8 |= (1 << 7) | (1 << 6); + pci_write_config8(dev, 0x42, reg8); printk(BIOS_INFO, "HDA disabled, I/O buffers routed to ADSP\n"); |