Loading arch/x86/include/asm/platform_sst_audio.h +62 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,9 @@ #include <linux/sfi.h> #define MAX_NUM_STREAMS_MRFLD 25 #define MAX_NUM_STREAMS MAX_NUM_STREAMS_MRFLD enum sst_audio_task_id_mrfld { SST_TASK_ID_NONE = 0, SST_TASK_ID_SBA = 1, Loading Loading @@ -73,6 +76,65 @@ struct sst_platform_data { unsigned int strm_map_size; }; struct sst_info { u32 iram_start; u32 iram_end; bool iram_use; u32 dram_start; u32 dram_end; bool dram_use; u32 imr_start; u32 imr_end; bool imr_use; u32 mailbox_start; bool use_elf; bool lpe_viewpt_rqd; unsigned int max_streams; u32 dma_max_len; u8 num_probes; }; struct sst_lib_dnld_info { unsigned int mod_base; unsigned int mod_end; unsigned int mod_table_offset; unsigned int mod_table_size; bool mod_ddr_dnld; }; struct sst_res_info { unsigned int shim_offset; unsigned int shim_size; unsigned int shim_phy_addr; unsigned int ssp0_offset; unsigned int ssp0_size; unsigned int dma0_offset; unsigned int dma0_size; unsigned int dma1_offset; unsigned int dma1_size; unsigned int iram_offset; unsigned int iram_size; unsigned int dram_offset; unsigned int dram_size; unsigned int mbox_offset; unsigned int mbox_size; unsigned int acpi_lpe_res_index; unsigned int acpi_ddr_index; unsigned int acpi_ipc_irq_index; }; struct sst_ipc_info { int ipc_offset; unsigned int mbox_recv_off; }; struct sst_platform_info { const struct sst_info *probe_data; const struct sst_ipc_info *ipc_info; const struct sst_res_info *res_info; const struct sst_lib_dnld_info *lib_info; const char *platform; }; int add_sst_platform_device(void); #endif sound/soc/codecs/hdmi.c +2 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ static struct snd_soc_dai_driver hdmi_codec_dai = { SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_192000, .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S32_LE, .sig_bits = 24, }, .capture = { .stream_name = "Capture", Loading Loading @@ -75,6 +76,7 @@ static struct snd_soc_codec_driver hdmi_codec = { .num_dapm_widgets = ARRAY_SIZE(hdmi_widgets), .dapm_routes = hdmi_routes, .num_dapm_routes = ARRAY_SIZE(hdmi_routes), .ignore_pmdown_time = true, }; static int hdmi_codec_probe(struct platform_device *pdev) Loading sound/soc/codecs/lm49453.c +0 −8 Original line number Diff line number Diff line Loading @@ -1395,15 +1395,7 @@ static struct snd_soc_dai_driver lm49453_dai[] = { }, }; /* power down chip */ static int lm49453_remove(struct snd_soc_codec *codec) { lm49453_set_bias_level(codec, SND_SOC_BIAS_OFF); return 0; } static struct snd_soc_codec_driver soc_codec_dev_lm49453 = { .remove = lm49453_remove, .set_bias_level = lm49453_set_bias_level, .controls = lm49453_snd_controls, .num_controls = ARRAY_SIZE(lm49453_snd_controls), Loading sound/soc/intel/Kconfig +42 −2 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ config SND_MFLD_MACHINE depends on INTEL_SCU_IPC select SND_SOC_SN95031 select SND_SST_MFLD_PLATFORM select SND_SST_IPC_PCI help This adds support for ASoC machine driver for Intel(R) MID Medfield platform used as alsa device in audio substem in Intel(R) MID devices Loading @@ -12,10 +13,23 @@ config SND_MFLD_MACHINE config SND_SST_MFLD_PLATFORM tristate config SND_SST_IPC tristate config SND_SST_IPC_PCI tristate select SND_SST_IPC config SND_SST_IPC_ACPI tristate select SND_SST_IPC depends on ACPI config SND_SOC_INTEL_SST tristate "ASoC support for Intel(R) Smart Sound Technology" select SND_SOC_INTEL_SST_ACPI if ACPI depends on (X86 || COMPILE_TEST) depends on DW_DMAC_CORE help This adds support for Intel(R) Smart Sound Technology (SST). Say Y if you have such a device Loading @@ -32,7 +46,8 @@ config SND_SOC_INTEL_BAYTRAIL config SND_SOC_INTEL_HASWELL_MACH tristate "ASoC Audio DSP support for Intel Haswell Lynxpoint" depends on SND_SOC_INTEL_SST && X86_INTEL_LPSS && I2C depends on SND_SOC_INTEL_SST && X86_INTEL_LPSS && I2C && \\ I2C_DESIGNWARE_PLATFORM select SND_SOC_INTEL_HASWELL select SND_SOC_RT5640 help Loading Loading @@ -61,7 +76,8 @@ config SND_SOC_INTEL_BYT_MAX98090_MACH config SND_SOC_INTEL_BROADWELL_MACH tristate "ASoC Audio DSP support for Intel Broadwell Wildcatpoint" depends on SND_SOC_INTEL_SST && X86_INTEL_LPSS && DW_DMAC depends on SND_SOC_INTEL_SST && X86_INTEL_LPSS && DW_DMAC && \\ I2C_DESIGNWARE_PLATFORM select SND_SOC_INTEL_HASWELL select SND_COMPRESS_OFFLOAD select SND_SOC_RT286 Loading @@ -70,3 +86,27 @@ config SND_SOC_INTEL_BROADWELL_MACH Ultrabook platforms. Say Y if you have such a device If unsure select "N". config SND_SOC_INTEL_BYTCR_RT5640_MACH tristate "ASoC Audio DSP Support for MID BYT Platform" depends on X86 select SND_SOC_RT5640 select SND_SST_MFLD_PLATFORM select SND_SST_IPC_ACPI help This adds support for ASoC machine driver for Intel(R) MID Baytrail platform used as alsa device in audio substem in Intel(R) MID devices Say Y if you have such a device If unsure select "N". config SND_SOC_INTEL_CHT_BSW_RT5672_MACH tristate "ASoC Audio driver for Intel Cherrytrail & Braswell with RT5672 codec" depends on X86_INTEL_LPSS select SND_SOC_RT5670 select SND_SST_MFLD_PLATFORM select SND_SST_IPC_ACPI help This adds support for ASoC machine driver for Intel(R) Cherrytrail & Braswell platforms with RT5672 audio codec. Say Y if you have such a device If unsure select "N". sound/soc/intel/Makefile +7 −0 Original line number Diff line number Diff line Loading @@ -26,8 +26,15 @@ snd-soc-sst-haswell-objs := haswell.o snd-soc-sst-byt-rt5640-mach-objs := byt-rt5640.o snd-soc-sst-byt-max98090-mach-objs := byt-max98090.o snd-soc-sst-broadwell-objs := broadwell.o snd-soc-sst-bytcr-dpcm-rt5640-objs := bytcr_dpcm_rt5640.o snd-soc-sst-cht-bsw-rt5672-objs := cht_bsw_rt5672.o obj-$(CONFIG_SND_SOC_INTEL_HASWELL_MACH) += snd-soc-sst-haswell.o obj-$(CONFIG_SND_SOC_INTEL_BYT_RT5640_MACH) += snd-soc-sst-byt-rt5640-mach.o obj-$(CONFIG_SND_SOC_INTEL_BYT_MAX98090_MACH) += snd-soc-sst-byt-max98090-mach.o obj-$(CONFIG_SND_SOC_INTEL_BROADWELL_MACH) += snd-soc-sst-broadwell.o obj-$(CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH) += snd-soc-sst-bytcr-dpcm-rt5640.o obj-$(CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH) += snd-soc-sst-cht-bsw-rt5672.o # DSP driver obj-$(CONFIG_SND_SST_IPC) += sst/ Loading
arch/x86/include/asm/platform_sst_audio.h +62 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,9 @@ #include <linux/sfi.h> #define MAX_NUM_STREAMS_MRFLD 25 #define MAX_NUM_STREAMS MAX_NUM_STREAMS_MRFLD enum sst_audio_task_id_mrfld { SST_TASK_ID_NONE = 0, SST_TASK_ID_SBA = 1, Loading Loading @@ -73,6 +76,65 @@ struct sst_platform_data { unsigned int strm_map_size; }; struct sst_info { u32 iram_start; u32 iram_end; bool iram_use; u32 dram_start; u32 dram_end; bool dram_use; u32 imr_start; u32 imr_end; bool imr_use; u32 mailbox_start; bool use_elf; bool lpe_viewpt_rqd; unsigned int max_streams; u32 dma_max_len; u8 num_probes; }; struct sst_lib_dnld_info { unsigned int mod_base; unsigned int mod_end; unsigned int mod_table_offset; unsigned int mod_table_size; bool mod_ddr_dnld; }; struct sst_res_info { unsigned int shim_offset; unsigned int shim_size; unsigned int shim_phy_addr; unsigned int ssp0_offset; unsigned int ssp0_size; unsigned int dma0_offset; unsigned int dma0_size; unsigned int dma1_offset; unsigned int dma1_size; unsigned int iram_offset; unsigned int iram_size; unsigned int dram_offset; unsigned int dram_size; unsigned int mbox_offset; unsigned int mbox_size; unsigned int acpi_lpe_res_index; unsigned int acpi_ddr_index; unsigned int acpi_ipc_irq_index; }; struct sst_ipc_info { int ipc_offset; unsigned int mbox_recv_off; }; struct sst_platform_info { const struct sst_info *probe_data; const struct sst_ipc_info *ipc_info; const struct sst_res_info *res_info; const struct sst_lib_dnld_info *lib_info; const char *platform; }; int add_sst_platform_device(void); #endif
sound/soc/codecs/hdmi.c +2 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ static struct snd_soc_dai_driver hdmi_codec_dai = { SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_192000, .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S32_LE, .sig_bits = 24, }, .capture = { .stream_name = "Capture", Loading Loading @@ -75,6 +76,7 @@ static struct snd_soc_codec_driver hdmi_codec = { .num_dapm_widgets = ARRAY_SIZE(hdmi_widgets), .dapm_routes = hdmi_routes, .num_dapm_routes = ARRAY_SIZE(hdmi_routes), .ignore_pmdown_time = true, }; static int hdmi_codec_probe(struct platform_device *pdev) Loading
sound/soc/codecs/lm49453.c +0 −8 Original line number Diff line number Diff line Loading @@ -1395,15 +1395,7 @@ static struct snd_soc_dai_driver lm49453_dai[] = { }, }; /* power down chip */ static int lm49453_remove(struct snd_soc_codec *codec) { lm49453_set_bias_level(codec, SND_SOC_BIAS_OFF); return 0; } static struct snd_soc_codec_driver soc_codec_dev_lm49453 = { .remove = lm49453_remove, .set_bias_level = lm49453_set_bias_level, .controls = lm49453_snd_controls, .num_controls = ARRAY_SIZE(lm49453_snd_controls), Loading
sound/soc/intel/Kconfig +42 −2 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ config SND_MFLD_MACHINE depends on INTEL_SCU_IPC select SND_SOC_SN95031 select SND_SST_MFLD_PLATFORM select SND_SST_IPC_PCI help This adds support for ASoC machine driver for Intel(R) MID Medfield platform used as alsa device in audio substem in Intel(R) MID devices Loading @@ -12,10 +13,23 @@ config SND_MFLD_MACHINE config SND_SST_MFLD_PLATFORM tristate config SND_SST_IPC tristate config SND_SST_IPC_PCI tristate select SND_SST_IPC config SND_SST_IPC_ACPI tristate select SND_SST_IPC depends on ACPI config SND_SOC_INTEL_SST tristate "ASoC support for Intel(R) Smart Sound Technology" select SND_SOC_INTEL_SST_ACPI if ACPI depends on (X86 || COMPILE_TEST) depends on DW_DMAC_CORE help This adds support for Intel(R) Smart Sound Technology (SST). Say Y if you have such a device Loading @@ -32,7 +46,8 @@ config SND_SOC_INTEL_BAYTRAIL config SND_SOC_INTEL_HASWELL_MACH tristate "ASoC Audio DSP support for Intel Haswell Lynxpoint" depends on SND_SOC_INTEL_SST && X86_INTEL_LPSS && I2C depends on SND_SOC_INTEL_SST && X86_INTEL_LPSS && I2C && \\ I2C_DESIGNWARE_PLATFORM select SND_SOC_INTEL_HASWELL select SND_SOC_RT5640 help Loading Loading @@ -61,7 +76,8 @@ config SND_SOC_INTEL_BYT_MAX98090_MACH config SND_SOC_INTEL_BROADWELL_MACH tristate "ASoC Audio DSP support for Intel Broadwell Wildcatpoint" depends on SND_SOC_INTEL_SST && X86_INTEL_LPSS && DW_DMAC depends on SND_SOC_INTEL_SST && X86_INTEL_LPSS && DW_DMAC && \\ I2C_DESIGNWARE_PLATFORM select SND_SOC_INTEL_HASWELL select SND_COMPRESS_OFFLOAD select SND_SOC_RT286 Loading @@ -70,3 +86,27 @@ config SND_SOC_INTEL_BROADWELL_MACH Ultrabook platforms. Say Y if you have such a device If unsure select "N". config SND_SOC_INTEL_BYTCR_RT5640_MACH tristate "ASoC Audio DSP Support for MID BYT Platform" depends on X86 select SND_SOC_RT5640 select SND_SST_MFLD_PLATFORM select SND_SST_IPC_ACPI help This adds support for ASoC machine driver for Intel(R) MID Baytrail platform used as alsa device in audio substem in Intel(R) MID devices Say Y if you have such a device If unsure select "N". config SND_SOC_INTEL_CHT_BSW_RT5672_MACH tristate "ASoC Audio driver for Intel Cherrytrail & Braswell with RT5672 codec" depends on X86_INTEL_LPSS select SND_SOC_RT5670 select SND_SST_MFLD_PLATFORM select SND_SST_IPC_ACPI help This adds support for ASoC machine driver for Intel(R) Cherrytrail & Braswell platforms with RT5672 audio codec. Say Y if you have such a device If unsure select "N".
sound/soc/intel/Makefile +7 −0 Original line number Diff line number Diff line Loading @@ -26,8 +26,15 @@ snd-soc-sst-haswell-objs := haswell.o snd-soc-sst-byt-rt5640-mach-objs := byt-rt5640.o snd-soc-sst-byt-max98090-mach-objs := byt-max98090.o snd-soc-sst-broadwell-objs := broadwell.o snd-soc-sst-bytcr-dpcm-rt5640-objs := bytcr_dpcm_rt5640.o snd-soc-sst-cht-bsw-rt5672-objs := cht_bsw_rt5672.o obj-$(CONFIG_SND_SOC_INTEL_HASWELL_MACH) += snd-soc-sst-haswell.o obj-$(CONFIG_SND_SOC_INTEL_BYT_RT5640_MACH) += snd-soc-sst-byt-rt5640-mach.o obj-$(CONFIG_SND_SOC_INTEL_BYT_MAX98090_MACH) += snd-soc-sst-byt-max98090-mach.o obj-$(CONFIG_SND_SOC_INTEL_BROADWELL_MACH) += snd-soc-sst-broadwell.o obj-$(CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH) += snd-soc-sst-bytcr-dpcm-rt5640.o obj-$(CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH) += snd-soc-sst-cht-bsw-rt5672.o # DSP driver obj-$(CONFIG_SND_SST_IPC) += sst/