Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit addaeea9 authored by Mark Brown's avatar Mark Brown
Browse files

Merge remote-tracking branches 'asoc/topic/hdmi', 'asoc/topic/intel',...

Merge remote-tracking branches 'asoc/topic/hdmi', 'asoc/topic/intel', 'asoc/topic/jack', 'asoc/topic/jz4740' and 'asoc/topic/lm49453' into asoc-next
Loading
Loading
Loading
Loading
+62 −0
Original line number Diff line number Diff line
@@ -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,
@@ -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
+2 −0
Original line number Diff line number Diff line
@@ -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",
@@ -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)
+0 −8
Original line number Diff line number Diff line
@@ -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),
+42 −2
Original line number Diff line number Diff line
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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".
+7 −0
Original line number Diff line number Diff line
@@ -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