soc/intel/.../hda: Add and use config for initialization of HDA codecs
Config option SOC_INTEL_COMMON_BLOCK_HDA is currently used for initialization of HDA codecs only. This prevents adding of any static devices under the HDA device node. However, there can be boards which want to add devices under HDA node (e.g. nocturne that wants to provide DMIC properties to OS) without performing any codec initialization using the HDA. This change: 1. Adds a new config option SOC_INTEL_COMMON_BLOCK_HDA_VERB that can be set explicitly by the boards that want to perform codec initialization. 2. Uses newly added config option is used to guard the initialization functions for the codec. Rest of the device operations can still be used by all the other boards without having to use HDA codec initialization. 3. Selects the newly added option SOC_INTEL_COMMON_BLOCK_HDA_VERB in kblrvp which is the only board enabling HDA codec initialization using common block code. 4. Selects original config SOC_INTEL_COMMON_BLOCK_HDA for skylake SoC. Above changes need to be bundled and pushed in as a single change in order to avoid breaking existing users. BUG=b:112888584 Change-Id: Ie6f39c13a801833b283120a2d4b6f6175688999c Signed-off-by: Furquan Shaikh <furquan@google.com> Reviewed-on: https://review.coreboot.org/28806 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
This commit is contained in:
parent
3b6bddafe7
commit
31bff01a72
|
@ -8,7 +8,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
|
||||||
select HAVE_ACPI_TABLES
|
select HAVE_ACPI_TABLES
|
||||||
select HAVE_OPTION_TABLE
|
select HAVE_OPTION_TABLE
|
||||||
select HAVE_SMI_HANDLER
|
select HAVE_SMI_HANDLER
|
||||||
select SOC_INTEL_COMMON_BLOCK_HDA if BOARD_INTEL_KBLRVP3 || BOARD_INTEL_KBLRVP7
|
select SOC_INTEL_COMMON_BLOCK_HDA_VERB if BOARD_INTEL_KBLRVP3 || BOARD_INTEL_KBLRVP7
|
||||||
select SOC_INTEL_SKYLAKE
|
select SOC_INTEL_SKYLAKE
|
||||||
select SKYLAKE_SOC_PCH_H if BOARD_INTEL_KBLRVP8
|
select SKYLAKE_SOC_PCH_H if BOARD_INTEL_KBLRVP8
|
||||||
select MAINBOARD_USES_FSP2_0
|
select MAINBOARD_USES_FSP2_0
|
||||||
|
|
|
@ -2,3 +2,9 @@ config SOC_INTEL_COMMON_BLOCK_HDA
|
||||||
bool
|
bool
|
||||||
help
|
help
|
||||||
Intel Processor common High Definition Audio driver support
|
Intel Processor common High Definition Audio driver support
|
||||||
|
|
||||||
|
config SOC_INTEL_COMMON_BLOCK_HDA_VERB
|
||||||
|
bool
|
||||||
|
depends on SOC_INTEL_COMMON_BLOCK_HDA
|
||||||
|
help
|
||||||
|
Enable initialization of HDA codecs.
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
#include <soc/intel/common/hda_verb.h>
|
#include <soc/intel/common/hda_verb.h>
|
||||||
#include <soc/ramstage.h>
|
#include <soc/ramstage.h>
|
||||||
|
|
||||||
|
#if IS_ENABLED(CONFIG_SOC_INTEL_COMMON_BLOCK_HDA_VERB)
|
||||||
static void codecs_init(uint8_t *base, u32 codec_mask)
|
static void codecs_init(uint8_t *base, u32 codec_mask)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
@ -57,12 +58,15 @@ static void hda_init(struct device *dev)
|
||||||
codecs_init(base, codec_mask);
|
codecs_init(base, codec_mask);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static struct device_operations hda_ops = {
|
static struct device_operations hda_ops = {
|
||||||
.read_resources = &pci_dev_read_resources,
|
.read_resources = &pci_dev_read_resources,
|
||||||
.set_resources = &pci_dev_set_resources,
|
.set_resources = &pci_dev_set_resources,
|
||||||
.enable_resources = &pci_dev_enable_resources,
|
.enable_resources = &pci_dev_enable_resources,
|
||||||
|
#if IS_ENABLED(CONFIG_SOC_INTEL_COMMON_BLOCK_HDA_VERB)
|
||||||
.init = &hda_init,
|
.init = &hda_init,
|
||||||
|
#endif
|
||||||
.ops_pci = &pci_dev_ops_pci,
|
.ops_pci = &pci_dev_ops_pci,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -61,6 +61,7 @@ config CPU_SPECIFIC_OPTIONS
|
||||||
select SOC_INTEL_COMMON_BLOCK_GPIO_LEGACY_MACROS
|
select SOC_INTEL_COMMON_BLOCK_GPIO_LEGACY_MACROS
|
||||||
select SOC_INTEL_COMMON_BLOCK_GPIO_PADCFG_PADTOL
|
select SOC_INTEL_COMMON_BLOCK_GPIO_PADCFG_PADTOL
|
||||||
select SOC_INTEL_COMMON_BLOCK_GSPI
|
select SOC_INTEL_COMMON_BLOCK_GSPI
|
||||||
|
select SOC_INTEL_COMMON_BLOCK_HDA
|
||||||
select SOC_INTEL_COMMON_BLOCK_SA
|
select SOC_INTEL_COMMON_BLOCK_SA
|
||||||
select SOC_INTEL_COMMON_BLOCK_SGX
|
select SOC_INTEL_COMMON_BLOCK_SGX
|
||||||
select SOC_INTEL_COMMON_BLOCK_SMM
|
select SOC_INTEL_COMMON_BLOCK_SMM
|
||||||
|
|
Loading…
Reference in New Issue