diff options
Diffstat (limited to 'sound/soc/codecs/adau1761.c')
| -rw-r--r-- | sound/soc/codecs/adau1761.c | 88 | 
1 files changed, 45 insertions, 43 deletions
diff --git a/sound/soc/codecs/adau1761.c b/sound/soc/codecs/adau1761.c index 3bc3cc559dde..be136e981653 100644 --- a/sound/soc/codecs/adau1761.c +++ b/sound/soc/codecs/adau1761.c @@ -255,8 +255,8 @@ static const struct snd_kcontrol_new adau1761_input_mux_control =  static int adau1761_dejitter_fixup(struct snd_soc_dapm_widget *w,  	struct snd_kcontrol *kcontrol, int event)  { -	struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); -	struct adau *adau = snd_soc_codec_get_drvdata(codec); +	struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm); +	struct adau *adau = snd_soc_component_get_drvdata(component);  	/* After any power changes have been made the dejitter circuit  	 * has to be reinitialized. */ @@ -445,10 +445,10 @@ static const struct snd_soc_dapm_route adau1761_dapm_routes[] = {  	{ "Digital Clock 1", NULL, "SYSCLK" },  }; -static int adau1761_set_bias_level(struct snd_soc_codec *codec, +static int adau1761_set_bias_level(struct snd_soc_component *component,  				 enum snd_soc_bias_level level)  { -	struct adau *adau = snd_soc_codec_get_drvdata(codec); +	struct adau *adau = snd_soc_component_get_drvdata(component);  	switch (level) {  	case SND_SOC_BIAS_ON: @@ -460,7 +460,7 @@ static int adau1761_set_bias_level(struct snd_soc_codec *codec,  		regmap_update_bits(adau->regmap, ADAU17X1_CLOCK_CONTROL,  			ADAU17X1_CLOCK_CONTROL_SYSCLK_EN,  			ADAU17X1_CLOCK_CONTROL_SYSCLK_EN); -		if (snd_soc_codec_get_bias_level(codec) == SND_SOC_BIAS_OFF) +		if (snd_soc_component_get_bias_level(component) == SND_SOC_BIAS_OFF)  			regcache_sync(adau->regmap);  		break;  	case SND_SOC_BIAS_OFF: @@ -474,9 +474,9 @@ static int adau1761_set_bias_level(struct snd_soc_codec *codec,  }  static enum adau1761_output_mode adau1761_get_lineout_mode( -	struct snd_soc_codec *codec) +	struct snd_soc_component *component)  { -	struct adau1761_platform_data *pdata = codec->dev->platform_data; +	struct adau1761_platform_data *pdata = component->dev->platform_data;  	if (pdata)  		return pdata->lineout_mode; @@ -484,11 +484,11 @@ static enum adau1761_output_mode adau1761_get_lineout_mode(  	return ADAU1761_OUTPUT_MODE_LINE;  } -static int adau1761_setup_digmic_jackdetect(struct snd_soc_codec *codec) +static int adau1761_setup_digmic_jackdetect(struct snd_soc_component *component)  { -	struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec); -	struct adau1761_platform_data *pdata = codec->dev->platform_data; -	struct adau *adau = snd_soc_codec_get_drvdata(codec); +	struct snd_soc_dapm_context *dapm = snd_soc_component_get_dapm(component); +	struct adau1761_platform_data *pdata = component->dev->platform_data; +	struct adau *adau = snd_soc_component_get_drvdata(component);  	enum adau1761_digmic_jackdet_pin_mode mode;  	unsigned int val = 0;  	int ret; @@ -513,7 +513,7 @@ static int adau1761_setup_digmic_jackdetect(struct snd_soc_codec *codec)  		if (pdata->jackdetect_active_low)  			val |= ADAU1761_DIGMIC_JACKDETECT_ACTIVE_LOW; -		ret = snd_soc_add_codec_controls(codec, +		ret = snd_soc_add_component_controls(component,  			adau1761_jack_detect_controls,  			ARRAY_SIZE(adau1761_jack_detect_controls));  		if (ret) @@ -546,11 +546,11 @@ static int adau1761_setup_digmic_jackdetect(struct snd_soc_codec *codec)  	return 0;  } -static int adau1761_setup_headphone_mode(struct snd_soc_codec *codec) +static int adau1761_setup_headphone_mode(struct snd_soc_component *component)  { -	struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec); -	struct adau *adau = snd_soc_codec_get_drvdata(codec); -	struct adau1761_platform_data *pdata = codec->dev->platform_data; +	struct snd_soc_dapm_context *dapm = snd_soc_component_get_dapm(component); +	struct adau *adau = snd_soc_component_get_drvdata(component); +	struct adau1761_platform_data *pdata = component->dev->platform_data;  	enum adau1761_output_mode mode;  	int ret; @@ -588,7 +588,7 @@ static int adau1761_setup_headphone_mode(struct snd_soc_codec *codec)  			adau1761_capless_dapm_routes,  			ARRAY_SIZE(adau1761_capless_dapm_routes));  	} else { -		ret = snd_soc_add_codec_controls(codec, adau1761_mono_controls, +		ret = snd_soc_add_component_controls(component, adau1761_mono_controls,  			ARRAY_SIZE(adau1761_mono_controls));  		if (ret)  			return ret; @@ -640,14 +640,14 @@ static bool adau1761_readable_register(struct device *dev, unsigned int reg)  	return adau17x1_readable_register(dev, reg);  } -static int adau1761_codec_probe(struct snd_soc_codec *codec) +static int adau1761_component_probe(struct snd_soc_component *component)  { -	struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec); -	struct adau1761_platform_data *pdata = codec->dev->platform_data; -	struct adau *adau = snd_soc_codec_get_drvdata(codec); +	struct snd_soc_dapm_context *dapm = snd_soc_component_get_dapm(component); +	struct adau1761_platform_data *pdata = component->dev->platform_data; +	struct adau *adau = snd_soc_component_get_drvdata(component);  	int ret; -	ret = adau17x1_add_widgets(codec); +	ret = adau17x1_add_widgets(component);  	if (ret < 0)  		return ret; @@ -658,20 +658,20 @@ static int adau1761_codec_probe(struct snd_soc_codec *codec)  		regmap_update_bits(adau->regmap, ADAU1761_RIGHT_DIFF_INPUT_VOL,  			ADAU1761_DIFF_INPUT_VOL_LDEN,  			ADAU1761_DIFF_INPUT_VOL_LDEN); -		ret = snd_soc_add_codec_controls(codec, +		ret = snd_soc_add_component_controls(component,  			adau1761_differential_mode_controls,  			ARRAY_SIZE(adau1761_differential_mode_controls));  		if (ret)  			return ret;  	} else { -		ret = snd_soc_add_codec_controls(codec, +		ret = snd_soc_add_component_controls(component,  			adau1761_single_mode_controls,  			ARRAY_SIZE(adau1761_single_mode_controls));  		if (ret)  			return ret;  	} -	switch (adau1761_get_lineout_mode(codec)) { +	switch (adau1761_get_lineout_mode(component)) {  	case ADAU1761_OUTPUT_MODE_LINE:  		break;  	case ADAU1761_OUTPUT_MODE_HEADPHONE: @@ -686,11 +686,11 @@ static int adau1761_codec_probe(struct snd_soc_codec *codec)  		return -EINVAL;  	} -	ret = adau1761_setup_headphone_mode(codec); +	ret = adau1761_setup_headphone_mode(component);  	if (ret)  		return ret; -	ret = adau1761_setup_digmic_jackdetect(codec); +	ret = adau1761_setup_digmic_jackdetect(component);  	if (ret)  		return ret; @@ -706,27 +706,28 @@ static int adau1761_codec_probe(struct snd_soc_codec *codec)  			return ret;  	} -	ret = adau17x1_add_routes(codec); +	ret = adau17x1_add_routes(component);  	if (ret < 0)  		return ret;  	return 0;  } -static const struct snd_soc_codec_driver adau1761_codec_driver = { -	.probe = adau1761_codec_probe, -	.resume	= adau17x1_resume, -	.set_bias_level	= adau1761_set_bias_level, -	.suspend_bias_off = true, - -	.component_driver = { -		.controls		= adau1761_controls, -		.num_controls		= ARRAY_SIZE(adau1761_controls), -		.dapm_widgets		= adau1x61_dapm_widgets, -		.num_dapm_widgets	= ARRAY_SIZE(adau1x61_dapm_widgets), -		.dapm_routes		= adau1x61_dapm_routes, -		.num_dapm_routes	= ARRAY_SIZE(adau1x61_dapm_routes), -	}, +static const struct snd_soc_component_driver adau1761_component_driver = { +	.probe			= adau1761_component_probe, +	.resume			= adau17x1_resume, +	.set_bias_level		= adau1761_set_bias_level, +	.controls		= adau1761_controls, +	.num_controls		= ARRAY_SIZE(adau1761_controls), +	.dapm_widgets		= adau1x61_dapm_widgets, +	.num_dapm_widgets	= ARRAY_SIZE(adau1x61_dapm_widgets), +	.dapm_routes		= adau1x61_dapm_routes, +	.num_dapm_routes	= ARRAY_SIZE(adau1x61_dapm_routes), +	.suspend_bias_off	= 1, +	.idle_bias_on		= 1, +	.use_pmdown_time	= 1, +	.endianness		= 1, +	.non_legacy_dai_naming	= 1,  };  #define ADAU1761_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE | \ @@ -793,7 +794,8 @@ int adau1761_probe(struct device *dev, struct regmap *regmap,  	 * reaches standby and the core clock is enabled */  	regcache_cache_only(regmap, true); -	return snd_soc_register_codec(dev, &adau1761_codec_driver, dai_drv, 1); +	return devm_snd_soc_register_component(dev, &adau1761_component_driver, +					       dai_drv, 1);  }  EXPORT_SYMBOL_GPL(adau1761_probe);  | 

