diff options
Diffstat (limited to 'sound/soc/intel/boards/bytcr_rt5640.c')
| -rw-r--r-- | sound/soc/intel/boards/bytcr_rt5640.c | 60 | 
1 files changed, 30 insertions, 30 deletions
diff --git a/sound/soc/intel/boards/bytcr_rt5640.c b/sound/soc/intel/boards/bytcr_rt5640.c index b906cfd5f97d..9c1aa4ec9cba 100644 --- a/sound/soc/intel/boards/bytcr_rt5640.c +++ b/sound/soc/intel/boards/bytcr_rt5640.c @@ -20,7 +20,6 @@  #include <linux/dmi.h>  #include <linux/input.h>  #include <linux/slab.h> -#include <asm/cpu_device_id.h>  #include <sound/pcm.h>  #include <sound/pcm_params.h>  #include <sound/soc.h> @@ -30,6 +29,7 @@  #include "../../codecs/rt5640.h"  #include "../atom/sst-atom-controls.h"  #include "../common/sst-dsp.h" +#include "../common/soc-intel-quirks.h"  enum {  	BYT_RT5640_DMIC1_MAP, @@ -1018,41 +1018,51 @@ static const struct snd_soc_ops byt_rt5640_be_ssp2_ops = {  	.hw_params = byt_rt5640_aif1_hw_params,  }; +SND_SOC_DAILINK_DEF(dummy, +	DAILINK_COMP_ARRAY(COMP_DUMMY())); + +SND_SOC_DAILINK_DEF(media, +	DAILINK_COMP_ARRAY(COMP_CPU("media-cpu-dai"))); + +SND_SOC_DAILINK_DEF(deepbuffer, +	DAILINK_COMP_ARRAY(COMP_CPU("deepbuffer-cpu-dai"))); + +SND_SOC_DAILINK_DEF(ssp2_port, +	/* overwritten for ssp0 routing */ +	DAILINK_COMP_ARRAY(COMP_CPU("ssp2-port"))); +SND_SOC_DAILINK_DEF(ssp2_codec, +	DAILINK_COMP_ARRAY(COMP_CODEC( +	/* overwritten with HID */ "i2c-10EC5640:00", +	/* changed w/ quirk */	"rt5640-aif1"))); + +SND_SOC_DAILINK_DEF(platform, +	DAILINK_COMP_ARRAY(COMP_PLATFORM("sst-mfld-platform"))); +  static struct snd_soc_dai_link byt_rt5640_dais[] = {  	[MERR_DPCM_AUDIO] = {  		.name = "Baytrail Audio Port",  		.stream_name = "Baytrail Audio", -		.cpu_dai_name = "media-cpu-dai", -		.codec_dai_name = "snd-soc-dummy-dai", -		.codec_name = "snd-soc-dummy", -		.platform_name = "sst-mfld-platform",  		.nonatomic = true,  		.dynamic = 1,  		.dpcm_playback = 1,  		.dpcm_capture = 1,  		.ops = &byt_rt5640_aif1_ops, +		SND_SOC_DAILINK_REG(media, dummy, platform),  	},  	[MERR_DPCM_DEEP_BUFFER] = {  		.name = "Deep-Buffer Audio Port",  		.stream_name = "Deep-Buffer Audio", -		.cpu_dai_name = "deepbuffer-cpu-dai", -		.codec_dai_name = "snd-soc-dummy-dai", -		.codec_name = "snd-soc-dummy", -		.platform_name = "sst-mfld-platform",  		.nonatomic = true,  		.dynamic = 1,  		.dpcm_playback = 1,  		.ops = &byt_rt5640_aif1_ops, +		SND_SOC_DAILINK_REG(deepbuffer, dummy, platform),  	},  		/* back ends */  	{  		.name = "SSP2-Codec",  		.id = 0, -		.cpu_dai_name = "ssp2-port", /* overwritten for ssp0 routing */ -		.platform_name = "sst-mfld-platform",  		.no_pcm = 1, -		.codec_dai_name = "rt5640-aif1", /* changed w/ quirk */ -		.codec_name = "i2c-10EC5640:00", /* overwritten with HID */  		.dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF  						| SND_SOC_DAIFMT_CBS_CFS,  		.be_hw_params_fixup = byt_rt5640_codec_fixup, @@ -1062,6 +1072,7 @@ static struct snd_soc_dai_link byt_rt5640_dais[] = {  		.dpcm_capture = 1,  		.init = byt_rt5640_init,  		.ops = &byt_rt5640_be_ssp2_ops, +		SND_SOC_DAILINK_REG(ssp2_port, ssp2_codec, platform),  	},  }; @@ -1122,18 +1133,6 @@ static struct snd_soc_card byt_rt5640_card = {  	.resume_post = byt_rt5640_resume,  }; -static bool is_valleyview(void) -{ -	static const struct x86_cpu_id cpu_ids[] = { -		{ X86_VENDOR_INTEL, 6, 55 }, /* Valleyview, Bay Trail */ -		{} -	}; - -	if (!x86_match_cpu(cpu_ids)) -		return false; -	return true; -} -  struct acpi_chan_package {   /* ACPICA seems to require 64 bit integers */  	u64 aif_value;       /* 1: AIF1, 2: AIF2 */  	u64 mclock_value;    /* usually 25MHz (0x17d7940), ignored */ @@ -1163,7 +1162,8 @@ static int snd_byt_rt5640_mc_probe(struct platform_device *pdev)  	/* fix index of codec dai */  	for (i = 0; i < ARRAY_SIZE(byt_rt5640_dais); i++) { -		if (!strcmp(byt_rt5640_dais[i].codec_name, "i2c-10EC5640:00")) { +		if (!strcmp(byt_rt5640_dais[i].codecs->name, +			    "i2c-10EC5640:00")) {  			dai_index = i;  			break;  		} @@ -1175,14 +1175,14 @@ static int snd_byt_rt5640_mc_probe(struct platform_device *pdev)  		snprintf(byt_rt5640_codec_name, sizeof(byt_rt5640_codec_name),  			 "i2c-%s", acpi_dev_name(adev));  		put_device(&adev->dev); -		byt_rt5640_dais[dai_index].codec_name = byt_rt5640_codec_name; +		byt_rt5640_dais[dai_index].codecs->name = byt_rt5640_codec_name;  	}  	/*  	 * swap SSP0 if bytcr is detected  	 * (will be overridden if DMI quirk is detected)  	 */ -	if (is_valleyview()) { +	if (soc_intel_is_byt()) {  		if (mach->mach_params.acpi_ipc_irq_index == 0)  			is_bytcr = true;  	} @@ -1267,7 +1267,7 @@ static int snd_byt_rt5640_mc_probe(struct platform_device *pdev)  			sizeof(byt_rt5640_codec_aif_name),  			"%s", "rt5640-aif2"); -		byt_rt5640_dais[dai_index].codec_dai_name = +		byt_rt5640_dais[dai_index].codecs->dai_name =  			byt_rt5640_codec_aif_name;  	} @@ -1279,7 +1279,7 @@ static int snd_byt_rt5640_mc_probe(struct platform_device *pdev)  			sizeof(byt_rt5640_cpu_dai_name),  			"%s", "ssp0-port"); -		byt_rt5640_dais[dai_index].cpu_dai_name = +		byt_rt5640_dais[dai_index].cpus->dai_name =  			byt_rt5640_cpu_dai_name;  	}  | 
