forked from Minki/linux
01f50d69be
For certain platforms, it is required to start the clocks (mclk/sclk/fs) before the stream start. Example: for few chrome systems, codec needs the mclk/sclk to be enabled early for a successful clock synchronization and for few IVI platforms, clock need to be enabled at boot and should be ON always. Add the required structures and create set_dma_control ipc to enable or disable the clock. To enable sclk without fs, mclk ipc structure is used, else sclkfs ipc structure is used. Clock prepare/unprepare are used to enable/disable the clock as the IPC will be sent in non-atomic context. The clk set_dma_control IPC structures are populated during the set_rate callback and IPC is sent to enable the clock during prepare callback. This patch creates virtual clock driver, which allows the machine driver to use the clock interface to send IPCs to DSP to enable/disable the clocks. Signed-off-by: Sriram Periyasamy <sriramx.periyasamy@intel.com> Signed-off-by: Jaikrishna Nemallapudi <jaikrishnax.nemallapudi@intel.com> Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> Acked-by: Vinod Koul <vinod.koul@intel.com> Reviewed-by: Stephen Boyd <sboyd@codeaurora.org> Signed-off-by: Mark Brown <broonie@kernel.org>
126 lines
3.8 KiB
Plaintext
126 lines
3.8 KiB
Plaintext
config SND_SOC_INTEL_SST_TOPLEVEL
|
|
bool "Intel ASoC SST drivers"
|
|
default y
|
|
depends on X86 || COMPILE_TEST
|
|
select SND_SOC_INTEL_MACH
|
|
help
|
|
Intel ASoC SST Platform Drivers. If you have a Intel machine that
|
|
has an audio controller with a DSP and I2S or DMIC port, then
|
|
enable this option by saying Y
|
|
|
|
Note that the answer to this question doesn't directly affect the
|
|
kernel: saying N will just cause the configurator to skip all
|
|
the questions about Intel SST drivers.
|
|
|
|
if SND_SOC_INTEL_SST_TOPLEVEL
|
|
|
|
config SND_SST_IPC
|
|
tristate
|
|
# This option controls the IPC core for HiFi2 platforms
|
|
|
|
config SND_SST_IPC_PCI
|
|
tristate
|
|
select SND_SST_IPC
|
|
# This option controls the PCI-based IPC for HiFi2 platforms
|
|
# (Medfield, Merrifield).
|
|
|
|
config SND_SST_IPC_ACPI
|
|
tristate
|
|
select SND_SST_IPC
|
|
# This option controls the ACPI-based IPC for HiFi2 platforms
|
|
# (Baytrail, Cherrytrail)
|
|
|
|
config SND_SOC_INTEL_SST_ACPI
|
|
tristate
|
|
# This option controls ACPI-based probing on
|
|
# Haswell/Broadwell/Baytrail legacy and will be set
|
|
# when these platforms are enabled
|
|
|
|
config SND_SOC_INTEL_SST
|
|
tristate
|
|
|
|
config SND_SOC_INTEL_SST_FIRMWARE
|
|
tristate
|
|
select DW_DMAC_CORE
|
|
# This option controls firmware download on
|
|
# Haswell/Broadwell/Baytrail legacy and will be set
|
|
# when these platforms are enabled
|
|
|
|
config SND_SOC_INTEL_HASWELL
|
|
tristate "Haswell/Broadwell Platforms"
|
|
depends on SND_DMA_SGBUF
|
|
depends on DMADEVICES && ACPI
|
|
select SND_SOC_INTEL_SST
|
|
select SND_SOC_INTEL_SST_ACPI
|
|
select SND_SOC_INTEL_SST_FIRMWARE
|
|
select SND_SOC_ACPI_INTEL_MATCH
|
|
help
|
|
If you have a Intel Haswell or Broadwell platform connected to
|
|
an I2S codec, then enable this option by saying Y or m. This is
|
|
typically used for Chromebooks. This is a recommended option.
|
|
|
|
config SND_SOC_INTEL_BAYTRAIL
|
|
tristate "Baytrail (legacy) Platforms"
|
|
depends on DMADEVICES && ACPI
|
|
select SND_SOC_INTEL_SST
|
|
select SND_SOC_INTEL_SST_ACPI
|
|
select SND_SOC_INTEL_SST_FIRMWARE
|
|
select SND_SOC_ACPI_INTEL_MATCH
|
|
help
|
|
If you have a Intel Baytrail platform connected to an I2S codec,
|
|
then enable this option by saying Y or m. This was typically used
|
|
for Baytrail Chromebooks but this option is now deprecated and is
|
|
not recommended, use SND_SST_ATOM_HIFI2_PLATFORM instead.
|
|
|
|
config SND_SST_ATOM_HIFI2_PLATFORM_PCI
|
|
tristate "PCI HiFi2 (Medfield, Merrifield) Platforms"
|
|
depends on X86 && PCI
|
|
select SND_SST_IPC_PCI
|
|
select SND_SOC_COMPRESS
|
|
help
|
|
If you have a Intel Medfield or Merrifield/Edison platform, then
|
|
enable this option by saying Y or m. Distros will typically not
|
|
enable this option: Medfield devices are not available to
|
|
developers and while Merrifield/Edison can run a mainline kernel with
|
|
limited functionality it will require a firmware file which
|
|
is not in the standard firmware tree
|
|
|
|
config SND_SST_ATOM_HIFI2_PLATFORM
|
|
tristate "ACPI HiFi2 (Baytrail, Cherrytrail) Platforms"
|
|
depends on X86 && ACPI
|
|
select SND_SST_IPC_ACPI
|
|
select SND_SOC_COMPRESS
|
|
select SND_SOC_ACPI_INTEL_MATCH
|
|
select IOSF_MBI
|
|
help
|
|
If you have a Intel Baytrail or Cherrytrail platform with an I2S
|
|
codec, then enable this option by saying Y or m. This is a
|
|
recommended option
|
|
|
|
config SND_SOC_INTEL_SKYLAKE_SSP_CLK
|
|
tristate
|
|
|
|
config SND_SOC_INTEL_SKYLAKE
|
|
tristate "SKL/BXT/KBL/GLK/CNL... Platforms"
|
|
depends on PCI && ACPI
|
|
select SND_HDA_EXT_CORE
|
|
select SND_HDA_DSP_LOADER
|
|
select SND_SOC_TOPOLOGY
|
|
select SND_SOC_INTEL_SST
|
|
select SND_SOC_ACPI_INTEL_MATCH
|
|
help
|
|
If you have a Intel Skylake/Broxton/ApolloLake/KabyLake/
|
|
GeminiLake or CannonLake platform with the DSP enabled in the BIOS
|
|
then enable this option by saying Y or m.
|
|
|
|
config SND_SOC_ACPI_INTEL_MATCH
|
|
tristate
|
|
select SND_SOC_ACPI if ACPI
|
|
# this option controls the compilation of ACPI matching tables and
|
|
# helpers and is not meant to be selected by the user.
|
|
|
|
endif ## SND_SOC_INTEL_SST_TOPLEVEL
|
|
|
|
# ASoC codec drivers
|
|
source "sound/soc/intel/boards/Kconfig"
|