mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	Merge remote-tracking branches 'asoc/topic/ac97', 'asoc/topic/ak4104', 'asoc/topic/arizona', 'asoc/topic/atmel' and 'asoc/topic/codec-component' into asoc-next
This commit is contained in:
		
						commit
						7c90fc73bf
					
				
					 172 changed files with 1495 additions and 1033 deletions
				
			
		| 
						 | 
					@ -898,14 +898,6 @@ struct snd_soc_codec_driver {
 | 
				
			||||||
	int (*resume)(struct snd_soc_codec *);
 | 
						int (*resume)(struct snd_soc_codec *);
 | 
				
			||||||
	struct snd_soc_component_driver component_driver;
 | 
						struct snd_soc_component_driver component_driver;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* Default control and setup, added after probe() is run */
 | 
					 | 
				
			||||||
	const struct snd_kcontrol_new *controls;
 | 
					 | 
				
			||||||
	int num_controls;
 | 
					 | 
				
			||||||
	const struct snd_soc_dapm_widget *dapm_widgets;
 | 
					 | 
				
			||||||
	int num_dapm_widgets;
 | 
					 | 
				
			||||||
	const struct snd_soc_dapm_route *dapm_routes;
 | 
					 | 
				
			||||||
	int num_dapm_routes;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	/* codec wide operations */
 | 
						/* codec wide operations */
 | 
				
			||||||
	int (*set_sysclk)(struct snd_soc_codec *codec,
 | 
						int (*set_sysclk)(struct snd_soc_codec *codec,
 | 
				
			||||||
			  int clk_id, int source, unsigned int freq, int dir);
 | 
								  int clk_id, int source, unsigned int freq, int dir);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -308,9 +308,11 @@ static struct regmap *atmel_classd_codec_get_remap(struct device *dev)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct snd_soc_codec_driver soc_codec_dev_classd = {
 | 
					static struct snd_soc_codec_driver soc_codec_dev_classd = {
 | 
				
			||||||
	.probe		= atmel_classd_codec_probe,
 | 
						.probe		= atmel_classd_codec_probe,
 | 
				
			||||||
	.controls	= atmel_classd_snd_controls,
 | 
					 | 
				
			||||||
	.num_controls	= ARRAY_SIZE(atmel_classd_snd_controls),
 | 
					 | 
				
			||||||
	.get_regmap	= atmel_classd_codec_get_remap,
 | 
						.get_regmap	= atmel_classd_codec_get_remap,
 | 
				
			||||||
 | 
						.component_driver = {
 | 
				
			||||||
 | 
							.controls		= atmel_classd_snd_controls,
 | 
				
			||||||
 | 
							.num_controls		= ARRAY_SIZE(atmel_classd_snd_controls),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* codec dai component */
 | 
					/* codec dai component */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -80,7 +80,7 @@ static struct atmel_pdmic_pdata *atmel_pdmic_dt_init(struct device *dev)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (pdata->mic_max_freq < pdata->mic_min_freq) {
 | 
						if (pdata->mic_max_freq < pdata->mic_min_freq) {
 | 
				
			||||||
		dev_err(dev,
 | 
							dev_err(dev,
 | 
				
			||||||
			"mic-max-freq should not less than mic-min-freq\n");
 | 
								"mic-max-freq should not be less than mic-min-freq\n");
 | 
				
			||||||
		return ERR_PTR(-EINVAL);
 | 
							return ERR_PTR(-EINVAL);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -115,8 +115,10 @@ static int atmel_pdmic_cpu_dai_startup(struct snd_pcm_substream *substream,
 | 
				
			||||||
		return ret;
 | 
							return ret;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ret =  clk_prepare_enable(dd->pclk);
 | 
						ret =  clk_prepare_enable(dd->pclk);
 | 
				
			||||||
	if (ret)
 | 
						if (ret) {
 | 
				
			||||||
 | 
							clk_disable_unprepare(dd->gclk);
 | 
				
			||||||
		return ret;
 | 
							return ret;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* Clear all bits in the Control Register(PDMIC_CR) */
 | 
						/* Clear all bits in the Control Register(PDMIC_CR) */
 | 
				
			||||||
	regmap_write(dd->regmap, PDMIC_CR, 0);
 | 
						regmap_write(dd->regmap, PDMIC_CR, 0);
 | 
				
			||||||
| 
						 | 
					@ -283,7 +285,7 @@ static const DECLARE_TLV_DB_RANGE(mic_gain_tlv,
 | 
				
			||||||
	8, ARRAY_SIZE(mic_gain_table)-1, TLV_DB_SCALE_ITEM(-6500, 100, 0),
 | 
						8, ARRAY_SIZE(mic_gain_table)-1, TLV_DB_SCALE_ITEM(-6500, 100, 0),
 | 
				
			||||||
);
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int pdmic_get_mic_volsw(struct snd_kcontrol *kcontrol,
 | 
					static int pdmic_get_mic_volsw(struct snd_kcontrol *kcontrol,
 | 
				
			||||||
	struct snd_ctl_elem_value *ucontrol)
 | 
						struct snd_ctl_elem_value *ucontrol)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
 | 
						struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
 | 
				
			||||||
| 
						 | 
					@ -357,8 +359,10 @@ static int atmel_pdmic_codec_probe(struct snd_soc_codec *codec)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct snd_soc_codec_driver soc_codec_dev_pdmic = {
 | 
					static struct snd_soc_codec_driver soc_codec_dev_pdmic = {
 | 
				
			||||||
	.probe		= atmel_pdmic_codec_probe,
 | 
						.probe		= atmel_pdmic_codec_probe,
 | 
				
			||||||
	.controls	= atmel_pdmic_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls	= ARRAY_SIZE(atmel_pdmic_snd_controls),
 | 
							.controls		= atmel_pdmic_snd_controls,
 | 
				
			||||||
 | 
							.num_controls		= ARRAY_SIZE(atmel_pdmic_snd_controls),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* codec dai component */
 | 
					/* codec dai component */
 | 
				
			||||||
| 
						 | 
					@ -596,7 +600,7 @@ static int atmel_pdmic_probe(struct platform_device *pdev)
 | 
				
			||||||
	dd->irq = platform_get_irq(pdev, 0);
 | 
						dd->irq = platform_get_irq(pdev, 0);
 | 
				
			||||||
	if (dd->irq < 0) {
 | 
						if (dd->irq < 0) {
 | 
				
			||||||
		ret = dd->irq;
 | 
							ret = dd->irq;
 | 
				
			||||||
		dev_err(dev, "failed to could not get irq: %d\n", ret);
 | 
							dev_err(dev, "failed to get irq: %d\n", ret);
 | 
				
			||||||
		return ret;
 | 
							return ret;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -614,7 +618,7 @@ static int atmel_pdmic_probe(struct platform_device *pdev)
 | 
				
			||||||
		return ret;
 | 
							return ret;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* The gclk clock frequency must always be tree times
 | 
						/* The gclk clock frequency must always be three times
 | 
				
			||||||
	 * lower than the pclk clock frequency
 | 
						 * lower than the pclk clock frequency
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	ret = clk_set_rate(dd->gclk, clk_get_rate(dd->pclk)/3);
 | 
						ret = clk_set_rate(dd->gclk, clk_get_rate(dd->pclk)/3);
 | 
				
			||||||
| 
						 | 
					@ -649,7 +653,7 @@ static int atmel_pdmic_probe(struct platform_device *pdev)
 | 
				
			||||||
		return ret;
 | 
							return ret;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* Get the minimal and maximal sample rate that micphone supports */
 | 
						/* Get the minimal and maximal sample rate that the microphone supports */
 | 
				
			||||||
	atmel_pdmic_get_sample_rate(dd, &rate_min, &rate_max);
 | 
						atmel_pdmic_get_sample_rate(dd, &rate_min, &rate_max);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* register cpu dai */
 | 
						/* register cpu dai */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1361,12 +1361,14 @@ static struct snd_soc_codec_driver soc_codec_dev_pm860x = {
 | 
				
			||||||
	.set_bias_level	= pm860x_set_bias_level,
 | 
						.set_bias_level	= pm860x_set_bias_level,
 | 
				
			||||||
	.get_regmap	= pm860x_get_regmap,
 | 
						.get_regmap	= pm860x_get_regmap,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.controls = pm860x_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(pm860x_snd_controls),
 | 
							.controls		= pm860x_snd_controls,
 | 
				
			||||||
	.dapm_widgets = pm860x_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(pm860x_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(pm860x_dapm_widgets),
 | 
							.dapm_widgets		= pm860x_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = pm860x_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(pm860x_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(pm860x_dapm_routes),
 | 
							.dapm_routes		= pm860x_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(pm860x_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int pm860x_codec_probe(struct platform_device *pdev)
 | 
					static int pm860x_codec_probe(struct platform_device *pdev)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2525,12 +2525,14 @@ static int ab8500_codec_probe(struct snd_soc_codec *codec)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct snd_soc_codec_driver ab8500_codec_driver = {
 | 
					static struct snd_soc_codec_driver ab8500_codec_driver = {
 | 
				
			||||||
	.probe =		ab8500_codec_probe,
 | 
						.probe =		ab8500_codec_probe,
 | 
				
			||||||
	.controls =		ab8500_ctrls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls =		ARRAY_SIZE(ab8500_ctrls),
 | 
							.controls =		ab8500_ctrls,
 | 
				
			||||||
	.dapm_widgets =		ab8500_dapm_widgets,
 | 
							.num_controls =		ARRAY_SIZE(ab8500_ctrls),
 | 
				
			||||||
	.num_dapm_widgets =	ARRAY_SIZE(ab8500_dapm_widgets),
 | 
							.dapm_widgets =		ab8500_dapm_widgets,
 | 
				
			||||||
	.dapm_routes =		ab8500_dapm_routes,
 | 
							.num_dapm_widgets =	ARRAY_SIZE(ab8500_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes =	ARRAY_SIZE(ab8500_dapm_routes),
 | 
							.dapm_routes =		ab8500_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes =	ARRAY_SIZE(ab8500_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int ab8500_codec_driver_probe(struct platform_device *pdev)
 | 
					static int ab8500_codec_driver_probe(struct platform_device *pdev)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -117,10 +117,12 @@ static struct snd_soc_codec_driver soc_codec_dev_ac97 = {
 | 
				
			||||||
	.suspend =	ac97_soc_suspend,
 | 
						.suspend =	ac97_soc_suspend,
 | 
				
			||||||
	.resume =	ac97_soc_resume,
 | 
						.resume =	ac97_soc_resume,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.dapm_widgets = ac97_widgets,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(ac97_widgets),
 | 
							.dapm_widgets		= ac97_widgets,
 | 
				
			||||||
	.dapm_routes = ac97_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(ac97_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(ac97_routes),
 | 
							.dapm_routes		= ac97_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(ac97_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int ac97_probe(struct platform_device *pdev)
 | 
					static int ac97_probe(struct platform_device *pdev)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -327,12 +327,14 @@ static struct snd_soc_codec_driver soc_codec_dev_ad1836 = {
 | 
				
			||||||
	.suspend = ad1836_suspend,
 | 
						.suspend = ad1836_suspend,
 | 
				
			||||||
	.resume = ad1836_resume,
 | 
						.resume = ad1836_resume,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.controls = ad183x_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(ad183x_controls),
 | 
							.controls		= ad183x_controls,
 | 
				
			||||||
	.dapm_widgets = ad183x_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(ad183x_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(ad183x_dapm_widgets),
 | 
							.dapm_widgets		= ad183x_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = ad183x_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(ad183x_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(ad183x_dapm_routes),
 | 
							.dapm_routes		= ad183x_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(ad183x_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct reg_default ad1836_reg_defaults[] = {
 | 
					static const struct reg_default ad1836_reg_defaults[] = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -410,12 +410,14 @@ static int ad193x_codec_probe(struct snd_soc_codec *codec)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct snd_soc_codec_driver soc_codec_dev_ad193x = {
 | 
					static struct snd_soc_codec_driver soc_codec_dev_ad193x = {
 | 
				
			||||||
	.probe = ad193x_codec_probe,
 | 
						.probe = ad193x_codec_probe,
 | 
				
			||||||
	.controls = ad193x_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(ad193x_snd_controls),
 | 
							.controls		= ad193x_snd_controls,
 | 
				
			||||||
	.dapm_widgets = ad193x_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(ad193x_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(ad193x_dapm_widgets),
 | 
							.dapm_widgets		= ad193x_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = audio_paths,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(ad193x_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(audio_paths),
 | 
							.dapm_routes		= audio_paths,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(audio_paths),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const struct regmap_config ad193x_regmap_config = {
 | 
					const struct regmap_config ad193x_regmap_config = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -299,12 +299,14 @@ static struct snd_soc_codec_driver soc_codec_dev_ad1980 = {
 | 
				
			||||||
	.probe = 	ad1980_soc_probe,
 | 
						.probe = 	ad1980_soc_probe,
 | 
				
			||||||
	.remove = 	ad1980_soc_remove,
 | 
						.remove = 	ad1980_soc_remove,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.controls = ad1980_snd_ac97_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(ad1980_snd_ac97_controls),
 | 
							.controls		= ad1980_snd_ac97_controls,
 | 
				
			||||||
	.dapm_widgets = ad1980_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(ad1980_snd_ac97_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(ad1980_dapm_widgets),
 | 
							.dapm_widgets		= ad1980_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = ad1980_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(ad1980_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(ad1980_dapm_routes),
 | 
							.dapm_routes		= ad1980_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(ad1980_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int ad1980_probe(struct platform_device *pdev)
 | 
					static int ad1980_probe(struct platform_device *pdev)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -55,10 +55,12 @@ static struct snd_soc_dai_driver ad73311_dai = {
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct snd_soc_codec_driver soc_codec_dev_ad73311 = {
 | 
					static struct snd_soc_codec_driver soc_codec_dev_ad73311 = {
 | 
				
			||||||
	.dapm_widgets = ad73311_dapm_widgets,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(ad73311_dapm_widgets),
 | 
							.dapm_widgets		= ad73311_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = ad73311_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(ad73311_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(ad73311_dapm_routes),
 | 
							.dapm_routes		= ad73311_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(ad73311_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int ad73311_probe(struct platform_device *pdev)
 | 
					static int ad73311_probe(struct platform_device *pdev)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1466,12 +1466,14 @@ static struct snd_soc_codec_driver adau1373_codec_driver = {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.set_pll = adau1373_set_pll,
 | 
						.set_pll = adau1373_set_pll,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.controls = adau1373_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(adau1373_controls),
 | 
							.controls		= adau1373_controls,
 | 
				
			||||||
	.dapm_widgets = adau1373_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(adau1373_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(adau1373_dapm_widgets),
 | 
							.dapm_widgets		= adau1373_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = adau1373_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(adau1373_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(adau1373_dapm_routes),
 | 
							.dapm_routes		= adau1373_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(adau1373_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int adau1373_i2c_probe(struct i2c_client *client,
 | 
					static int adau1373_i2c_probe(struct i2c_client *client,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -765,13 +765,14 @@ static struct snd_soc_codec_driver adau1701_codec_drv = {
 | 
				
			||||||
	.set_bias_level		= adau1701_set_bias_level,
 | 
						.set_bias_level		= adau1701_set_bias_level,
 | 
				
			||||||
	.idle_bias_off		= true,
 | 
						.idle_bias_off		= true,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.controls		= adau1701_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls		= ARRAY_SIZE(adau1701_controls),
 | 
							.controls		= adau1701_controls,
 | 
				
			||||||
	.dapm_widgets		= adau1701_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(adau1701_controls),
 | 
				
			||||||
	.num_dapm_widgets	= ARRAY_SIZE(adau1701_dapm_widgets),
 | 
							.dapm_widgets		= adau1701_dapm_widgets,
 | 
				
			||||||
	.dapm_routes		= adau1701_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(adau1701_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes	= ARRAY_SIZE(adau1701_dapm_routes),
 | 
							.dapm_routes		= adau1701_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(adau1701_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
	.set_sysclk		= adau1701_set_sysclk,
 | 
						.set_sysclk		= adau1701_set_sysclk,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -719,12 +719,14 @@ static const struct snd_soc_codec_driver adau1761_codec_driver = {
 | 
				
			||||||
	.set_bias_level	= adau1761_set_bias_level,
 | 
						.set_bias_level	= adau1761_set_bias_level,
 | 
				
			||||||
	.suspend_bias_off = true,
 | 
						.suspend_bias_off = true,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.controls = adau1761_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(adau1761_controls),
 | 
							.controls		= adau1761_controls,
 | 
				
			||||||
	.dapm_widgets = adau1x61_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(adau1761_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(adau1x61_dapm_widgets),
 | 
							.dapm_widgets		= adau1x61_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = adau1x61_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(adau1x61_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(adau1x61_dapm_routes),
 | 
							.dapm_routes		= adau1x61_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(adau1x61_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define ADAU1761_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE | \
 | 
					#define ADAU1761_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE | \
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -432,12 +432,14 @@ static const struct snd_soc_codec_driver adau1781_codec_driver = {
 | 
				
			||||||
	.set_bias_level = adau1781_set_bias_level,
 | 
						.set_bias_level = adau1781_set_bias_level,
 | 
				
			||||||
	.suspend_bias_off = true,
 | 
						.suspend_bias_off = true,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.controls = adau1781_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(adau1781_controls),
 | 
							.controls		= adau1781_controls,
 | 
				
			||||||
	.dapm_widgets = adau1781_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(adau1781_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(adau1781_dapm_widgets),
 | 
							.dapm_widgets		= adau1781_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = adau1781_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(adau1781_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(adau1781_dapm_routes),
 | 
							.dapm_routes		= adau1781_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(adau1781_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define ADAU1781_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE | \
 | 
					#define ADAU1781_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE | \
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -873,12 +873,14 @@ static struct snd_soc_codec_driver adau1977_codec_driver = {
 | 
				
			||||||
	.set_sysclk = adau1977_set_sysclk,
 | 
						.set_sysclk = adau1977_set_sysclk,
 | 
				
			||||||
	.idle_bias_off = true,
 | 
						.idle_bias_off = true,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.controls = adau1977_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(adau1977_snd_controls),
 | 
							.controls		= adau1977_snd_controls,
 | 
				
			||||||
	.dapm_widgets = adau1977_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(adau1977_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(adau1977_dapm_widgets),
 | 
							.dapm_widgets		= adau1977_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = adau1977_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(adau1977_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(adau1977_dapm_routes),
 | 
							.dapm_routes		= adau1977_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(adau1977_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int adau1977_setup_micbias(struct adau1977 *adau1977)
 | 
					static int adau1977_setup_micbias(struct adau1977 *adau1977)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -39,10 +39,12 @@ static struct snd_soc_dai_driver adau7002_dai = {
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct snd_soc_codec_driver adau7002_codec_driver = {
 | 
					static const struct snd_soc_codec_driver adau7002_codec_driver = {
 | 
				
			||||||
	.dapm_widgets = adau7002_widgets,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(adau7002_widgets),
 | 
							.dapm_widgets		= adau7002_widgets,
 | 
				
			||||||
	.dapm_routes = adau7002_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(adau7002_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(adau7002_routes),
 | 
							.dapm_routes		= adau7002_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(adau7002_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int adau7002_probe(struct platform_device *pdev)
 | 
					static int adau7002_probe(struct platform_device *pdev)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -834,12 +834,14 @@ static struct snd_soc_codec_driver adav80x_codec_driver = {
 | 
				
			||||||
	.set_pll = adav80x_set_pll,
 | 
						.set_pll = adav80x_set_pll,
 | 
				
			||||||
	.set_sysclk = adav80x_set_sysclk,
 | 
						.set_sysclk = adav80x_set_sysclk,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.controls = adav80x_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(adav80x_controls),
 | 
							.controls		= adav80x_controls,
 | 
				
			||||||
	.dapm_widgets = adav80x_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(adav80x_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(adav80x_dapm_widgets),
 | 
							.dapm_widgets		= adav80x_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = adav80x_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(adav80x_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(adav80x_dapm_routes),
 | 
							.dapm_routes		= adav80x_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(adav80x_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int adav80x_bus_probe(struct device *dev, struct regmap *regmap)
 | 
					int adav80x_bus_probe(struct device *dev, struct regmap *regmap)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -59,10 +59,12 @@ static struct snd_soc_dai_driver ads117x_dai = {
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct snd_soc_codec_driver soc_codec_dev_ads117x = {
 | 
					static struct snd_soc_codec_driver soc_codec_dev_ads117x = {
 | 
				
			||||||
	.dapm_widgets = ads117x_dapm_widgets,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(ads117x_dapm_widgets),
 | 
							.dapm_widgets		= ads117x_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = ads117x_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(ads117x_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(ads117x_dapm_routes),
 | 
							.dapm_routes		= ads117x_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(ads117x_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int ads117x_probe(struct platform_device *pdev)
 | 
					static int ads117x_probe(struct platform_device *pdev)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -163,7 +163,10 @@ static struct snd_soc_dai_driver ak4104_dai = {
 | 
				
			||||||
		.stream_name = "Playback",
 | 
							.stream_name = "Playback",
 | 
				
			||||||
		.channels_min = 2,
 | 
							.channels_min = 2,
 | 
				
			||||||
		.channels_max = 2,
 | 
							.channels_max = 2,
 | 
				
			||||||
		.rates = SNDRV_PCM_RATE_8000_192000,
 | 
							.rates = SNDRV_PCM_RATE_22050 | SNDRV_PCM_RATE_32000 |
 | 
				
			||||||
 | 
								 SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000 |
 | 
				
			||||||
 | 
								 SNDRV_PCM_RATE_88200 | SNDRV_PCM_RATE_96000 |
 | 
				
			||||||
 | 
								 SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_192000,
 | 
				
			||||||
		.formats = SNDRV_PCM_FMTBIT_S16_LE  |
 | 
							.formats = SNDRV_PCM_FMTBIT_S16_LE  |
 | 
				
			||||||
			   SNDRV_PCM_FMTBIT_S24_3LE |
 | 
								   SNDRV_PCM_FMTBIT_S24_3LE |
 | 
				
			||||||
			   SNDRV_PCM_FMTBIT_S24_LE
 | 
								   SNDRV_PCM_FMTBIT_S24_LE
 | 
				
			||||||
| 
						 | 
					@ -245,10 +248,12 @@ static struct snd_soc_codec_driver soc_codec_device_ak4104 = {
 | 
				
			||||||
	.suspend = ak4104_soc_suspend,
 | 
						.suspend = ak4104_soc_suspend,
 | 
				
			||||||
	.resume = ak4104_soc_resume,
 | 
						.resume = ak4104_soc_resume,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.dapm_widgets = ak4104_dapm_widgets,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(ak4104_dapm_widgets),
 | 
							.dapm_widgets		= ak4104_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = ak4104_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(ak4104_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(ak4104_dapm_routes),
 | 
							.dapm_routes		= ak4104_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(ak4104_dapm_routes),
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct regmap_config ak4104_regmap = {
 | 
					static const struct regmap_config ak4104_regmap = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -395,12 +395,14 @@ static struct snd_soc_codec_driver soc_codec_dev_ak4535 = {
 | 
				
			||||||
	.set_bias_level = ak4535_set_bias_level,
 | 
						.set_bias_level = ak4535_set_bias_level,
 | 
				
			||||||
	.suspend_bias_off = true,
 | 
						.suspend_bias_off = true,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.controls = ak4535_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(ak4535_snd_controls),
 | 
							.controls		= ak4535_snd_controls,
 | 
				
			||||||
	.dapm_widgets = ak4535_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(ak4535_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(ak4535_dapm_widgets),
 | 
							.dapm_widgets		= ak4535_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = ak4535_audio_map,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(ak4535_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(ak4535_audio_map),
 | 
							.dapm_routes		= ak4535_audio_map,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(ak4535_audio_map),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int ak4535_i2c_probe(struct i2c_client *i2c,
 | 
					static int ak4535_i2c_probe(struct i2c_client *i2c,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -65,10 +65,12 @@ static struct snd_soc_dai_driver ak4554_dai = {
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct snd_soc_codec_driver soc_codec_dev_ak4554 = {
 | 
					static struct snd_soc_codec_driver soc_codec_dev_ak4554 = {
 | 
				
			||||||
	.dapm_widgets = ak4554_dapm_widgets,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(ak4554_dapm_widgets),
 | 
							.dapm_widgets		= ak4554_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = ak4554_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(ak4554_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(ak4554_dapm_routes),
 | 
							.dapm_routes		= ak4554_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(ak4554_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int ak4554_soc_probe(struct platform_device *pdev)
 | 
					static int ak4554_soc_probe(struct platform_device *pdev)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -458,12 +458,14 @@ static struct snd_soc_codec_driver soc_codec_dev_ak4613 = {
 | 
				
			||||||
	.suspend		= ak4613_suspend,
 | 
						.suspend		= ak4613_suspend,
 | 
				
			||||||
	.resume			= ak4613_resume,
 | 
						.resume			= ak4613_resume,
 | 
				
			||||||
	.set_bias_level		= ak4613_set_bias_level,
 | 
						.set_bias_level		= ak4613_set_bias_level,
 | 
				
			||||||
	.controls		= ak4613_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls		= ARRAY_SIZE(ak4613_snd_controls),
 | 
							.controls		= ak4613_snd_controls,
 | 
				
			||||||
	.dapm_widgets		= ak4613_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(ak4613_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets	= ARRAY_SIZE(ak4613_dapm_widgets),
 | 
							.dapm_widgets		= ak4613_dapm_widgets,
 | 
				
			||||||
	.dapm_routes		= ak4613_intercon,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(ak4613_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes	= ARRAY_SIZE(ak4613_intercon),
 | 
							.dapm_routes		= ak4613_intercon,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(ak4613_intercon),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void ak4613_parse_of(struct ak4613_priv *priv,
 | 
					static void ak4613_parse_of(struct ak4613_priv *priv,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -505,12 +505,14 @@ static struct snd_soc_dai_driver ak4641_dai[] = {
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct snd_soc_codec_driver soc_codec_dev_ak4641 = {
 | 
					static struct snd_soc_codec_driver soc_codec_dev_ak4641 = {
 | 
				
			||||||
	.controls		= ak4641_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls		= ARRAY_SIZE(ak4641_snd_controls),
 | 
							.controls		= ak4641_snd_controls,
 | 
				
			||||||
	.dapm_widgets		= ak4641_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(ak4641_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets	= ARRAY_SIZE(ak4641_dapm_widgets),
 | 
							.dapm_widgets		= ak4641_dapm_widgets,
 | 
				
			||||||
	.dapm_routes		= ak4641_audio_map,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(ak4641_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes	= ARRAY_SIZE(ak4641_audio_map),
 | 
							.dapm_routes		= ak4641_audio_map,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(ak4641_audio_map),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
	.set_bias_level		= ak4641_set_bias_level,
 | 
						.set_bias_level		= ak4641_set_bias_level,
 | 
				
			||||||
	.suspend_bias_off	= true,
 | 
						.suspend_bias_off	= true,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -555,12 +555,14 @@ static struct snd_soc_codec_driver soc_codec_dev_ak4642 = {
 | 
				
			||||||
	.suspend		= ak4642_suspend,
 | 
						.suspend		= ak4642_suspend,
 | 
				
			||||||
	.resume			= ak4642_resume,
 | 
						.resume			= ak4642_resume,
 | 
				
			||||||
	.set_bias_level		= ak4642_set_bias_level,
 | 
						.set_bias_level		= ak4642_set_bias_level,
 | 
				
			||||||
	.controls		= ak4642_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls		= ARRAY_SIZE(ak4642_snd_controls),
 | 
							.controls		= ak4642_snd_controls,
 | 
				
			||||||
	.dapm_widgets		= ak4642_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(ak4642_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets	= ARRAY_SIZE(ak4642_dapm_widgets),
 | 
							.dapm_widgets		= ak4642_dapm_widgets,
 | 
				
			||||||
	.dapm_routes		= ak4642_intercon,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(ak4642_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes	= ARRAY_SIZE(ak4642_intercon),
 | 
							.dapm_routes		= ak4642_intercon,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(ak4642_intercon),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct regmap_config ak4642_regmap = {
 | 
					static const struct regmap_config ak4642_regmap = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -612,12 +612,14 @@ static struct snd_soc_dai_driver ak4671_dai = {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct snd_soc_codec_driver soc_codec_dev_ak4671 = {
 | 
					static struct snd_soc_codec_driver soc_codec_dev_ak4671 = {
 | 
				
			||||||
	.set_bias_level = ak4671_set_bias_level,
 | 
						.set_bias_level = ak4671_set_bias_level,
 | 
				
			||||||
	.controls = ak4671_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(ak4671_snd_controls),
 | 
							.controls		= ak4671_snd_controls,
 | 
				
			||||||
	.dapm_widgets = ak4671_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(ak4671_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(ak4671_dapm_widgets),
 | 
							.dapm_widgets		= ak4671_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = ak4671_intercon,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(ak4671_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(ak4671_intercon),
 | 
							.dapm_routes		= ak4671_intercon,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(ak4671_intercon),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct regmap_config ak4671_regmap = {
 | 
					static const struct regmap_config ak4671_regmap = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -74,10 +74,12 @@ static struct snd_soc_codec_driver soc_codec_ak5386 = {
 | 
				
			||||||
	.remove = ak5386_soc_remove,
 | 
						.remove = ak5386_soc_remove,
 | 
				
			||||||
	.suspend = ak5386_soc_suspend,
 | 
						.suspend = ak5386_soc_suspend,
 | 
				
			||||||
	.resume = ak5386_soc_resume,
 | 
						.resume = ak5386_soc_resume,
 | 
				
			||||||
	.dapm_widgets = ak5386_dapm_widgets,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(ak5386_dapm_widgets),
 | 
							.dapm_widgets		= ak5386_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = ak5386_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(ak5386_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(ak5386_dapm_routes),
 | 
							.dapm_routes		= ak5386_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(ak5386_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int ak5386_set_dai_fmt(struct snd_soc_dai *codec_dai,
 | 
					static int ak5386_set_dai_fmt(struct snd_soc_dai *codec_dai,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1072,12 +1072,14 @@ static const struct snd_soc_codec_driver soc_codec_device_alc5632 = {
 | 
				
			||||||
	.set_bias_level = alc5632_set_bias_level,
 | 
						.set_bias_level = alc5632_set_bias_level,
 | 
				
			||||||
	.suspend_bias_off = true,
 | 
						.suspend_bias_off = true,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.controls = alc5632_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(alc5632_snd_controls),
 | 
							.controls		= alc5632_snd_controls,
 | 
				
			||||||
	.dapm_widgets = alc5632_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(alc5632_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(alc5632_dapm_widgets),
 | 
							.dapm_widgets		= alc5632_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = alc5632_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(alc5632_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(alc5632_dapm_routes),
 | 
							.dapm_routes		= alc5632_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(alc5632_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct regmap_config alc5632_regmap = {
 | 
					static const struct regmap_config alc5632_regmap = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -109,7 +109,7 @@ static int arizona_spk_ev(struct snd_soc_dapm_widget *w,
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return 0;
 | 
						return arizona_out_ev(w, kcontrol, event);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static irqreturn_t arizona_thermal_warn(int irq, void *data)
 | 
					static irqreturn_t arizona_thermal_warn(int irq, void *data)
 | 
				
			||||||
| 
						 | 
					@ -159,12 +159,14 @@ static irqreturn_t arizona_thermal_shutdown(int irq, void *data)
 | 
				
			||||||
static const struct snd_soc_dapm_widget arizona_spkl =
 | 
					static const struct snd_soc_dapm_widget arizona_spkl =
 | 
				
			||||||
	SND_SOC_DAPM_PGA_E("OUT4L", SND_SOC_NOPM,
 | 
						SND_SOC_DAPM_PGA_E("OUT4L", SND_SOC_NOPM,
 | 
				
			||||||
			   ARIZONA_OUT4L_ENA_SHIFT, 0, NULL, 0, arizona_spk_ev,
 | 
								   ARIZONA_OUT4L_ENA_SHIFT, 0, NULL, 0, arizona_spk_ev,
 | 
				
			||||||
			   SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMU);
 | 
								   SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU |
 | 
				
			||||||
 | 
								   SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct snd_soc_dapm_widget arizona_spkr =
 | 
					static const struct snd_soc_dapm_widget arizona_spkr =
 | 
				
			||||||
	SND_SOC_DAPM_PGA_E("OUT4R", SND_SOC_NOPM,
 | 
						SND_SOC_DAPM_PGA_E("OUT4R", SND_SOC_NOPM,
 | 
				
			||||||
			   ARIZONA_OUT4R_ENA_SHIFT, 0, NULL, 0, arizona_spk_ev,
 | 
								   ARIZONA_OUT4R_ENA_SHIFT, 0, NULL, 0, arizona_spk_ev,
 | 
				
			||||||
			   SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMU);
 | 
								   SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU |
 | 
				
			||||||
 | 
								   SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int arizona_init_spk(struct snd_soc_codec *codec)
 | 
					int arizona_init_spk(struct snd_soc_codec *codec)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					@ -864,6 +866,7 @@ int arizona_out_ev(struct snd_soc_dapm_widget *w,
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm);
 | 
						struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm);
 | 
				
			||||||
	struct arizona_priv *priv = snd_soc_codec_get_drvdata(codec);
 | 
						struct arizona_priv *priv = snd_soc_codec_get_drvdata(codec);
 | 
				
			||||||
 | 
						struct arizona *arizona = priv->arizona;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	switch (event) {
 | 
						switch (event) {
 | 
				
			||||||
	case SND_SOC_DAPM_PRE_PMU:
 | 
						case SND_SOC_DAPM_PRE_PMU:
 | 
				
			||||||
| 
						 | 
					@ -877,6 +880,18 @@ int arizona_out_ev(struct snd_soc_dapm_widget *w,
 | 
				
			||||||
			priv->out_up_pending++;
 | 
								priv->out_up_pending++;
 | 
				
			||||||
			priv->out_up_delay += 17;
 | 
								priv->out_up_delay += 17;
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
 | 
							case ARIZONA_OUT4L_ENA_SHIFT:
 | 
				
			||||||
 | 
							case ARIZONA_OUT4R_ENA_SHIFT:
 | 
				
			||||||
 | 
								priv->out_up_pending++;
 | 
				
			||||||
 | 
								switch (arizona->type) {
 | 
				
			||||||
 | 
								case WM5102:
 | 
				
			||||||
 | 
								case WM8997:
 | 
				
			||||||
 | 
									break;
 | 
				
			||||||
 | 
								default:
 | 
				
			||||||
 | 
									priv->out_up_delay += 10;
 | 
				
			||||||
 | 
									break;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
		default:
 | 
							default:
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
| 
						 | 
					@ -889,8 +904,12 @@ int arizona_out_ev(struct snd_soc_dapm_widget *w,
 | 
				
			||||||
		case ARIZONA_OUT2R_ENA_SHIFT:
 | 
							case ARIZONA_OUT2R_ENA_SHIFT:
 | 
				
			||||||
		case ARIZONA_OUT3L_ENA_SHIFT:
 | 
							case ARIZONA_OUT3L_ENA_SHIFT:
 | 
				
			||||||
		case ARIZONA_OUT3R_ENA_SHIFT:
 | 
							case ARIZONA_OUT3R_ENA_SHIFT:
 | 
				
			||||||
 | 
							case ARIZONA_OUT4L_ENA_SHIFT:
 | 
				
			||||||
 | 
							case ARIZONA_OUT4R_ENA_SHIFT:
 | 
				
			||||||
			priv->out_up_pending--;
 | 
								priv->out_up_pending--;
 | 
				
			||||||
			if (!priv->out_up_pending) {
 | 
								if (!priv->out_up_pending && priv->out_up_delay) {
 | 
				
			||||||
 | 
									dev_dbg(codec->dev, "Power up delay: %d\n",
 | 
				
			||||||
 | 
										priv->out_up_delay);
 | 
				
			||||||
				msleep(priv->out_up_delay);
 | 
									msleep(priv->out_up_delay);
 | 
				
			||||||
				priv->out_up_delay = 0;
 | 
									priv->out_up_delay = 0;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
| 
						 | 
					@ -911,6 +930,21 @@ int arizona_out_ev(struct snd_soc_dapm_widget *w,
 | 
				
			||||||
			priv->out_down_pending++;
 | 
								priv->out_down_pending++;
 | 
				
			||||||
			priv->out_down_delay++;
 | 
								priv->out_down_delay++;
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
 | 
							case ARIZONA_OUT4L_ENA_SHIFT:
 | 
				
			||||||
 | 
							case ARIZONA_OUT4R_ENA_SHIFT:
 | 
				
			||||||
 | 
								priv->out_down_pending++;
 | 
				
			||||||
 | 
								switch (arizona->type) {
 | 
				
			||||||
 | 
								case WM5102:
 | 
				
			||||||
 | 
								case WM8997:
 | 
				
			||||||
 | 
									break;
 | 
				
			||||||
 | 
								case WM8998:
 | 
				
			||||||
 | 
								case WM1814:
 | 
				
			||||||
 | 
									priv->out_down_delay += 5;
 | 
				
			||||||
 | 
									break;
 | 
				
			||||||
 | 
								default:
 | 
				
			||||||
 | 
									priv->out_down_delay++;
 | 
				
			||||||
 | 
									break;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
		default:
 | 
							default:
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
| 
						 | 
					@ -923,8 +957,12 @@ int arizona_out_ev(struct snd_soc_dapm_widget *w,
 | 
				
			||||||
		case ARIZONA_OUT2R_ENA_SHIFT:
 | 
							case ARIZONA_OUT2R_ENA_SHIFT:
 | 
				
			||||||
		case ARIZONA_OUT3L_ENA_SHIFT:
 | 
							case ARIZONA_OUT3L_ENA_SHIFT:
 | 
				
			||||||
		case ARIZONA_OUT3R_ENA_SHIFT:
 | 
							case ARIZONA_OUT3R_ENA_SHIFT:
 | 
				
			||||||
 | 
							case ARIZONA_OUT4L_ENA_SHIFT:
 | 
				
			||||||
 | 
							case ARIZONA_OUT4R_ENA_SHIFT:
 | 
				
			||||||
			priv->out_down_pending--;
 | 
								priv->out_down_pending--;
 | 
				
			||||||
			if (!priv->out_down_pending) {
 | 
								if (!priv->out_down_pending && priv->out_down_delay) {
 | 
				
			||||||
 | 
									dev_dbg(codec->dev, "Power down delay: %d\n",
 | 
				
			||||||
 | 
										priv->out_down_delay);
 | 
				
			||||||
				msleep(priv->out_down_delay);
 | 
									msleep(priv->out_down_delay);
 | 
				
			||||||
				priv->out_down_delay = 0;
 | 
									priv->out_down_delay = 0;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
| 
						 | 
					@ -2188,13 +2226,13 @@ static void arizona_apply_fll(struct arizona *arizona, unsigned int base,
 | 
				
			||||||
				 ARIZONA_FLL1_CTRL_UPD | cfg->n);
 | 
									 ARIZONA_FLL1_CTRL_UPD | cfg->n);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int arizona_is_enabled_fll(struct arizona_fll *fll)
 | 
					static int arizona_is_enabled_fll(struct arizona_fll *fll, int base)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct arizona *arizona = fll->arizona;
 | 
						struct arizona *arizona = fll->arizona;
 | 
				
			||||||
	unsigned int reg;
 | 
						unsigned int reg;
 | 
				
			||||||
	int ret;
 | 
						int ret;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ret = regmap_read(arizona->regmap, fll->base + 1, ®);
 | 
						ret = regmap_read(arizona->regmap, base + 1, ®);
 | 
				
			||||||
	if (ret != 0) {
 | 
						if (ret != 0) {
 | 
				
			||||||
		arizona_fll_err(fll, "Failed to read current state: %d\n",
 | 
							arizona_fll_err(fll, "Failed to read current state: %d\n",
 | 
				
			||||||
				ret);
 | 
									ret);
 | 
				
			||||||
| 
						 | 
					@ -2208,13 +2246,16 @@ static int arizona_enable_fll(struct arizona_fll *fll)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct arizona *arizona = fll->arizona;
 | 
						struct arizona *arizona = fll->arizona;
 | 
				
			||||||
	bool use_sync = false;
 | 
						bool use_sync = false;
 | 
				
			||||||
	int already_enabled = arizona_is_enabled_fll(fll);
 | 
						int already_enabled = arizona_is_enabled_fll(fll, fll->base);
 | 
				
			||||||
 | 
						int sync_enabled = arizona_is_enabled_fll(fll, fll->base + 0x10);
 | 
				
			||||||
	struct arizona_fll_cfg cfg;
 | 
						struct arizona_fll_cfg cfg;
 | 
				
			||||||
	int i;
 | 
						int i;
 | 
				
			||||||
	unsigned int val;
 | 
						unsigned int val;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (already_enabled < 0)
 | 
						if (already_enabled < 0)
 | 
				
			||||||
		return already_enabled;
 | 
							return already_enabled;
 | 
				
			||||||
 | 
						if (sync_enabled < 0)
 | 
				
			||||||
 | 
							return sync_enabled;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (already_enabled) {
 | 
						if (already_enabled) {
 | 
				
			||||||
		/* Facilitate smooth refclk across the transition */
 | 
							/* Facilitate smooth refclk across the transition */
 | 
				
			||||||
| 
						 | 
					@ -2259,6 +2300,9 @@ static int arizona_enable_fll(struct arizona_fll *fll)
 | 
				
			||||||
		return -EINVAL;
 | 
							return -EINVAL;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (already_enabled && !!sync_enabled != use_sync)
 | 
				
			||||||
 | 
							arizona_fll_warn(fll, "Synchroniser changed on active FLL\n");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/*
 | 
						/*
 | 
				
			||||||
	 * Increase the bandwidth if we're not using a low frequency
 | 
						 * Increase the bandwidth if we're not using a low frequency
 | 
				
			||||||
	 * sync source.
 | 
						 * sync source.
 | 
				
			||||||
| 
						 | 
					@ -2274,12 +2318,12 @@ static int arizona_enable_fll(struct arizona_fll *fll)
 | 
				
			||||||
	if (!already_enabled)
 | 
						if (!already_enabled)
 | 
				
			||||||
		pm_runtime_get_sync(arizona->dev);
 | 
							pm_runtime_get_sync(arizona->dev);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	regmap_update_bits_async(arizona->regmap, fll->base + 1,
 | 
					 | 
				
			||||||
				 ARIZONA_FLL1_ENA, ARIZONA_FLL1_ENA);
 | 
					 | 
				
			||||||
	if (use_sync)
 | 
						if (use_sync)
 | 
				
			||||||
		regmap_update_bits_async(arizona->regmap, fll->base + 0x11,
 | 
							regmap_update_bits_async(arizona->regmap, fll->base + 0x11,
 | 
				
			||||||
					 ARIZONA_FLL1_SYNC_ENA,
 | 
										 ARIZONA_FLL1_SYNC_ENA,
 | 
				
			||||||
					 ARIZONA_FLL1_SYNC_ENA);
 | 
										 ARIZONA_FLL1_SYNC_ENA);
 | 
				
			||||||
 | 
						regmap_update_bits_async(arizona->regmap, fll->base + 1,
 | 
				
			||||||
 | 
									 ARIZONA_FLL1_ENA, ARIZONA_FLL1_ENA);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (already_enabled)
 | 
						if (already_enabled)
 | 
				
			||||||
		regmap_update_bits_async(arizona->regmap, fll->base + 1,
 | 
							regmap_update_bits_async(arizona->regmap, fll->base + 1,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -190,20 +190,21 @@ extern unsigned int arizona_mixer_values[ARIZONA_NUM_MIXER_INPUTS];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define ARIZONA_DSP_ROUTES(name) \
 | 
					#define ARIZONA_DSP_ROUTES(name) \
 | 
				
			||||||
	{ name, NULL, name " Preloader"}, \
 | 
						{ name, NULL, name " Preloader"}, \
 | 
				
			||||||
	{ name " Preloader", NULL, name " Aux 1" }, \
 | 
						{ name " Preloader", NULL, "SYSCLK" }, \
 | 
				
			||||||
	{ name " Preloader", NULL, name " Aux 2" }, \
 | 
						{ name, NULL, name " Aux 1" }, \
 | 
				
			||||||
	{ name " Preloader", NULL, name " Aux 3" }, \
 | 
						{ name, NULL, name " Aux 2" }, \
 | 
				
			||||||
	{ name " Preloader", NULL, name " Aux 4" }, \
 | 
						{ name, NULL, name " Aux 3" }, \
 | 
				
			||||||
	{ name " Preloader", NULL, name " Aux 5" }, \
 | 
						{ name, NULL, name " Aux 4" }, \
 | 
				
			||||||
	{ name " Preloader", NULL, name " Aux 6" }, \
 | 
						{ name, NULL, name " Aux 5" }, \
 | 
				
			||||||
 | 
						{ name, NULL, name " Aux 6" }, \
 | 
				
			||||||
	ARIZONA_MIXER_INPUT_ROUTES(name " Aux 1"), \
 | 
						ARIZONA_MIXER_INPUT_ROUTES(name " Aux 1"), \
 | 
				
			||||||
	ARIZONA_MIXER_INPUT_ROUTES(name " Aux 2"), \
 | 
						ARIZONA_MIXER_INPUT_ROUTES(name " Aux 2"), \
 | 
				
			||||||
	ARIZONA_MIXER_INPUT_ROUTES(name " Aux 3"), \
 | 
						ARIZONA_MIXER_INPUT_ROUTES(name " Aux 3"), \
 | 
				
			||||||
	ARIZONA_MIXER_INPUT_ROUTES(name " Aux 4"), \
 | 
						ARIZONA_MIXER_INPUT_ROUTES(name " Aux 4"), \
 | 
				
			||||||
	ARIZONA_MIXER_INPUT_ROUTES(name " Aux 5"), \
 | 
						ARIZONA_MIXER_INPUT_ROUTES(name " Aux 5"), \
 | 
				
			||||||
	ARIZONA_MIXER_INPUT_ROUTES(name " Aux 6"), \
 | 
						ARIZONA_MIXER_INPUT_ROUTES(name " Aux 6"), \
 | 
				
			||||||
	ARIZONA_MIXER_ROUTES(name " Preloader", name "L"), \
 | 
						ARIZONA_MIXER_ROUTES(name, name "L"), \
 | 
				
			||||||
	ARIZONA_MIXER_ROUTES(name " Preloader", name "R")
 | 
						ARIZONA_MIXER_ROUTES(name, name "R")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define ARIZONA_EQ_CONTROL(xname, xbase)                      \
 | 
					#define ARIZONA_EQ_CONTROL(xname, xbase)                      \
 | 
				
			||||||
{	.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname,   \
 | 
					{	.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname,   \
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -63,10 +63,12 @@ static struct snd_soc_dai_driver bt_sco_dai[] = {
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct snd_soc_codec_driver soc_codec_dev_bt_sco = {
 | 
					static struct snd_soc_codec_driver soc_codec_dev_bt_sco = {
 | 
				
			||||||
	.dapm_widgets = bt_sco_widgets,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(bt_sco_widgets),
 | 
							.dapm_widgets		= bt_sco_widgets,
 | 
				
			||||||
	.dapm_routes = bt_sco_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(bt_sco_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(bt_sco_routes),
 | 
							.dapm_routes		= bt_sco_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(bt_sco_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int bt_sco_probe(struct platform_device *pdev)
 | 
					static int bt_sco_probe(struct platform_device *pdev)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -131,8 +131,10 @@ static struct regmap *cq93vc_get_regmap(struct device *dev)
 | 
				
			||||||
static struct snd_soc_codec_driver soc_codec_dev_cq93vc = {
 | 
					static struct snd_soc_codec_driver soc_codec_dev_cq93vc = {
 | 
				
			||||||
	.set_bias_level = cq93vc_set_bias_level,
 | 
						.set_bias_level = cq93vc_set_bias_level,
 | 
				
			||||||
	.get_regmap = cq93vc_get_regmap,
 | 
						.get_regmap = cq93vc_get_regmap,
 | 
				
			||||||
	.controls = cq93vc_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(cq93vc_snd_controls),
 | 
							.controls = cq93vc_snd_controls,
 | 
				
			||||||
 | 
							.num_controls = ARRAY_SIZE(cq93vc_snd_controls),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int cq93vc_platform_probe(struct platform_device *pdev)
 | 
					static int cq93vc_platform_probe(struct platform_device *pdev)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -231,13 +231,14 @@ static int cs35l32_codec_set_sysclk(struct snd_soc_codec *codec,
 | 
				
			||||||
static const struct snd_soc_codec_driver soc_codec_dev_cs35l32 = {
 | 
					static const struct snd_soc_codec_driver soc_codec_dev_cs35l32 = {
 | 
				
			||||||
	.set_sysclk = cs35l32_codec_set_sysclk,
 | 
						.set_sysclk = cs35l32_codec_set_sysclk,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.dapm_widgets = cs35l32_dapm_widgets,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(cs35l32_dapm_widgets),
 | 
							.controls		= cs35l32_snd_controls,
 | 
				
			||||||
	.dapm_routes = cs35l32_audio_map,
 | 
							.num_controls		= ARRAY_SIZE(cs35l32_snd_controls),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(cs35l32_audio_map),
 | 
							.dapm_widgets		= cs35l32_dapm_widgets,
 | 
				
			||||||
 | 
							.num_dapm_widgets	= ARRAY_SIZE(cs35l32_dapm_widgets),
 | 
				
			||||||
	.controls = cs35l32_snd_controls,
 | 
							.dapm_routes		= cs35l32_audio_map,
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(cs35l32_snd_controls),
 | 
							.num_dapm_routes	= ARRAY_SIZE(cs35l32_audio_map),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Current and threshold powerup sequence Pg37 in datasheet */
 | 
					/* Current and threshold powerup sequence Pg37 in datasheet */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -837,13 +837,14 @@ static struct snd_soc_codec_driver soc_codec_dev_cs35l33 = {
 | 
				
			||||||
	.set_bias_level = cs35l33_set_bias_level,
 | 
						.set_bias_level = cs35l33_set_bias_level,
 | 
				
			||||||
	.set_sysclk = cs35l33_codec_set_sysclk,
 | 
						.set_sysclk = cs35l33_codec_set_sysclk,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.dapm_widgets = cs35l33_dapm_widgets,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(cs35l33_dapm_widgets),
 | 
							.controls		= cs35l33_snd_controls,
 | 
				
			||||||
	.dapm_routes = cs35l33_audio_map,
 | 
							.num_controls		= ARRAY_SIZE(cs35l33_snd_controls),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(cs35l33_audio_map),
 | 
							.dapm_widgets		= cs35l33_dapm_widgets,
 | 
				
			||||||
	.controls = cs35l33_snd_controls,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(cs35l33_dapm_widgets),
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(cs35l33_snd_controls),
 | 
							.dapm_routes		= cs35l33_audio_map,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(cs35l33_audio_map),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
	.idle_bias_off = true,
 | 
						.idle_bias_off = true,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -547,13 +547,14 @@ static struct snd_soc_dai_driver cs4265_dai[] = {
 | 
				
			||||||
static const struct snd_soc_codec_driver soc_codec_cs4265 = {
 | 
					static const struct snd_soc_codec_driver soc_codec_cs4265 = {
 | 
				
			||||||
	.set_bias_level = cs4265_set_bias_level,
 | 
						.set_bias_level = cs4265_set_bias_level,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.dapm_widgets = cs4265_dapm_widgets,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(cs4265_dapm_widgets),
 | 
							.controls		= cs4265_snd_controls,
 | 
				
			||||||
	.dapm_routes = cs4265_audio_map,
 | 
							.num_controls		= ARRAY_SIZE(cs4265_snd_controls),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(cs4265_audio_map),
 | 
							.dapm_widgets		= cs4265_dapm_widgets,
 | 
				
			||||||
 | 
							.num_dapm_widgets	= ARRAY_SIZE(cs4265_dapm_widgets),
 | 
				
			||||||
	.controls = cs4265_snd_controls,
 | 
							.dapm_routes		= cs4265_audio_map,
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(cs4265_snd_controls),
 | 
							.num_dapm_routes	= ARRAY_SIZE(cs4265_audio_map),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct regmap_config cs4265_regmap = {
 | 
					static const struct regmap_config cs4265_regmap = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -617,12 +617,14 @@ static const struct snd_soc_codec_driver soc_codec_device_cs4270 = {
 | 
				
			||||||
	.suspend =		cs4270_soc_suspend,
 | 
						.suspend =		cs4270_soc_suspend,
 | 
				
			||||||
	.resume =		cs4270_soc_resume,
 | 
						.resume =		cs4270_soc_resume,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.controls =		cs4270_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls =		ARRAY_SIZE(cs4270_snd_controls),
 | 
							.controls =		cs4270_snd_controls,
 | 
				
			||||||
	.dapm_widgets =		cs4270_dapm_widgets,
 | 
							.num_controls =		ARRAY_SIZE(cs4270_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets =	ARRAY_SIZE(cs4270_dapm_widgets),
 | 
							.dapm_widgets =		cs4270_dapm_widgets,
 | 
				
			||||||
	.dapm_routes =		cs4270_dapm_routes,
 | 
							.num_dapm_widgets =	ARRAY_SIZE(cs4270_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes =	ARRAY_SIZE(cs4270_dapm_routes),
 | 
							.dapm_routes =		cs4270_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes =	ARRAY_SIZE(cs4270_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -645,12 +645,14 @@ static struct snd_soc_codec_driver soc_codec_dev_cs4271 = {
 | 
				
			||||||
	.suspend		= cs4271_soc_suspend,
 | 
						.suspend		= cs4271_soc_suspend,
 | 
				
			||||||
	.resume			= cs4271_soc_resume,
 | 
						.resume			= cs4271_soc_resume,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.controls		= cs4271_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls		= ARRAY_SIZE(cs4271_snd_controls),
 | 
							.controls		= cs4271_snd_controls,
 | 
				
			||||||
	.dapm_widgets		= cs4271_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(cs4271_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets	= ARRAY_SIZE(cs4271_dapm_widgets),
 | 
							.dapm_widgets		= cs4271_dapm_widgets,
 | 
				
			||||||
	.dapm_routes		= cs4271_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(cs4271_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes	= ARRAY_SIZE(cs4271_dapm_routes),
 | 
							.dapm_routes		= cs4271_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(cs4271_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int cs4271_common_probe(struct device *dev,
 | 
					static int cs4271_common_probe(struct device *dev,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -507,12 +507,14 @@ static int cs42l51_codec_probe(struct snd_soc_codec *codec)
 | 
				
			||||||
static struct snd_soc_codec_driver soc_codec_device_cs42l51 = {
 | 
					static struct snd_soc_codec_driver soc_codec_device_cs42l51 = {
 | 
				
			||||||
	.probe = cs42l51_codec_probe,
 | 
						.probe = cs42l51_codec_probe,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.controls = cs42l51_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(cs42l51_snd_controls),
 | 
							.controls		= cs42l51_snd_controls,
 | 
				
			||||||
	.dapm_widgets = cs42l51_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(cs42l51_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(cs42l51_dapm_widgets),
 | 
							.dapm_widgets		= cs42l51_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = cs42l51_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(cs42l51_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(cs42l51_routes),
 | 
							.dapm_routes		= cs42l51_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(cs42l51_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const struct regmap_config cs42l51_regmap = {
 | 
					const struct regmap_config cs42l51_regmap = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1056,13 +1056,14 @@ static const struct snd_soc_codec_driver soc_codec_dev_cs42l52 = {
 | 
				
			||||||
	.set_bias_level = cs42l52_set_bias_level,
 | 
						.set_bias_level = cs42l52_set_bias_level,
 | 
				
			||||||
	.suspend_bias_off = true,
 | 
						.suspend_bias_off = true,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.dapm_widgets = cs42l52_dapm_widgets,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(cs42l52_dapm_widgets),
 | 
							.controls		= cs42l52_snd_controls,
 | 
				
			||||||
	.dapm_routes = cs42l52_audio_map,
 | 
							.num_controls		= ARRAY_SIZE(cs42l52_snd_controls),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(cs42l52_audio_map),
 | 
							.dapm_widgets		= cs42l52_dapm_widgets,
 | 
				
			||||||
 | 
							.num_dapm_widgets	= ARRAY_SIZE(cs42l52_dapm_widgets),
 | 
				
			||||||
	.controls = cs42l52_snd_controls,
 | 
							.dapm_routes		= cs42l52_audio_map,
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(cs42l52_snd_controls),
 | 
							.num_dapm_routes	= ARRAY_SIZE(cs42l52_audio_map),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Current and threshold powerup sequence Pg37 */
 | 
					/* Current and threshold powerup sequence Pg37 */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1121,13 +1121,14 @@ static const struct snd_soc_codec_driver soc_codec_dev_cs42l56 = {
 | 
				
			||||||
	.set_bias_level = cs42l56_set_bias_level,
 | 
						.set_bias_level = cs42l56_set_bias_level,
 | 
				
			||||||
	.suspend_bias_off = true,
 | 
						.suspend_bias_off = true,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.dapm_widgets = cs42l56_dapm_widgets,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(cs42l56_dapm_widgets),
 | 
							.controls		= cs42l56_snd_controls,
 | 
				
			||||||
	.dapm_routes = cs42l56_audio_map,
 | 
							.num_controls		= ARRAY_SIZE(cs42l56_snd_controls),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(cs42l56_audio_map),
 | 
							.dapm_widgets		= cs42l56_dapm_widgets,
 | 
				
			||||||
 | 
							.num_dapm_widgets	= ARRAY_SIZE(cs42l56_dapm_widgets),
 | 
				
			||||||
	.controls = cs42l56_snd_controls,
 | 
							.dapm_routes		= cs42l56_audio_map,
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(cs42l56_snd_controls),
 | 
							.num_dapm_routes	= ARRAY_SIZE(cs42l56_audio_map),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct regmap_config cs42l56_regmap = {
 | 
					static const struct regmap_config cs42l56_regmap = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1257,13 +1257,14 @@ static const struct snd_soc_codec_driver soc_codec_dev_cs42l73 = {
 | 
				
			||||||
	.set_bias_level = cs42l73_set_bias_level,
 | 
						.set_bias_level = cs42l73_set_bias_level,
 | 
				
			||||||
	.suspend_bias_off = true,
 | 
						.suspend_bias_off = true,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.dapm_widgets = cs42l73_dapm_widgets,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(cs42l73_dapm_widgets),
 | 
							.controls		= cs42l73_snd_controls,
 | 
				
			||||||
	.dapm_routes = cs42l73_audio_map,
 | 
							.num_controls		= ARRAY_SIZE(cs42l73_snd_controls),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(cs42l73_audio_map),
 | 
							.dapm_widgets		= cs42l73_dapm_widgets,
 | 
				
			||||||
 | 
							.num_dapm_widgets	= ARRAY_SIZE(cs42l73_dapm_widgets),
 | 
				
			||||||
	.controls = cs42l73_snd_controls,
 | 
							.dapm_routes		= cs42l73_audio_map,
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(cs42l73_snd_controls),
 | 
							.num_dapm_routes	= ARRAY_SIZE(cs42l73_audio_map),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct regmap_config cs42l73_regmap = {
 | 
					static const struct regmap_config cs42l73_regmap = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -411,12 +411,14 @@ static const struct snd_soc_codec_driver cs42xx8_driver = {
 | 
				
			||||||
	.probe = cs42xx8_codec_probe,
 | 
						.probe = cs42xx8_codec_probe,
 | 
				
			||||||
	.idle_bias_off = true,
 | 
						.idle_bias_off = true,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.controls = cs42xx8_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(cs42xx8_snd_controls),
 | 
							.controls		= cs42xx8_snd_controls,
 | 
				
			||||||
	.dapm_widgets = cs42xx8_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(cs42xx8_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(cs42xx8_dapm_widgets),
 | 
							.dapm_widgets		= cs42xx8_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = cs42xx8_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(cs42xx8_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(cs42xx8_dapm_routes),
 | 
							.dapm_routes		= cs42xx8_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(cs42xx8_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const struct cs42xx8_driver_data cs42448_data = {
 | 
					const struct cs42xx8_driver_data cs42448_data = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -256,13 +256,14 @@ static struct snd_soc_dai_driver cs4349_dai = {
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct snd_soc_codec_driver soc_codec_dev_cs4349 = {
 | 
					static struct snd_soc_codec_driver soc_codec_dev_cs4349 = {
 | 
				
			||||||
	.controls		= cs4349_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls		= ARRAY_SIZE(cs4349_snd_controls),
 | 
							.controls		= cs4349_snd_controls,
 | 
				
			||||||
 | 
							.num_controls		= ARRAY_SIZE(cs4349_snd_controls),
 | 
				
			||||||
	.dapm_widgets		= cs4349_dapm_widgets,
 | 
							.dapm_widgets		= cs4349_dapm_widgets,
 | 
				
			||||||
	.num_dapm_widgets	= ARRAY_SIZE(cs4349_dapm_widgets),
 | 
							.num_dapm_widgets	= ARRAY_SIZE(cs4349_dapm_widgets),
 | 
				
			||||||
	.dapm_routes		= cs4349_routes,
 | 
							.dapm_routes		= cs4349_routes,
 | 
				
			||||||
	.num_dapm_routes	= ARRAY_SIZE(cs4349_routes),
 | 
							.num_dapm_routes	= ARRAY_SIZE(cs4349_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct regmap_config cs4349_regmap = {
 | 
					static const struct regmap_config cs4349_regmap = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -746,6 +746,16 @@ static const struct snd_soc_dapm_route cs47l24_dapm_routes[] = {
 | 
				
			||||||
	{ "IN2L", NULL, "SYSCLK" },
 | 
						{ "IN2L", NULL, "SYSCLK" },
 | 
				
			||||||
	{ "IN2R", NULL, "SYSCLK" },
 | 
						{ "IN2R", NULL, "SYSCLK" },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						{ "ASRC1L", NULL, "SYSCLK" },
 | 
				
			||||||
 | 
						{ "ASRC1R", NULL, "SYSCLK" },
 | 
				
			||||||
 | 
						{ "ASRC2L", NULL, "SYSCLK" },
 | 
				
			||||||
 | 
						{ "ASRC2R", NULL, "SYSCLK" },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						{ "ASRC1L", NULL, "ASYNCCLK" },
 | 
				
			||||||
 | 
						{ "ASRC1R", NULL, "ASYNCCLK" },
 | 
				
			||||||
 | 
						{ "ASRC2L", NULL, "ASYNCCLK" },
 | 
				
			||||||
 | 
						{ "ASRC2R", NULL, "ASYNCCLK" },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	{ "MICBIAS1", NULL, "MICVDD" },
 | 
						{ "MICBIAS1", NULL, "MICVDD" },
 | 
				
			||||||
	{ "MICBIAS2", NULL, "MICVDD" },
 | 
						{ "MICBIAS2", NULL, "MICVDD" },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -804,7 +814,6 @@ static const struct snd_soc_dapm_route cs47l24_dapm_routes[] = {
 | 
				
			||||||
	{ "AIF3 Capture", NULL, "SYSCLK" },
 | 
						{ "AIF3 Capture", NULL, "SYSCLK" },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	{ "Voice Control DSP", NULL, "DSP3" },
 | 
						{ "Voice Control DSP", NULL, "DSP3" },
 | 
				
			||||||
	{ "Voice Control DSP", NULL, "SYSCLK" },
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	{ "IN1L PGA", NULL, "IN1L" },
 | 
						{ "IN1L PGA", NULL, "IN1L" },
 | 
				
			||||||
	{ "IN1R PGA", NULL, "IN1R" },
 | 
						{ "IN1R PGA", NULL, "IN1R" },
 | 
				
			||||||
| 
						 | 
					@ -813,7 +822,6 @@ static const struct snd_soc_dapm_route cs47l24_dapm_routes[] = {
 | 
				
			||||||
	{ "IN2R PGA", NULL, "IN2R" },
 | 
						{ "IN2R PGA", NULL, "IN2R" },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	{ "Audio Trace DSP", NULL, "DSP2" },
 | 
						{ "Audio Trace DSP", NULL, "DSP2" },
 | 
				
			||||||
	{ "Audio Trace DSP", NULL, "SYSCLK" },
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ARIZONA_MIXER_ROUTES("OUT1L", "HPOUT1L"),
 | 
						ARIZONA_MIXER_ROUTES("OUT1L", "HPOUT1L"),
 | 
				
			||||||
	ARIZONA_MIXER_ROUTES("OUT1R", "HPOUT1R"),
 | 
						ARIZONA_MIXER_ROUTES("OUT1R", "HPOUT1R"),
 | 
				
			||||||
| 
						 | 
					@ -1190,12 +1198,14 @@ static struct snd_soc_codec_driver soc_codec_dev_cs47l24 = {
 | 
				
			||||||
	.set_sysclk = arizona_set_sysclk,
 | 
						.set_sysclk = arizona_set_sysclk,
 | 
				
			||||||
	.set_pll = cs47l24_set_fll,
 | 
						.set_pll = cs47l24_set_fll,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.controls = cs47l24_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(cs47l24_snd_controls),
 | 
							.controls		= cs47l24_snd_controls,
 | 
				
			||||||
	.dapm_widgets = cs47l24_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(cs47l24_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(cs47l24_dapm_widgets),
 | 
							.dapm_widgets		= cs47l24_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = cs47l24_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(cs47l24_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(cs47l24_dapm_routes),
 | 
							.dapm_routes		= cs47l24_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(cs47l24_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct snd_compr_ops cs47l24_compr_ops = {
 | 
					static struct snd_compr_ops cs47l24_compr_ops = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -897,13 +897,14 @@ static struct snd_soc_codec_driver cs53l30_driver = {
 | 
				
			||||||
	.set_bias_level = cs53l30_set_bias_level,
 | 
						.set_bias_level = cs53l30_set_bias_level,
 | 
				
			||||||
	.idle_bias_off = true,
 | 
						.idle_bias_off = true,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.dapm_widgets = cs53l30_dapm_widgets,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(cs53l30_dapm_widgets),
 | 
							.controls		= cs53l30_snd_controls,
 | 
				
			||||||
	.dapm_routes = cs53l30_dapm_routes,
 | 
							.num_controls		= ARRAY_SIZE(cs53l30_snd_controls),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(cs53l30_dapm_routes),
 | 
							.dapm_widgets		= cs53l30_dapm_widgets,
 | 
				
			||||||
 | 
							.num_dapm_widgets	= ARRAY_SIZE(cs53l30_dapm_widgets),
 | 
				
			||||||
	.controls = cs53l30_snd_controls,
 | 
							.dapm_routes		= cs53l30_dapm_routes,
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(cs53l30_snd_controls),
 | 
							.num_dapm_routes	= ARRAY_SIZE(cs53l30_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct regmap_config cs53l30_regmap = {
 | 
					static struct regmap_config cs53l30_regmap = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -407,10 +407,12 @@ static struct snd_soc_codec_driver cx20442_codec_dev = {
 | 
				
			||||||
	.reg_word_size = sizeof(u8),
 | 
						.reg_word_size = sizeof(u8),
 | 
				
			||||||
	.read = cx20442_read_reg_cache,
 | 
						.read = cx20442_read_reg_cache,
 | 
				
			||||||
	.write = cx20442_write,
 | 
						.write = cx20442_write,
 | 
				
			||||||
	.dapm_widgets = cx20442_dapm_widgets,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(cx20442_dapm_widgets),
 | 
							.dapm_widgets		= cx20442_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = cx20442_audio_map,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(cx20442_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(cx20442_audio_map),
 | 
							.dapm_routes		= cx20442_audio_map,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(cx20442_audio_map),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int cx20442_platform_probe(struct platform_device *pdev)
 | 
					static int cx20442_platform_probe(struct platform_device *pdev)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1167,13 +1167,14 @@ static int da7210_probe(struct snd_soc_codec *codec)
 | 
				
			||||||
static struct snd_soc_codec_driver soc_codec_dev_da7210 = {
 | 
					static struct snd_soc_codec_driver soc_codec_dev_da7210 = {
 | 
				
			||||||
	.probe			= da7210_probe,
 | 
						.probe			= da7210_probe,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.controls		= da7210_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls		= ARRAY_SIZE(da7210_snd_controls),
 | 
							.controls		= da7210_snd_controls,
 | 
				
			||||||
 | 
							.num_controls		= ARRAY_SIZE(da7210_snd_controls),
 | 
				
			||||||
	.dapm_widgets		= da7210_dapm_widgets,
 | 
							.dapm_widgets		= da7210_dapm_widgets,
 | 
				
			||||||
	.num_dapm_widgets	= ARRAY_SIZE(da7210_dapm_widgets),
 | 
							.num_dapm_widgets	= ARRAY_SIZE(da7210_dapm_widgets),
 | 
				
			||||||
	.dapm_routes		= da7210_audio_map,
 | 
							.dapm_routes		= da7210_audio_map,
 | 
				
			||||||
	.num_dapm_routes	= ARRAY_SIZE(da7210_audio_map),
 | 
							.num_dapm_routes	= ARRAY_SIZE(da7210_audio_map),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if IS_ENABLED(CONFIG_I2C)
 | 
					#if IS_ENABLED(CONFIG_I2C)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1740,13 +1740,14 @@ static struct snd_soc_codec_driver soc_codec_dev_da7213 = {
 | 
				
			||||||
	.probe			= da7213_probe,
 | 
						.probe			= da7213_probe,
 | 
				
			||||||
	.set_bias_level		= da7213_set_bias_level,
 | 
						.set_bias_level		= da7213_set_bias_level,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.controls		= da7213_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls		= ARRAY_SIZE(da7213_snd_controls),
 | 
							.controls		= da7213_snd_controls,
 | 
				
			||||||
 | 
							.num_controls		= ARRAY_SIZE(da7213_snd_controls),
 | 
				
			||||||
	.dapm_widgets		= da7213_dapm_widgets,
 | 
							.dapm_widgets		= da7213_dapm_widgets,
 | 
				
			||||||
	.num_dapm_widgets	= ARRAY_SIZE(da7213_dapm_widgets),
 | 
							.num_dapm_widgets	= ARRAY_SIZE(da7213_dapm_widgets),
 | 
				
			||||||
	.dapm_routes		= da7213_audio_map,
 | 
							.dapm_routes		= da7213_audio_map,
 | 
				
			||||||
	.num_dapm_routes	= ARRAY_SIZE(da7213_audio_map),
 | 
							.num_dapm_routes	= ARRAY_SIZE(da7213_audio_map),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct regmap_config da7213_regmap_config = {
 | 
					static const struct regmap_config da7213_regmap_config = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3045,13 +3045,14 @@ static struct snd_soc_codec_driver soc_codec_dev_da7218 = {
 | 
				
			||||||
	.resume			= da7218_resume,
 | 
						.resume			= da7218_resume,
 | 
				
			||||||
	.set_bias_level		= da7218_set_bias_level,
 | 
						.set_bias_level		= da7218_set_bias_level,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.controls		= da7218_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls		= ARRAY_SIZE(da7218_snd_controls),
 | 
							.controls		= da7218_snd_controls,
 | 
				
			||||||
 | 
							.num_controls		= ARRAY_SIZE(da7218_snd_controls),
 | 
				
			||||||
	.dapm_widgets		= da7218_dapm_widgets,
 | 
							.dapm_widgets		= da7218_dapm_widgets,
 | 
				
			||||||
	.num_dapm_widgets	= ARRAY_SIZE(da7218_dapm_widgets),
 | 
							.num_dapm_widgets	= ARRAY_SIZE(da7218_dapm_widgets),
 | 
				
			||||||
	.dapm_routes		= da7218_audio_map,
 | 
							.dapm_routes		= da7218_audio_map,
 | 
				
			||||||
	.num_dapm_routes	= ARRAY_SIZE(da7218_audio_map),
 | 
							.num_dapm_routes	= ARRAY_SIZE(da7218_audio_map),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1767,13 +1767,14 @@ static struct snd_soc_codec_driver soc_codec_dev_da7219 = {
 | 
				
			||||||
	.resume			= da7219_resume,
 | 
						.resume			= da7219_resume,
 | 
				
			||||||
	.set_bias_level		= da7219_set_bias_level,
 | 
						.set_bias_level		= da7219_set_bias_level,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.controls		= da7219_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls		= ARRAY_SIZE(da7219_snd_controls),
 | 
							.controls		= da7219_snd_controls,
 | 
				
			||||||
 | 
							.num_controls		= ARRAY_SIZE(da7219_snd_controls),
 | 
				
			||||||
	.dapm_widgets		= da7219_dapm_widgets,
 | 
							.dapm_widgets		= da7219_dapm_widgets,
 | 
				
			||||||
	.num_dapm_widgets	= ARRAY_SIZE(da7219_dapm_widgets),
 | 
							.num_dapm_widgets	= ARRAY_SIZE(da7219_dapm_widgets),
 | 
				
			||||||
	.dapm_routes		= da7219_audio_map,
 | 
							.dapm_routes		= da7219_audio_map,
 | 
				
			||||||
	.num_dapm_routes	= ARRAY_SIZE(da7219_audio_map),
 | 
							.num_dapm_routes	= ARRAY_SIZE(da7219_audio_map),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1501,12 +1501,14 @@ static int da732x_set_bias_level(struct snd_soc_codec *codec,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct snd_soc_codec_driver soc_codec_dev_da732x = {
 | 
					static struct snd_soc_codec_driver soc_codec_dev_da732x = {
 | 
				
			||||||
	.set_bias_level		= da732x_set_bias_level,
 | 
						.set_bias_level		= da732x_set_bias_level,
 | 
				
			||||||
	.controls		= da732x_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls		= ARRAY_SIZE(da732x_snd_controls),
 | 
							.controls		= da732x_snd_controls,
 | 
				
			||||||
	.dapm_widgets		= da732x_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(da732x_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets	= ARRAY_SIZE(da732x_dapm_widgets),
 | 
							.dapm_widgets		= da732x_dapm_widgets,
 | 
				
			||||||
	.dapm_routes		= da732x_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(da732x_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes	= ARRAY_SIZE(da732x_dapm_routes),
 | 
							.dapm_routes		= da732x_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(da732x_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
	.set_pll		= da732x_set_dai_pll,
 | 
						.set_pll		= da732x_set_dai_pll,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1455,13 +1455,14 @@ static struct snd_soc_codec_driver soc_codec_dev_da9055 = {
 | 
				
			||||||
	.probe			= da9055_probe,
 | 
						.probe			= da9055_probe,
 | 
				
			||||||
	.set_bias_level		= da9055_set_bias_level,
 | 
						.set_bias_level		= da9055_set_bias_level,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.controls		= da9055_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls		= ARRAY_SIZE(da9055_snd_controls),
 | 
							.controls		= da9055_snd_controls,
 | 
				
			||||||
 | 
							.num_controls		= ARRAY_SIZE(da9055_snd_controls),
 | 
				
			||||||
	.dapm_widgets		= da9055_dapm_widgets,
 | 
							.dapm_widgets		= da9055_dapm_widgets,
 | 
				
			||||||
	.num_dapm_widgets	= ARRAY_SIZE(da9055_dapm_widgets),
 | 
							.num_dapm_widgets	= ARRAY_SIZE(da9055_dapm_widgets),
 | 
				
			||||||
	.dapm_routes		= da9055_audio_map,
 | 
							.dapm_routes		= da9055_audio_map,
 | 
				
			||||||
	.num_dapm_routes	= ARRAY_SIZE(da9055_audio_map),
 | 
							.num_dapm_routes	= ARRAY_SIZE(da9055_audio_map),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct regmap_config da9055_regmap_config = {
 | 
					static const struct regmap_config da9055_regmap_config = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -51,10 +51,12 @@ static const struct snd_soc_dapm_route intercon[] = {
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct snd_soc_codec_driver soc_dmic = {
 | 
					static struct snd_soc_codec_driver soc_dmic = {
 | 
				
			||||||
	.dapm_widgets = dmic_dapm_widgets,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(dmic_dapm_widgets),
 | 
							.dapm_widgets		= dmic_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = intercon,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(dmic_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(intercon),
 | 
							.dapm_routes		= intercon,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(intercon),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int dmic_dev_probe(struct platform_device *pdev)
 | 
					static int dmic_dev_probe(struct platform_device *pdev)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -823,12 +823,14 @@ static struct snd_soc_codec_driver es8328_codec_driver = {
 | 
				
			||||||
	.set_bias_level	  = es8328_set_bias_level,
 | 
						.set_bias_level	  = es8328_set_bias_level,
 | 
				
			||||||
	.suspend_bias_off = true,
 | 
						.suspend_bias_off = true,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.controls	  = es8328_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls	  = ARRAY_SIZE(es8328_snd_controls),
 | 
							.controls		= es8328_snd_controls,
 | 
				
			||||||
	.dapm_widgets	  = es8328_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(es8328_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(es8328_dapm_widgets),
 | 
							.dapm_widgets		= es8328_dapm_widgets,
 | 
				
			||||||
	.dapm_routes	  = es8328_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(es8328_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes  = ARRAY_SIZE(es8328_dapm_routes),
 | 
							.dapm_routes		= es8328_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(es8328_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int es8328_probe(struct device *dev, struct regmap *regmap)
 | 
					int es8328_probe(struct device *dev, struct regmap *regmap)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -52,10 +52,12 @@ static struct snd_soc_dai_driver gtm601_dai = {
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct snd_soc_codec_driver soc_codec_dev_gtm601 = {
 | 
					static const struct snd_soc_codec_driver soc_codec_dev_gtm601 = {
 | 
				
			||||||
	.dapm_widgets = gtm601_dapm_widgets,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(gtm601_dapm_widgets),
 | 
							.dapm_widgets		= gtm601_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = gtm601_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(gtm601_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(gtm601_dapm_routes),
 | 
							.dapm_routes		= gtm601_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(gtm601_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int gtm601_platform_probe(struct platform_device *pdev)
 | 
					static int gtm601_platform_probe(struct platform_device *pdev)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,6 +24,15 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <drm/drm_crtc.h> /* This is only to get MAX_ELD_BYTES */
 | 
					#include <drm/drm_crtc.h> /* This is only to get MAX_ELD_BYTES */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct hdmi_device {
 | 
				
			||||||
 | 
						struct device *dev;
 | 
				
			||||||
 | 
						struct list_head list;
 | 
				
			||||||
 | 
						int cnt;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					#define pos_to_hdmi_device(pos)	container_of((pos), struct hdmi_device, list)
 | 
				
			||||||
 | 
					LIST_HEAD(hdmi_device_list);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define DAI_NAME_SIZE 16
 | 
				
			||||||
struct hdmi_codec_priv {
 | 
					struct hdmi_codec_priv {
 | 
				
			||||||
	struct hdmi_codec_pdata hcd;
 | 
						struct hdmi_codec_pdata hcd;
 | 
				
			||||||
	struct snd_soc_dai_driver *daidrv;
 | 
						struct snd_soc_dai_driver *daidrv;
 | 
				
			||||||
| 
						 | 
					@ -320,7 +329,6 @@ static const struct snd_soc_dai_ops hdmi_dai_ops = {
 | 
				
			||||||
			 SNDRV_PCM_FMTBIT_S32_LE | SNDRV_PCM_FMTBIT_S32_BE)
 | 
								 SNDRV_PCM_FMTBIT_S32_LE | SNDRV_PCM_FMTBIT_S32_BE)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct snd_soc_dai_driver hdmi_i2s_dai = {
 | 
					static struct snd_soc_dai_driver hdmi_i2s_dai = {
 | 
				
			||||||
	.name = "i2s-hifi",
 | 
					 | 
				
			||||||
	.id = DAI_ID_I2S,
 | 
						.id = DAI_ID_I2S,
 | 
				
			||||||
	.playback = {
 | 
						.playback = {
 | 
				
			||||||
		.stream_name = "Playback",
 | 
							.stream_name = "Playback",
 | 
				
			||||||
| 
						 | 
					@ -334,7 +342,6 @@ static struct snd_soc_dai_driver hdmi_i2s_dai = {
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct snd_soc_dai_driver hdmi_spdif_dai = {
 | 
					static const struct snd_soc_dai_driver hdmi_spdif_dai = {
 | 
				
			||||||
	.name = "spdif-hifi",
 | 
					 | 
				
			||||||
	.id = DAI_ID_SPDIF,
 | 
						.id = DAI_ID_SPDIF,
 | 
				
			||||||
	.playback = {
 | 
						.playback = {
 | 
				
			||||||
		.stream_name = "Playback",
 | 
							.stream_name = "Playback",
 | 
				
			||||||
| 
						 | 
					@ -346,13 +353,37 @@ static const struct snd_soc_dai_driver hdmi_spdif_dai = {
 | 
				
			||||||
	.ops = &hdmi_dai_ops,
 | 
						.ops = &hdmi_dai_ops,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static char hdmi_dai_name[][DAI_NAME_SIZE] = {
 | 
				
			||||||
 | 
						"hdmi-hifi.0",
 | 
				
			||||||
 | 
						"hdmi-hifi.1",
 | 
				
			||||||
 | 
						"hdmi-hifi.2",
 | 
				
			||||||
 | 
						"hdmi-hifi.3",
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static int hdmi_of_xlate_dai_name(struct snd_soc_component *component,
 | 
				
			||||||
 | 
									  struct of_phandle_args *args,
 | 
				
			||||||
 | 
									  const char **dai_name)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						int id = args->args[0];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (id < ARRAY_SIZE(hdmi_dai_name)) {
 | 
				
			||||||
 | 
							*dai_name = hdmi_dai_name[id];
 | 
				
			||||||
 | 
							return 0;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return -EAGAIN;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct snd_soc_codec_driver hdmi_codec = {
 | 
					static struct snd_soc_codec_driver hdmi_codec = {
 | 
				
			||||||
	.controls = hdmi_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(hdmi_controls),
 | 
							.controls		= hdmi_controls,
 | 
				
			||||||
	.dapm_widgets = hdmi_widgets,
 | 
							.num_controls		= ARRAY_SIZE(hdmi_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(hdmi_widgets),
 | 
							.dapm_widgets		= hdmi_widgets,
 | 
				
			||||||
	.dapm_routes = hdmi_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(hdmi_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(hdmi_routes),
 | 
							.dapm_routes		= hdmi_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(hdmi_routes),
 | 
				
			||||||
 | 
							.of_xlate_dai_name	= hdmi_of_xlate_dai_name,
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int hdmi_codec_probe(struct platform_device *pdev)
 | 
					static int hdmi_codec_probe(struct platform_device *pdev)
 | 
				
			||||||
| 
						 | 
					@ -360,6 +391,8 @@ static int hdmi_codec_probe(struct platform_device *pdev)
 | 
				
			||||||
	struct hdmi_codec_pdata *hcd = pdev->dev.platform_data;
 | 
						struct hdmi_codec_pdata *hcd = pdev->dev.platform_data;
 | 
				
			||||||
	struct device *dev = &pdev->dev;
 | 
						struct device *dev = &pdev->dev;
 | 
				
			||||||
	struct hdmi_codec_priv *hcp;
 | 
						struct hdmi_codec_priv *hcp;
 | 
				
			||||||
 | 
						struct hdmi_device *hd;
 | 
				
			||||||
 | 
						struct list_head *pos;
 | 
				
			||||||
	int dai_count, i = 0;
 | 
						int dai_count, i = 0;
 | 
				
			||||||
	int ret;
 | 
						int ret;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -381,6 +414,31 @@ static int hdmi_codec_probe(struct platform_device *pdev)
 | 
				
			||||||
	if (!hcp)
 | 
						if (!hcp)
 | 
				
			||||||
		return -ENOMEM;
 | 
							return -ENOMEM;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						hd = NULL;
 | 
				
			||||||
 | 
						list_for_each(pos, &hdmi_device_list) {
 | 
				
			||||||
 | 
							struct hdmi_device *tmp = pos_to_hdmi_device(pos);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if (tmp->dev == dev->parent) {
 | 
				
			||||||
 | 
								hd = tmp;
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (!hd) {
 | 
				
			||||||
 | 
							hd = devm_kzalloc(dev, sizeof(*hd), GFP_KERNEL);
 | 
				
			||||||
 | 
							if (!hd)
 | 
				
			||||||
 | 
								return -ENOMEM;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							hd->dev = dev->parent;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							list_add_tail(&hd->list, &hdmi_device_list);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (hd->cnt >= ARRAY_SIZE(hdmi_dai_name)) {
 | 
				
			||||||
 | 
							dev_err(dev, "too many hdmi codec are deteced\n");
 | 
				
			||||||
 | 
							return -EINVAL;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	hcp->hcd = *hcd;
 | 
						hcp->hcd = *hcd;
 | 
				
			||||||
	mutex_init(&hcp->current_stream_lock);
 | 
						mutex_init(&hcp->current_stream_lock);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -393,11 +451,14 @@ static int hdmi_codec_probe(struct platform_device *pdev)
 | 
				
			||||||
		hcp->daidrv[i] = hdmi_i2s_dai;
 | 
							hcp->daidrv[i] = hdmi_i2s_dai;
 | 
				
			||||||
		hcp->daidrv[i].playback.channels_max =
 | 
							hcp->daidrv[i].playback.channels_max =
 | 
				
			||||||
			hcd->max_i2s_channels;
 | 
								hcd->max_i2s_channels;
 | 
				
			||||||
 | 
							hcp->daidrv[i].name = hdmi_dai_name[hd->cnt++];
 | 
				
			||||||
		i++;
 | 
							i++;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (hcd->spdif)
 | 
						if (hcd->spdif) {
 | 
				
			||||||
		hcp->daidrv[i] = hdmi_spdif_dai;
 | 
							hcp->daidrv[i] = hdmi_spdif_dai;
 | 
				
			||||||
 | 
							hcp->daidrv[i].name = hdmi_dai_name[hd->cnt++];
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ret = snd_soc_register_codec(dev, &hdmi_codec, hcp->daidrv,
 | 
						ret = snd_soc_register_codec(dev, &hdmi_codec, hcp->daidrv,
 | 
				
			||||||
				     dai_count);
 | 
									     dai_count);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -380,12 +380,14 @@ static struct snd_soc_codec_driver rk3036_codec_driver = {
 | 
				
			||||||
	.probe			= rk3036_codec_probe,
 | 
						.probe			= rk3036_codec_probe,
 | 
				
			||||||
	.remove			= rk3036_codec_remove,
 | 
						.remove			= rk3036_codec_remove,
 | 
				
			||||||
	.set_bias_level		= rk3036_codec_set_bias_level,
 | 
						.set_bias_level		= rk3036_codec_set_bias_level,
 | 
				
			||||||
	.controls		= rk3036_codec_dapm_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls		= ARRAY_SIZE(rk3036_codec_dapm_controls),
 | 
							.controls		= rk3036_codec_dapm_controls,
 | 
				
			||||||
	.dapm_routes		= rk3036_codec_dapm_routes,
 | 
							.num_controls		= ARRAY_SIZE(rk3036_codec_dapm_controls),
 | 
				
			||||||
	.num_dapm_routes	= ARRAY_SIZE(rk3036_codec_dapm_routes),
 | 
							.dapm_routes		= rk3036_codec_dapm_routes,
 | 
				
			||||||
	.dapm_widgets		= rk3036_codec_dapm_widgets,
 | 
							.num_dapm_routes	= ARRAY_SIZE(rk3036_codec_dapm_routes),
 | 
				
			||||||
	.num_dapm_widgets	= ARRAY_SIZE(rk3036_codec_dapm_widgets),
 | 
							.dapm_widgets		= rk3036_codec_dapm_widgets,
 | 
				
			||||||
 | 
							.num_dapm_widgets	= ARRAY_SIZE(rk3036_codec_dapm_widgets),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct regmap_config rk3036_codec_regmap_config = {
 | 
					static const struct regmap_config rk3036_codec_regmap_config = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1089,12 +1089,14 @@ static struct snd_soc_dai_driver isabelle_dai[] = {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct snd_soc_codec_driver soc_codec_dev_isabelle = {
 | 
					static struct snd_soc_codec_driver soc_codec_dev_isabelle = {
 | 
				
			||||||
	.set_bias_level = isabelle_set_bias_level,
 | 
						.set_bias_level = isabelle_set_bias_level,
 | 
				
			||||||
	.controls = isabelle_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(isabelle_snd_controls),
 | 
							.controls		= isabelle_snd_controls,
 | 
				
			||||||
	.dapm_widgets = isabelle_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(isabelle_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(isabelle_dapm_widgets),
 | 
							.dapm_widgets		= isabelle_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = isabelle_intercon,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(isabelle_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(isabelle_intercon),
 | 
							.dapm_routes		= isabelle_intercon,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(isabelle_intercon),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
	.idle_bias_off = true,
 | 
						.idle_bias_off = true,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -298,12 +298,14 @@ static struct snd_soc_codec_driver soc_codec_dev_jz4740_codec = {
 | 
				
			||||||
	.set_bias_level = jz4740_codec_set_bias_level,
 | 
						.set_bias_level = jz4740_codec_set_bias_level,
 | 
				
			||||||
	.suspend_bias_off = true,
 | 
						.suspend_bias_off = true,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.controls = jz4740_codec_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(jz4740_codec_controls),
 | 
							.controls		= jz4740_codec_controls,
 | 
				
			||||||
	.dapm_widgets = jz4740_codec_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(jz4740_codec_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(jz4740_codec_dapm_widgets),
 | 
							.dapm_widgets		= jz4740_codec_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = jz4740_codec_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(jz4740_codec_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(jz4740_codec_dapm_routes),
 | 
							.dapm_routes		= jz4740_codec_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(jz4740_codec_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct regmap_config jz4740_codec_regmap_config = {
 | 
					static const struct regmap_config jz4740_codec_regmap_config = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1391,12 +1391,14 @@ static struct snd_soc_dai_driver lm49453_dai[] = {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct snd_soc_codec_driver soc_codec_dev_lm49453 = {
 | 
					static struct snd_soc_codec_driver soc_codec_dev_lm49453 = {
 | 
				
			||||||
	.set_bias_level = lm49453_set_bias_level,
 | 
						.set_bias_level = lm49453_set_bias_level,
 | 
				
			||||||
	.controls = lm49453_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(lm49453_snd_controls),
 | 
							.controls		= lm49453_snd_controls,
 | 
				
			||||||
	.dapm_widgets = lm49453_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(lm49453_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(lm49453_dapm_widgets),
 | 
							.dapm_widgets		= lm49453_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = lm49453_audio_map,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(lm49453_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(lm49453_audio_map),
 | 
							.dapm_routes		= lm49453_audio_map,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(lm49453_audio_map),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
	.idle_bias_off = true,
 | 
						.idle_bias_off = true,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1704,12 +1704,14 @@ static struct snd_soc_codec_driver soc_codec_dev_max98088 = {
 | 
				
			||||||
	.set_bias_level = max98088_set_bias_level,
 | 
						.set_bias_level = max98088_set_bias_level,
 | 
				
			||||||
	.suspend_bias_off = true,
 | 
						.suspend_bias_off = true,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.controls = max98088_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(max98088_snd_controls),
 | 
							.controls		= max98088_snd_controls,
 | 
				
			||||||
	.dapm_widgets = max98088_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(max98088_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(max98088_dapm_widgets),
 | 
							.dapm_widgets		= max98088_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = max98088_audio_map,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(max98088_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(max98088_audio_map),
 | 
							.dapm_routes		= max98088_audio_map,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(max98088_audio_map),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int max98088_i2c_probe(struct i2c_client *i2c,
 | 
					static int max98088_i2c_probe(struct i2c_client *i2c,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2108,12 +2108,14 @@ static struct snd_soc_codec_driver soc_codec_dev_max98095 = {
 | 
				
			||||||
	.suspend = max98095_suspend,
 | 
						.suspend = max98095_suspend,
 | 
				
			||||||
	.resume  = max98095_resume,
 | 
						.resume  = max98095_resume,
 | 
				
			||||||
	.set_bias_level = max98095_set_bias_level,
 | 
						.set_bias_level = max98095_set_bias_level,
 | 
				
			||||||
	.controls = max98095_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(max98095_snd_controls),
 | 
							.controls		= max98095_snd_controls,
 | 
				
			||||||
	.dapm_widgets	  = max98095_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(max98095_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(max98095_dapm_widgets),
 | 
							.dapm_widgets		= max98095_dapm_widgets,
 | 
				
			||||||
	.dapm_routes     = max98095_audio_map,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(max98095_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(max98095_audio_map),
 | 
							.dapm_routes		= max98095_audio_map,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(max98095_audio_map),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int max98095_i2c_probe(struct i2c_client *i2c,
 | 
					static int max98095_i2c_probe(struct i2c_client *i2c,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -74,10 +74,12 @@ static int max98357a_codec_probe(struct snd_soc_codec *codec)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct snd_soc_codec_driver max98357a_codec_driver = {
 | 
					static struct snd_soc_codec_driver max98357a_codec_driver = {
 | 
				
			||||||
	.probe			= max98357a_codec_probe,
 | 
						.probe			= max98357a_codec_probe,
 | 
				
			||||||
	.dapm_widgets		= max98357a_dapm_widgets,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_dapm_widgets	= ARRAY_SIZE(max98357a_dapm_widgets),
 | 
							.dapm_widgets		= max98357a_dapm_widgets,
 | 
				
			||||||
	.dapm_routes		= max98357a_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(max98357a_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes	= ARRAY_SIZE(max98357a_dapm_routes),
 | 
							.dapm_routes		= max98357a_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(max98357a_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct snd_soc_dai_ops max98357a_dai_ops = {
 | 
					static const struct snd_soc_dai_ops max98357a_dai_ops = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -306,12 +306,14 @@ static struct snd_soc_codec_driver soc_codec_dev_max9850 = {
 | 
				
			||||||
	.set_bias_level = max9850_set_bias_level,
 | 
						.set_bias_level = max9850_set_bias_level,
 | 
				
			||||||
	.suspend_bias_off = true,
 | 
						.suspend_bias_off = true,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.controls = max9850_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(max9850_controls),
 | 
							.controls		= max9850_controls,
 | 
				
			||||||
	.dapm_widgets = max9850_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(max9850_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(max9850_dapm_widgets),
 | 
							.dapm_widgets		= max9850_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = max9850_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(max9850_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(max9850_dapm_routes),
 | 
							.dapm_routes		= max9850_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(max9850_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int max9850_i2c_probe(struct i2c_client *i2c,
 | 
					static int max9850_i2c_probe(struct i2c_client *i2c,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -538,12 +538,14 @@ static struct snd_soc_codec_driver max9860_codec_driver = {
 | 
				
			||||||
	.set_bias_level = max9860_set_bias_level,
 | 
						.set_bias_level = max9860_set_bias_level,
 | 
				
			||||||
	.idle_bias_off = true,
 | 
						.idle_bias_off = true,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.controls = max9860_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(max9860_controls),
 | 
							.controls		= max9860_controls,
 | 
				
			||||||
	.dapm_widgets = max9860_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(max9860_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(max9860_dapm_widgets),
 | 
							.dapm_widgets		= max9860_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = max9860_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(max9860_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(max9860_dapm_routes),
 | 
							.dapm_routes		= max9860_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(max9860_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_PM
 | 
					#ifdef CONFIG_PM
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -417,12 +417,14 @@ static int max9867_probe(struct snd_soc_codec *codec)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct snd_soc_codec_driver max9867_codec = {
 | 
					static struct snd_soc_codec_driver max9867_codec = {
 | 
				
			||||||
	.probe = max9867_probe,
 | 
						.probe = max9867_probe,
 | 
				
			||||||
	.controls = max9867_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(max9867_snd_controls),
 | 
							.controls		= max9867_snd_controls,
 | 
				
			||||||
	.dapm_routes = max9867_audio_map,
 | 
							.num_controls		= ARRAY_SIZE(max9867_snd_controls),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(max9867_audio_map),
 | 
							.dapm_routes		= max9867_audio_map,
 | 
				
			||||||
	.dapm_widgets = max9867_dapm_widgets,
 | 
							.num_dapm_routes	= ARRAY_SIZE(max9867_audio_map),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(max9867_dapm_widgets),
 | 
							.dapm_widgets		= max9867_dapm_widgets,
 | 
				
			||||||
 | 
							.num_dapm_widgets	= ARRAY_SIZE(max9867_dapm_widgets),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static bool max9867_volatile_register(struct device *dev, unsigned int reg)
 | 
					static bool max9867_volatile_register(struct device *dev, unsigned int reg)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -540,12 +540,14 @@ static int max98925_probe(struct snd_soc_codec *codec)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct snd_soc_codec_driver soc_codec_dev_max98925 = {
 | 
					static const struct snd_soc_codec_driver soc_codec_dev_max98925 = {
 | 
				
			||||||
	.probe            = max98925_probe,
 | 
						.probe            = max98925_probe,
 | 
				
			||||||
	.controls = max98925_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(max98925_snd_controls),
 | 
							.controls		= max98925_snd_controls,
 | 
				
			||||||
	.dapm_routes = max98925_audio_map,
 | 
							.num_controls		= ARRAY_SIZE(max98925_snd_controls),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(max98925_audio_map),
 | 
							.dapm_routes		= max98925_audio_map,
 | 
				
			||||||
	.dapm_widgets = max98925_dapm_widgets,
 | 
							.num_dapm_routes	= ARRAY_SIZE(max98925_audio_map),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(max98925_dapm_widgets),
 | 
							.dapm_widgets		= max98925_dapm_widgets,
 | 
				
			||||||
 | 
							.num_dapm_widgets	= ARRAY_SIZE(max98925_dapm_widgets),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct regmap_config max98925_regmap = {
 | 
					static const struct regmap_config max98925_regmap = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -498,12 +498,14 @@ static int max98926_probe(struct snd_soc_codec *codec)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct snd_soc_codec_driver soc_codec_dev_max98926 = {
 | 
					static struct snd_soc_codec_driver soc_codec_dev_max98926 = {
 | 
				
			||||||
	.probe	= max98926_probe,
 | 
						.probe	= max98926_probe,
 | 
				
			||||||
	.controls = max98926_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(max98926_snd_controls),
 | 
							.controls		= max98926_snd_controls,
 | 
				
			||||||
	.dapm_routes = max98926_audio_map,
 | 
							.num_controls		= ARRAY_SIZE(max98926_snd_controls),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(max98926_audio_map),
 | 
							.dapm_routes		= max98926_audio_map,
 | 
				
			||||||
	.dapm_widgets = max98926_dapm_widgets,
 | 
							.num_dapm_routes	= ARRAY_SIZE(max98926_audio_map),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(max98926_dapm_widgets),
 | 
							.dapm_widgets		= max98926_dapm_widgets,
 | 
				
			||||||
 | 
							.num_dapm_widgets	= ARRAY_SIZE(max98926_dapm_widgets),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct regmap_config max98926_regmap = {
 | 
					static const struct regmap_config max98926_regmap = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -737,12 +737,14 @@ static struct snd_soc_codec_driver soc_codec_dev_mc13783 = {
 | 
				
			||||||
	.probe		= mc13783_probe,
 | 
						.probe		= mc13783_probe,
 | 
				
			||||||
	.remove		= mc13783_remove,
 | 
						.remove		= mc13783_remove,
 | 
				
			||||||
	.get_regmap	= mc13783_get_regmap,
 | 
						.get_regmap	= mc13783_get_regmap,
 | 
				
			||||||
	.controls	= mc13783_control_list,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls	= ARRAY_SIZE(mc13783_control_list),
 | 
							.controls		= mc13783_control_list,
 | 
				
			||||||
	.dapm_widgets	= mc13783_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(mc13783_control_list),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(mc13783_dapm_widgets),
 | 
							.dapm_widgets		= mc13783_dapm_widgets,
 | 
				
			||||||
	.dapm_routes	= mc13783_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(mc13783_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(mc13783_routes),
 | 
							.dapm_routes		= mc13783_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(mc13783_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int __init mc13783_codec_probe(struct platform_device *pdev)
 | 
					static int __init mc13783_codec_probe(struct platform_device *pdev)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -541,12 +541,14 @@ static struct snd_soc_codec_driver soc_codec_dev_ml26124 = {
 | 
				
			||||||
	.probe =	ml26124_probe,
 | 
						.probe =	ml26124_probe,
 | 
				
			||||||
	.set_bias_level = ml26124_set_bias_level,
 | 
						.set_bias_level = ml26124_set_bias_level,
 | 
				
			||||||
	.suspend_bias_off = true,
 | 
						.suspend_bias_off = true,
 | 
				
			||||||
	.dapm_widgets = ml26124_dapm_widgets,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(ml26124_dapm_widgets),
 | 
							.controls		= ml26124_snd_controls,
 | 
				
			||||||
	.dapm_routes = ml26124_intercon,
 | 
							.num_controls		= ARRAY_SIZE(ml26124_snd_controls),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(ml26124_intercon),
 | 
							.dapm_widgets		= ml26124_dapm_widgets,
 | 
				
			||||||
	.controls = ml26124_snd_controls,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(ml26124_dapm_widgets),
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(ml26124_snd_controls),
 | 
							.dapm_routes		= ml26124_intercon,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(ml26124_intercon),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct regmap_config ml26124_i2c_regmap = {
 | 
					static const struct regmap_config ml26124_i2c_regmap = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2256,12 +2256,14 @@ static struct snd_soc_codec_driver nau8825_codec_driver = {
 | 
				
			||||||
	.suspend = nau8825_suspend,
 | 
						.suspend = nau8825_suspend,
 | 
				
			||||||
	.resume = nau8825_resume,
 | 
						.resume = nau8825_resume,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.controls = nau8825_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(nau8825_controls),
 | 
							.controls		= nau8825_controls,
 | 
				
			||||||
	.dapm_widgets = nau8825_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(nau8825_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(nau8825_dapm_widgets),
 | 
							.dapm_widgets		= nau8825_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = nau8825_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(nau8825_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(nau8825_dapm_routes),
 | 
							.dapm_routes		= nau8825_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(nau8825_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void nau8825_reset_chip(struct regmap *regmap)
 | 
					static void nau8825_reset_chip(struct regmap *regmap)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -289,12 +289,14 @@ static const struct regmap_config pcm1681_regmap = {
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct snd_soc_codec_driver soc_codec_dev_pcm1681 = {
 | 
					static struct snd_soc_codec_driver soc_codec_dev_pcm1681 = {
 | 
				
			||||||
	.controls		= pcm1681_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls		= ARRAY_SIZE(pcm1681_controls),
 | 
							.controls		= pcm1681_controls,
 | 
				
			||||||
	.dapm_widgets		= pcm1681_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(pcm1681_controls),
 | 
				
			||||||
	.num_dapm_widgets	= ARRAY_SIZE(pcm1681_dapm_widgets),
 | 
							.dapm_widgets		= pcm1681_dapm_widgets,
 | 
				
			||||||
	.dapm_routes		= pcm1681_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(pcm1681_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes	= ARRAY_SIZE(pcm1681_dapm_routes),
 | 
							.dapm_routes		= pcm1681_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(pcm1681_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct i2c_device_id pcm1681_i2c_id[] = {
 | 
					static const struct i2c_device_id pcm1681_i2c_id[] = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -206,12 +206,14 @@ const struct regmap_config pcm179x_regmap_config = {
 | 
				
			||||||
EXPORT_SYMBOL_GPL(pcm179x_regmap_config);
 | 
					EXPORT_SYMBOL_GPL(pcm179x_regmap_config);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct snd_soc_codec_driver soc_codec_dev_pcm179x = {
 | 
					static struct snd_soc_codec_driver soc_codec_dev_pcm179x = {
 | 
				
			||||||
	.controls		= pcm179x_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls		= ARRAY_SIZE(pcm179x_controls),
 | 
							.controls		= pcm179x_controls,
 | 
				
			||||||
	.dapm_widgets		= pcm179x_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(pcm179x_controls),
 | 
				
			||||||
	.num_dapm_widgets	= ARRAY_SIZE(pcm179x_dapm_widgets),
 | 
							.dapm_widgets		= pcm179x_dapm_widgets,
 | 
				
			||||||
	.dapm_routes		= pcm179x_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(pcm179x_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes	= ARRAY_SIZE(pcm179x_dapm_routes),
 | 
							.dapm_routes		= pcm179x_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(pcm179x_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int pcm179x_common_init(struct device *dev, struct regmap *regmap)
 | 
					int pcm179x_common_init(struct device *dev, struct regmap *regmap)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -99,10 +99,12 @@ static struct snd_soc_dai_driver pcm3008_dai = {
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct snd_soc_codec_driver soc_codec_dev_pcm3008 = {
 | 
					static struct snd_soc_codec_driver soc_codec_dev_pcm3008 = {
 | 
				
			||||||
	.dapm_widgets = pcm3008_dapm_widgets,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(pcm3008_dapm_widgets),
 | 
							.dapm_widgets		= pcm3008_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = pcm3008_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(pcm3008_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(pcm3008_dapm_routes),
 | 
							.dapm_routes		= pcm3008_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(pcm3008_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int pcm3008_codec_probe(struct platform_device *pdev)
 | 
					static int pcm3008_codec_probe(struct platform_device *pdev)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -599,12 +599,14 @@ EXPORT_SYMBOL_GPL(pcm3168a_regmap);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct snd_soc_codec_driver pcm3168a_driver = {
 | 
					static const struct snd_soc_codec_driver pcm3168a_driver = {
 | 
				
			||||||
	.idle_bias_off = true,
 | 
						.idle_bias_off = true,
 | 
				
			||||||
	.controls = pcm3168a_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(pcm3168a_snd_controls),
 | 
							.controls		= pcm3168a_snd_controls,
 | 
				
			||||||
	.dapm_widgets = pcm3168a_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(pcm3168a_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(pcm3168a_dapm_widgets),
 | 
							.dapm_widgets		= pcm3168a_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = pcm3168a_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(pcm3168a_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(pcm3168a_dapm_routes)
 | 
							.dapm_routes		= pcm3168a_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(pcm3168a_dapm_routes)
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int pcm3168a_probe(struct device *dev, struct regmap *regmap)
 | 
					int pcm3168a_probe(struct device *dev, struct regmap *regmap)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1348,12 +1348,14 @@ static struct snd_soc_codec_driver pcm512x_codec_driver = {
 | 
				
			||||||
	.set_bias_level = pcm512x_set_bias_level,
 | 
						.set_bias_level = pcm512x_set_bias_level,
 | 
				
			||||||
	.idle_bias_off = true,
 | 
						.idle_bias_off = true,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.controls = pcm512x_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(pcm512x_controls),
 | 
							.controls		= pcm512x_controls,
 | 
				
			||||||
	.dapm_widgets = pcm512x_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(pcm512x_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(pcm512x_dapm_widgets),
 | 
							.dapm_widgets		= pcm512x_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = pcm512x_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(pcm512x_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(pcm512x_dapm_routes),
 | 
							.dapm_routes		= pcm512x_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(pcm512x_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct regmap_range_cfg pcm512x_range = {
 | 
					static const struct regmap_range_cfg pcm512x_range = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1053,12 +1053,14 @@ static struct snd_soc_codec_driver soc_codec_dev_rt286 = {
 | 
				
			||||||
	.resume = rt286_resume,
 | 
						.resume = rt286_resume,
 | 
				
			||||||
	.set_bias_level = rt286_set_bias_level,
 | 
						.set_bias_level = rt286_set_bias_level,
 | 
				
			||||||
	.idle_bias_off = true,
 | 
						.idle_bias_off = true,
 | 
				
			||||||
	.controls = rt286_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(rt286_snd_controls),
 | 
							.controls		= rt286_snd_controls,
 | 
				
			||||||
	.dapm_widgets = rt286_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(rt286_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(rt286_dapm_widgets),
 | 
							.dapm_widgets		= rt286_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = rt286_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(rt286_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(rt286_dapm_routes),
 | 
							.dapm_routes		= rt286_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(rt286_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct regmap_config rt286_regmap = {
 | 
					static const struct regmap_config rt286_regmap = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1095,12 +1095,14 @@ static struct snd_soc_codec_driver soc_codec_dev_rt298 = {
 | 
				
			||||||
	.resume = rt298_resume,
 | 
						.resume = rt298_resume,
 | 
				
			||||||
	.set_bias_level = rt298_set_bias_level,
 | 
						.set_bias_level = rt298_set_bias_level,
 | 
				
			||||||
	.idle_bias_off = true,
 | 
						.idle_bias_off = true,
 | 
				
			||||||
	.controls = rt298_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(rt298_snd_controls),
 | 
							.controls		= rt298_snd_controls,
 | 
				
			||||||
	.dapm_widgets = rt298_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(rt298_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(rt298_dapm_widgets),
 | 
							.dapm_widgets		= rt298_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = rt298_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(rt298_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(rt298_dapm_routes),
 | 
							.dapm_routes		= rt298_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(rt298_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct regmap_config rt298_regmap = {
 | 
					static const struct regmap_config rt298_regmap = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1023,12 +1023,14 @@ static struct snd_soc_codec_driver soc_codec_dev_rt5514 = {
 | 
				
			||||||
	.probe = rt5514_probe,
 | 
						.probe = rt5514_probe,
 | 
				
			||||||
	.idle_bias_off = true,
 | 
						.idle_bias_off = true,
 | 
				
			||||||
	.set_bias_level = rt5514_set_bias_level,
 | 
						.set_bias_level = rt5514_set_bias_level,
 | 
				
			||||||
	.controls = rt5514_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(rt5514_snd_controls),
 | 
							.controls		= rt5514_snd_controls,
 | 
				
			||||||
	.dapm_widgets = rt5514_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(rt5514_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(rt5514_dapm_widgets),
 | 
							.dapm_widgets		= rt5514_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = rt5514_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(rt5514_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(rt5514_dapm_routes),
 | 
							.dapm_routes		= rt5514_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(rt5514_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct regmap_config rt5514_i2c_regmap = {
 | 
					static const struct regmap_config rt5514_i2c_regmap = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1302,12 +1302,14 @@ static struct snd_soc_codec_driver soc_codec_dev_rt5616 = {
 | 
				
			||||||
	.resume = rt5616_resume,
 | 
						.resume = rt5616_resume,
 | 
				
			||||||
	.set_bias_level = rt5616_set_bias_level,
 | 
						.set_bias_level = rt5616_set_bias_level,
 | 
				
			||||||
	.idle_bias_off = true,
 | 
						.idle_bias_off = true,
 | 
				
			||||||
	.controls = rt5616_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(rt5616_snd_controls),
 | 
							.controls		= rt5616_snd_controls,
 | 
				
			||||||
	.dapm_widgets = rt5616_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(rt5616_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(rt5616_dapm_widgets),
 | 
							.dapm_widgets		= rt5616_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = rt5616_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(rt5616_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(rt5616_dapm_routes),
 | 
							.dapm_routes		= rt5616_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(rt5616_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct regmap_config rt5616_regmap = {
 | 
					static const struct regmap_config rt5616_regmap = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1657,12 +1657,14 @@ static struct snd_soc_codec_driver soc_codec_dev_rt5631 = {
 | 
				
			||||||
	.probe = rt5631_probe,
 | 
						.probe = rt5631_probe,
 | 
				
			||||||
	.set_bias_level = rt5631_set_bias_level,
 | 
						.set_bias_level = rt5631_set_bias_level,
 | 
				
			||||||
	.suspend_bias_off = true,
 | 
						.suspend_bias_off = true,
 | 
				
			||||||
	.controls = rt5631_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(rt5631_snd_controls),
 | 
							.controls		= rt5631_snd_controls,
 | 
				
			||||||
	.dapm_widgets = rt5631_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(rt5631_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(rt5631_dapm_widgets),
 | 
							.dapm_widgets		= rt5631_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = rt5631_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(rt5631_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(rt5631_dapm_routes),
 | 
							.dapm_routes		= rt5631_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(rt5631_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct i2c_device_id rt5631_i2c_id[] = {
 | 
					static const struct i2c_device_id rt5631_i2c_id[] = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2264,12 +2264,14 @@ static struct snd_soc_codec_driver soc_codec_dev_rt5640 = {
 | 
				
			||||||
	.resume = rt5640_resume,
 | 
						.resume = rt5640_resume,
 | 
				
			||||||
	.set_bias_level = rt5640_set_bias_level,
 | 
						.set_bias_level = rt5640_set_bias_level,
 | 
				
			||||||
	.idle_bias_off = true,
 | 
						.idle_bias_off = true,
 | 
				
			||||||
	.controls = rt5640_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(rt5640_snd_controls),
 | 
							.controls		= rt5640_snd_controls,
 | 
				
			||||||
	.dapm_widgets = rt5640_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(rt5640_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(rt5640_dapm_widgets),
 | 
							.dapm_widgets		= rt5640_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = rt5640_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(rt5640_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(rt5640_dapm_routes),
 | 
							.dapm_routes		= rt5640_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(rt5640_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct regmap_config rt5640_regmap = {
 | 
					static const struct regmap_config rt5640_regmap = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3484,12 +3484,14 @@ static struct snd_soc_codec_driver soc_codec_dev_rt5645 = {
 | 
				
			||||||
	.resume = rt5645_resume,
 | 
						.resume = rt5645_resume,
 | 
				
			||||||
	.set_bias_level = rt5645_set_bias_level,
 | 
						.set_bias_level = rt5645_set_bias_level,
 | 
				
			||||||
	.idle_bias_off = true,
 | 
						.idle_bias_off = true,
 | 
				
			||||||
	.controls = rt5645_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(rt5645_snd_controls),
 | 
							.controls		= rt5645_snd_controls,
 | 
				
			||||||
	.dapm_widgets = rt5645_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(rt5645_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(rt5645_dapm_widgets),
 | 
							.dapm_widgets		= rt5645_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = rt5645_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(rt5645_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(rt5645_dapm_routes),
 | 
							.dapm_routes		= rt5645_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(rt5645_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct regmap_config rt5645_regmap = {
 | 
					static const struct regmap_config rt5645_regmap = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1712,12 +1712,14 @@ static struct snd_soc_codec_driver soc_codec_dev_rt5651 = {
 | 
				
			||||||
	.resume = rt5651_resume,
 | 
						.resume = rt5651_resume,
 | 
				
			||||||
	.set_bias_level = rt5651_set_bias_level,
 | 
						.set_bias_level = rt5651_set_bias_level,
 | 
				
			||||||
	.idle_bias_off = true,
 | 
						.idle_bias_off = true,
 | 
				
			||||||
	.controls = rt5651_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(rt5651_snd_controls),
 | 
							.controls		= rt5651_snd_controls,
 | 
				
			||||||
	.dapm_widgets = rt5651_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(rt5651_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(rt5651_dapm_widgets),
 | 
							.dapm_widgets		= rt5651_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = rt5651_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(rt5651_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(rt5651_dapm_routes),
 | 
							.dapm_routes		= rt5651_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(rt5651_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct regmap_config rt5651_regmap = {
 | 
					static const struct regmap_config rt5651_regmap = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3722,12 +3722,14 @@ static struct snd_soc_codec_driver soc_codec_dev_rt5659 = {
 | 
				
			||||||
	.resume = rt5659_resume,
 | 
						.resume = rt5659_resume,
 | 
				
			||||||
	.set_bias_level = rt5659_set_bias_level,
 | 
						.set_bias_level = rt5659_set_bias_level,
 | 
				
			||||||
	.idle_bias_off = true,
 | 
						.idle_bias_off = true,
 | 
				
			||||||
	.controls = rt5659_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(rt5659_snd_controls),
 | 
							.controls		= rt5659_snd_controls,
 | 
				
			||||||
	.dapm_widgets = rt5659_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(rt5659_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(rt5659_dapm_widgets),
 | 
							.dapm_widgets		= rt5659_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = rt5659_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(rt5659_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(rt5659_dapm_routes),
 | 
							.dapm_routes		= rt5659_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(rt5659_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2777,12 +2777,14 @@ static struct snd_soc_codec_driver soc_codec_dev_rt5670 = {
 | 
				
			||||||
	.resume = rt5670_resume,
 | 
						.resume = rt5670_resume,
 | 
				
			||||||
	.set_bias_level = rt5670_set_bias_level,
 | 
						.set_bias_level = rt5670_set_bias_level,
 | 
				
			||||||
	.idle_bias_off = true,
 | 
						.idle_bias_off = true,
 | 
				
			||||||
	.controls = rt5670_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(rt5670_snd_controls),
 | 
							.controls		= rt5670_snd_controls,
 | 
				
			||||||
	.dapm_widgets = rt5670_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(rt5670_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(rt5670_dapm_widgets),
 | 
							.dapm_widgets		= rt5670_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = rt5670_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(rt5670_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(rt5670_dapm_routes),
 | 
							.dapm_routes		= rt5670_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(rt5670_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct regmap_config rt5670_regmap = {
 | 
					static const struct regmap_config rt5670_regmap = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4974,12 +4974,14 @@ static struct snd_soc_codec_driver soc_codec_dev_rt5677 = {
 | 
				
			||||||
	.resume = rt5677_resume,
 | 
						.resume = rt5677_resume,
 | 
				
			||||||
	.set_bias_level = rt5677_set_bias_level,
 | 
						.set_bias_level = rt5677_set_bias_level,
 | 
				
			||||||
	.idle_bias_off = true,
 | 
						.idle_bias_off = true,
 | 
				
			||||||
	.controls = rt5677_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(rt5677_snd_controls),
 | 
							.controls		= rt5677_snd_controls,
 | 
				
			||||||
	.dapm_widgets = rt5677_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(rt5677_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(rt5677_dapm_widgets),
 | 
							.dapm_widgets		= rt5677_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = rt5677_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(rt5677_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(rt5677_dapm_routes),
 | 
							.dapm_routes		= rt5677_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(rt5677_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct regmap_config rt5677_regmap_physical = {
 | 
					static const struct regmap_config rt5677_regmap_physical = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1151,12 +1151,14 @@ static struct snd_soc_codec_driver sgtl5000_driver = {
 | 
				
			||||||
	.remove = sgtl5000_remove,
 | 
						.remove = sgtl5000_remove,
 | 
				
			||||||
	.set_bias_level = sgtl5000_set_bias_level,
 | 
						.set_bias_level = sgtl5000_set_bias_level,
 | 
				
			||||||
	.suspend_bias_off = true,
 | 
						.suspend_bias_off = true,
 | 
				
			||||||
	.controls = sgtl5000_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(sgtl5000_snd_controls),
 | 
							.controls		= sgtl5000_snd_controls,
 | 
				
			||||||
	.dapm_widgets = sgtl5000_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(sgtl5000_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(sgtl5000_dapm_widgets),
 | 
							.dapm_widgets		= sgtl5000_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = sgtl5000_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(sgtl5000_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(sgtl5000_dapm_routes),
 | 
							.dapm_routes		= sgtl5000_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(sgtl5000_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct regmap_config sgtl5000_regmap = {
 | 
					static const struct regmap_config sgtl5000_regmap = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -238,10 +238,12 @@ static struct regmap *si476x_get_regmap(struct device *dev)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct snd_soc_codec_driver soc_codec_dev_si476x = {
 | 
					static struct snd_soc_codec_driver soc_codec_dev_si476x = {
 | 
				
			||||||
	.get_regmap = si476x_get_regmap,
 | 
						.get_regmap = si476x_get_regmap,
 | 
				
			||||||
	.dapm_widgets = si476x_dapm_widgets,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(si476x_dapm_widgets),
 | 
							.dapm_widgets		= si476x_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = si476x_dapm_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(si476x_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(si476x_dapm_routes),
 | 
							.dapm_routes		= si476x_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(si476x_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int si476x_platform_probe(struct platform_device *pdev)
 | 
					static int si476x_platform_probe(struct platform_device *pdev)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -888,12 +888,14 @@ static struct snd_soc_codec_driver sn95031_codec = {
 | 
				
			||||||
	.set_bias_level	= sn95031_set_vaud_bias,
 | 
						.set_bias_level	= sn95031_set_vaud_bias,
 | 
				
			||||||
	.idle_bias_off	= true,
 | 
						.idle_bias_off	= true,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.controls	= sn95031_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls	= ARRAY_SIZE(sn95031_snd_controls),
 | 
							.controls		= sn95031_snd_controls,
 | 
				
			||||||
	.dapm_widgets	= sn95031_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(sn95031_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets	= ARRAY_SIZE(sn95031_dapm_widgets),
 | 
							.dapm_widgets		= sn95031_dapm_widgets,
 | 
				
			||||||
	.dapm_routes	= sn95031_audio_map,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(sn95031_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes	= ARRAY_SIZE(sn95031_audio_map),
 | 
							.dapm_routes		= sn95031_audio_map,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(sn95031_audio_map),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int sn95031_device_probe(struct platform_device *pdev)
 | 
					static int sn95031_device_probe(struct platform_device *pdev)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -38,10 +38,12 @@ static const struct snd_soc_dapm_route dir_routes[] = {
 | 
				
			||||||
			SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE)
 | 
								SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct snd_soc_codec_driver soc_codec_spdif_dir = {
 | 
					static struct snd_soc_codec_driver soc_codec_spdif_dir = {
 | 
				
			||||||
	.dapm_widgets = dir_widgets,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(dir_widgets),
 | 
							.dapm_widgets		= dir_widgets,
 | 
				
			||||||
	.dapm_routes = dir_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(dir_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(dir_routes),
 | 
							.dapm_routes		= dir_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(dir_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct snd_soc_dai_driver dir_stub_dai = {
 | 
					static struct snd_soc_dai_driver dir_stub_dai = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -38,10 +38,12 @@ static const struct snd_soc_dapm_route dit_routes[] = {
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct snd_soc_codec_driver soc_codec_spdif_dit = {
 | 
					static struct snd_soc_codec_driver soc_codec_spdif_dit = {
 | 
				
			||||||
	.dapm_widgets = dit_widgets,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(dit_widgets),
 | 
							.dapm_widgets		= dit_widgets,
 | 
				
			||||||
	.dapm_routes = dit_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(dit_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(dit_routes),
 | 
							.dapm_routes		= dit_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(dit_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct snd_soc_dai_driver dit_stub_dai = {
 | 
					static struct snd_soc_dai_driver dit_stub_dai = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -715,12 +715,14 @@ static struct snd_soc_codec_driver ssm2518_codec_driver = {
 | 
				
			||||||
	.set_sysclk = ssm2518_set_sysclk,
 | 
						.set_sysclk = ssm2518_set_sysclk,
 | 
				
			||||||
	.idle_bias_off = true,
 | 
						.idle_bias_off = true,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.controls = ssm2518_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(ssm2518_snd_controls),
 | 
							.controls		= ssm2518_snd_controls,
 | 
				
			||||||
	.dapm_widgets = ssm2518_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(ssm2518_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(ssm2518_dapm_widgets),
 | 
							.dapm_widgets		= ssm2518_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = ssm2518_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(ssm2518_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(ssm2518_routes),
 | 
							.dapm_routes		= ssm2518_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(ssm2518_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct regmap_config ssm2518_regmap_config = {
 | 
					static const struct regmap_config ssm2518_regmap_config = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -597,12 +597,14 @@ static struct snd_soc_codec_driver soc_codec_dev_ssm2602 = {
 | 
				
			||||||
	.set_bias_level = ssm2602_set_bias_level,
 | 
						.set_bias_level = ssm2602_set_bias_level,
 | 
				
			||||||
	.suspend_bias_off = true,
 | 
						.suspend_bias_off = true,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.controls = ssm260x_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(ssm260x_snd_controls),
 | 
							.controls		= ssm260x_snd_controls,
 | 
				
			||||||
	.dapm_widgets = ssm260x_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(ssm260x_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(ssm260x_dapm_widgets),
 | 
							.dapm_widgets		= ssm260x_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = ssm260x_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(ssm260x_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(ssm260x_routes),
 | 
							.dapm_routes		= ssm260x_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(ssm260x_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static bool ssm2602_register_volatile(struct device *dev, unsigned int reg)
 | 
					static bool ssm2602_register_volatile(struct device *dev, unsigned int reg)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -421,12 +421,14 @@ static struct snd_soc_codec_driver ssm4567_codec_driver = {
 | 
				
			||||||
	.set_bias_level = ssm4567_set_bias_level,
 | 
						.set_bias_level = ssm4567_set_bias_level,
 | 
				
			||||||
	.idle_bias_off = true,
 | 
						.idle_bias_off = true,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.controls = ssm4567_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(ssm4567_snd_controls),
 | 
							.controls		= ssm4567_snd_controls,
 | 
				
			||||||
	.dapm_widgets = ssm4567_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(ssm4567_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(ssm4567_dapm_widgets),
 | 
							.dapm_widgets		= ssm4567_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = ssm4567_routes,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(ssm4567_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(ssm4567_routes),
 | 
							.dapm_routes		= ssm4567_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(ssm4567_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct regmap_config ssm4567_regmap_config = {
 | 
					static const struct regmap_config ssm4567_regmap_config = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -991,12 +991,14 @@ static const struct snd_soc_codec_driver sta32x_codec = {
 | 
				
			||||||
	.remove =		sta32x_remove,
 | 
						.remove =		sta32x_remove,
 | 
				
			||||||
	.set_bias_level =	sta32x_set_bias_level,
 | 
						.set_bias_level =	sta32x_set_bias_level,
 | 
				
			||||||
	.suspend_bias_off =	true,
 | 
						.suspend_bias_off =	true,
 | 
				
			||||||
	.controls =		sta32x_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls =		ARRAY_SIZE(sta32x_snd_controls),
 | 
							.controls =		sta32x_snd_controls,
 | 
				
			||||||
	.dapm_widgets =		sta32x_dapm_widgets,
 | 
							.num_controls =		ARRAY_SIZE(sta32x_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets =	ARRAY_SIZE(sta32x_dapm_widgets),
 | 
							.dapm_widgets =		sta32x_dapm_widgets,
 | 
				
			||||||
	.dapm_routes =		sta32x_dapm_routes,
 | 
							.num_dapm_widgets =	ARRAY_SIZE(sta32x_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes =	ARRAY_SIZE(sta32x_dapm_routes),
 | 
							.dapm_routes =		sta32x_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes =	ARRAY_SIZE(sta32x_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct regmap_config sta32x_regmap = {
 | 
					static const struct regmap_config sta32x_regmap = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1057,12 +1057,14 @@ static const struct snd_soc_codec_driver sta350_codec = {
 | 
				
			||||||
	.remove =		sta350_remove,
 | 
						.remove =		sta350_remove,
 | 
				
			||||||
	.set_bias_level =	sta350_set_bias_level,
 | 
						.set_bias_level =	sta350_set_bias_level,
 | 
				
			||||||
	.suspend_bias_off =	true,
 | 
						.suspend_bias_off =	true,
 | 
				
			||||||
	.controls =		sta350_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls =		ARRAY_SIZE(sta350_snd_controls),
 | 
							.controls =		sta350_snd_controls,
 | 
				
			||||||
	.dapm_widgets =		sta350_dapm_widgets,
 | 
							.num_controls =		ARRAY_SIZE(sta350_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets =	ARRAY_SIZE(sta350_dapm_widgets),
 | 
							.dapm_widgets =		sta350_dapm_widgets,
 | 
				
			||||||
	.dapm_routes =		sta350_dapm_routes,
 | 
							.num_dapm_widgets =	ARRAY_SIZE(sta350_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes =	ARRAY_SIZE(sta350_dapm_routes),
 | 
							.dapm_routes =		sta350_dapm_routes,
 | 
				
			||||||
 | 
							.num_dapm_routes =	ARRAY_SIZE(sta350_dapm_routes),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct regmap_config sta350_regmap = {
 | 
					static const struct regmap_config sta350_regmap = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -317,8 +317,10 @@ static const struct snd_soc_codec_driver sta529_codec_driver = {
 | 
				
			||||||
	.set_bias_level = sta529_set_bias_level,
 | 
						.set_bias_level = sta529_set_bias_level,
 | 
				
			||||||
	.suspend_bias_off = true,
 | 
						.suspend_bias_off = true,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.controls = sta529_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(sta529_snd_controls),
 | 
							.controls		= sta529_snd_controls,
 | 
				
			||||||
 | 
							.num_controls		= ARRAY_SIZE(sta529_snd_controls),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct regmap_config sta529_regmap = {
 | 
					static const struct regmap_config sta529_regmap = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -320,8 +320,10 @@ static int stac9766_codec_remove(struct snd_soc_codec *codec)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static struct snd_soc_codec_driver soc_codec_dev_stac9766 = {
 | 
					static struct snd_soc_codec_driver soc_codec_dev_stac9766 = {
 | 
				
			||||||
	.controls = stac9766_snd_ac97_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(stac9766_snd_ac97_controls),
 | 
							.controls		= stac9766_snd_ac97_controls,
 | 
				
			||||||
 | 
							.num_controls		= ARRAY_SIZE(stac9766_snd_ac97_controls),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
	.write = stac9766_ac97_write,
 | 
						.write = stac9766_ac97_write,
 | 
				
			||||||
	.read = stac9766_ac97_read,
 | 
						.read = stac9766_ac97_read,
 | 
				
			||||||
	.set_bias_level = stac9766_set_bias_level,
 | 
						.set_bias_level = stac9766_set_bias_level,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -591,11 +591,11 @@ static int sti_sas_driver_probe(struct platform_device *pdev)
 | 
				
			||||||
	sti_sas_dai[STI_SAS_DAI_ANALOG_OUT].ops = drvdata->dev_data->dac_ops;
 | 
						sti_sas_dai[STI_SAS_DAI_ANALOG_OUT].ops = drvdata->dev_data->dac_ops;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* Set dapms*/
 | 
						/* Set dapms*/
 | 
				
			||||||
	sti_sas_driver.dapm_widgets = drvdata->dev_data->dapm_widgets;
 | 
						sti_sas_driver.component_driver.dapm_widgets = drvdata->dev_data->dapm_widgets;
 | 
				
			||||||
	sti_sas_driver.num_dapm_widgets = drvdata->dev_data->num_dapm_widgets;
 | 
						sti_sas_driver.component_driver.num_dapm_widgets = drvdata->dev_data->num_dapm_widgets;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	sti_sas_driver.dapm_routes = drvdata->dev_data->dapm_routes;
 | 
						sti_sas_driver.component_driver.dapm_routes = drvdata->dev_data->dapm_routes;
 | 
				
			||||||
	sti_sas_driver.num_dapm_routes = drvdata->dev_data->num_dapm_routes;
 | 
						sti_sas_driver.component_driver.num_dapm_routes = drvdata->dev_data->num_dapm_routes;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* Store context */
 | 
						/* Store context */
 | 
				
			||||||
	dev_set_drvdata(&pdev->dev, drvdata);
 | 
						dev_set_drvdata(&pdev->dev, drvdata);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -667,12 +667,14 @@ static struct snd_soc_codec_driver soc_codec_dev_tas2552 = {
 | 
				
			||||||
	.resume = tas2552_resume,
 | 
						.resume = tas2552_resume,
 | 
				
			||||||
	.ignore_pmdown_time = true,
 | 
						.ignore_pmdown_time = true,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.controls = tas2552_snd_controls,
 | 
						.component_driver = {
 | 
				
			||||||
	.num_controls = ARRAY_SIZE(tas2552_snd_controls),
 | 
							.controls		= tas2552_snd_controls,
 | 
				
			||||||
	.dapm_widgets = tas2552_dapm_widgets,
 | 
							.num_controls		= ARRAY_SIZE(tas2552_snd_controls),
 | 
				
			||||||
	.num_dapm_widgets = ARRAY_SIZE(tas2552_dapm_widgets),
 | 
							.dapm_widgets		= tas2552_dapm_widgets,
 | 
				
			||||||
	.dapm_routes = tas2552_audio_map,
 | 
							.num_dapm_widgets	= ARRAY_SIZE(tas2552_dapm_widgets),
 | 
				
			||||||
	.num_dapm_routes = ARRAY_SIZE(tas2552_audio_map),
 | 
							.dapm_routes		= tas2552_audio_map,
 | 
				
			||||||
 | 
							.num_dapm_routes	= ARRAY_SIZE(tas2552_audio_map),
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct regmap_config tas2552_regmap_config = {
 | 
					static const struct regmap_config tas2552_regmap_config = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
Some files were not shown because too many files have changed in this diff Show more
		Loading…
	
		Reference in a new issue