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:
Коммит
7c90fc73bf
|
@ -898,14 +898,6 @@ struct snd_soc_codec_driver {
|
|||
int (*resume)(struct snd_soc_codec *);
|
||||
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 */
|
||||
int (*set_sysclk)(struct snd_soc_codec *codec,
|
||||
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 = {
|
||||
.probe = atmel_classd_codec_probe,
|
||||
.get_regmap = atmel_classd_codec_get_remap,
|
||||
.component_driver = {
|
||||
.controls = atmel_classd_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(atmel_classd_snd_controls),
|
||||
.get_regmap = atmel_classd_codec_get_remap,
|
||||
},
|
||||
};
|
||||
|
||||
/* 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) {
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -115,8 +115,10 @@ static int atmel_pdmic_cpu_dai_startup(struct snd_pcm_substream *substream,
|
|||
return ret;
|
||||
|
||||
ret = clk_prepare_enable(dd->pclk);
|
||||
if (ret)
|
||||
if (ret) {
|
||||
clk_disable_unprepare(dd->gclk);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Clear all bits in the Control Register(PDMIC_CR) */
|
||||
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),
|
||||
);
|
||||
|
||||
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_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 = {
|
||||
.probe = atmel_pdmic_codec_probe,
|
||||
.component_driver = {
|
||||
.controls = atmel_pdmic_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(atmel_pdmic_snd_controls),
|
||||
},
|
||||
};
|
||||
|
||||
/* codec dai component */
|
||||
|
@ -596,7 +600,7 @@ static int atmel_pdmic_probe(struct platform_device *pdev)
|
|||
dd->irq = platform_get_irq(pdev, 0);
|
||||
if (dd->irq < 0) {
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -614,7 +618,7 @@ static int atmel_pdmic_probe(struct platform_device *pdev)
|
|||
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
|
||||
*/
|
||||
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;
|
||||
}
|
||||
|
||||
/* 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);
|
||||
|
||||
/* register cpu dai */
|
||||
|
|
|
@ -1361,12 +1361,14 @@ static struct snd_soc_codec_driver soc_codec_dev_pm860x = {
|
|||
.set_bias_level = pm860x_set_bias_level,
|
||||
.get_regmap = pm860x_get_regmap,
|
||||
|
||||
.component_driver = {
|
||||
.controls = pm860x_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(pm860x_snd_controls),
|
||||
.dapm_widgets = pm860x_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(pm860x_dapm_widgets),
|
||||
.dapm_routes = pm860x_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(pm860x_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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 = {
|
||||
.probe = ab8500_codec_probe,
|
||||
.component_driver = {
|
||||
.controls = ab8500_ctrls,
|
||||
.num_controls = ARRAY_SIZE(ab8500_ctrls),
|
||||
.dapm_widgets = ab8500_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(ab8500_dapm_widgets),
|
||||
.dapm_routes = ab8500_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(ab8500_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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,
|
||||
.resume = ac97_soc_resume,
|
||||
|
||||
.component_driver = {
|
||||
.dapm_widgets = ac97_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(ac97_widgets),
|
||||
.dapm_routes = ac97_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(ac97_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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,
|
||||
.resume = ad1836_resume,
|
||||
|
||||
.component_driver = {
|
||||
.controls = ad183x_controls,
|
||||
.num_controls = ARRAY_SIZE(ad183x_controls),
|
||||
.dapm_widgets = ad183x_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(ad183x_dapm_widgets),
|
||||
.dapm_routes = ad183x_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(ad183x_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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 = {
|
||||
.probe = ad193x_codec_probe,
|
||||
.component_driver = {
|
||||
.controls = ad193x_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(ad193x_snd_controls),
|
||||
.dapm_widgets = ad193x_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(ad193x_dapm_widgets),
|
||||
.dapm_routes = audio_paths,
|
||||
.num_dapm_routes = ARRAY_SIZE(audio_paths),
|
||||
},
|
||||
};
|
||||
|
||||
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,
|
||||
.remove = ad1980_soc_remove,
|
||||
|
||||
.component_driver = {
|
||||
.controls = ad1980_snd_ac97_controls,
|
||||
.num_controls = ARRAY_SIZE(ad1980_snd_ac97_controls),
|
||||
.dapm_widgets = ad1980_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(ad1980_dapm_widgets),
|
||||
.dapm_routes = ad1980_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(ad1980_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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 = {
|
||||
.component_driver = {
|
||||
.dapm_widgets = ad73311_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(ad73311_dapm_widgets),
|
||||
.dapm_routes = ad73311_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(ad73311_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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,
|
||||
|
||||
.component_driver = {
|
||||
.controls = adau1373_controls,
|
||||
.num_controls = ARRAY_SIZE(adau1373_controls),
|
||||
.dapm_widgets = adau1373_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(adau1373_dapm_widgets),
|
||||
.dapm_routes = adau1373_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(adau1373_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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,
|
||||
.idle_bias_off = true,
|
||||
|
||||
.component_driver = {
|
||||
.controls = adau1701_controls,
|
||||
.num_controls = ARRAY_SIZE(adau1701_controls),
|
||||
.dapm_widgets = adau1701_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(adau1701_dapm_widgets),
|
||||
.dapm_routes = adau1701_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(adau1701_dapm_routes),
|
||||
|
||||
},
|
||||
.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,
|
||||
.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),
|
||||
},
|
||||
};
|
||||
|
||||
#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,
|
||||
.suspend_bias_off = true,
|
||||
|
||||
.component_driver = {
|
||||
.controls = adau1781_controls,
|
||||
.num_controls = ARRAY_SIZE(adau1781_controls),
|
||||
.dapm_widgets = adau1781_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(adau1781_dapm_widgets),
|
||||
.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 | \
|
||||
|
|
|
@ -873,12 +873,14 @@ static struct snd_soc_codec_driver adau1977_codec_driver = {
|
|||
.set_sysclk = adau1977_set_sysclk,
|
||||
.idle_bias_off = true,
|
||||
|
||||
.component_driver = {
|
||||
.controls = adau1977_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(adau1977_snd_controls),
|
||||
.dapm_widgets = adau1977_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(adau1977_dapm_widgets),
|
||||
.dapm_routes = adau1977_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(adau1977_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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 = {
|
||||
.component_driver = {
|
||||
.dapm_widgets = adau7002_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(adau7002_widgets),
|
||||
.dapm_routes = adau7002_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(adau7002_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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_sysclk = adav80x_set_sysclk,
|
||||
|
||||
.component_driver = {
|
||||
.controls = adav80x_controls,
|
||||
.num_controls = ARRAY_SIZE(adav80x_controls),
|
||||
.dapm_widgets = adav80x_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(adav80x_dapm_widgets),
|
||||
.dapm_routes = adav80x_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(adav80x_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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 = {
|
||||
.component_driver = {
|
||||
.dapm_widgets = ads117x_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(ads117x_dapm_widgets),
|
||||
.dapm_routes = ads117x_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(ads117x_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
static int ads117x_probe(struct platform_device *pdev)
|
||||
|
|
|
@ -163,7 +163,10 @@ static struct snd_soc_dai_driver ak4104_dai = {
|
|||
.stream_name = "Playback",
|
||||
.channels_min = 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 |
|
||||
SNDRV_PCM_FMTBIT_S24_3LE |
|
||||
SNDRV_PCM_FMTBIT_S24_LE
|
||||
|
@ -245,10 +248,12 @@ static struct snd_soc_codec_driver soc_codec_device_ak4104 = {
|
|||
.suspend = ak4104_soc_suspend,
|
||||
.resume = ak4104_soc_resume,
|
||||
|
||||
.component_driver = {
|
||||
.dapm_widgets = ak4104_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(ak4104_dapm_widgets),
|
||||
.dapm_routes = ak4104_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(ak4104_dapm_routes),
|
||||
}
|
||||
};
|
||||
|
||||
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,
|
||||
.suspend_bias_off = true,
|
||||
|
||||
.component_driver = {
|
||||
.controls = ak4535_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(ak4535_snd_controls),
|
||||
.dapm_widgets = ak4535_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(ak4535_dapm_widgets),
|
||||
.dapm_routes = ak4535_audio_map,
|
||||
.num_dapm_routes = ARRAY_SIZE(ak4535_audio_map),
|
||||
},
|
||||
};
|
||||
|
||||
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 = {
|
||||
.component_driver = {
|
||||
.dapm_widgets = ak4554_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(ak4554_dapm_widgets),
|
||||
.dapm_routes = ak4554_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(ak4554_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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,
|
||||
.resume = ak4613_resume,
|
||||
.set_bias_level = ak4613_set_bias_level,
|
||||
.component_driver = {
|
||||
.controls = ak4613_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(ak4613_snd_controls),
|
||||
.dapm_widgets = ak4613_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(ak4613_dapm_widgets),
|
||||
.dapm_routes = ak4613_intercon,
|
||||
.num_dapm_routes = ARRAY_SIZE(ak4613_intercon),
|
||||
},
|
||||
};
|
||||
|
||||
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 = {
|
||||
.component_driver = {
|
||||
.controls = ak4641_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(ak4641_snd_controls),
|
||||
.dapm_widgets = ak4641_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(ak4641_dapm_widgets),
|
||||
.dapm_routes = ak4641_audio_map,
|
||||
.num_dapm_routes = ARRAY_SIZE(ak4641_audio_map),
|
||||
},
|
||||
.set_bias_level = ak4641_set_bias_level,
|
||||
.suspend_bias_off = true,
|
||||
};
|
||||
|
|
|
@ -555,12 +555,14 @@ static struct snd_soc_codec_driver soc_codec_dev_ak4642 = {
|
|||
.suspend = ak4642_suspend,
|
||||
.resume = ak4642_resume,
|
||||
.set_bias_level = ak4642_set_bias_level,
|
||||
.component_driver = {
|
||||
.controls = ak4642_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(ak4642_snd_controls),
|
||||
.dapm_widgets = ak4642_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(ak4642_dapm_widgets),
|
||||
.dapm_routes = ak4642_intercon,
|
||||
.num_dapm_routes = ARRAY_SIZE(ak4642_intercon),
|
||||
},
|
||||
};
|
||||
|
||||
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 = {
|
||||
.set_bias_level = ak4671_set_bias_level,
|
||||
.component_driver = {
|
||||
.controls = ak4671_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(ak4671_snd_controls),
|
||||
.dapm_widgets = ak4671_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(ak4671_dapm_widgets),
|
||||
.dapm_routes = ak4671_intercon,
|
||||
.num_dapm_routes = ARRAY_SIZE(ak4671_intercon),
|
||||
},
|
||||
};
|
||||
|
||||
static const struct regmap_config ak4671_regmap = {
|
||||
|
|
|
@ -74,10 +74,12 @@ static struct snd_soc_codec_driver soc_codec_ak5386 = {
|
|||
.remove = ak5386_soc_remove,
|
||||
.suspend = ak5386_soc_suspend,
|
||||
.resume = ak5386_soc_resume,
|
||||
.component_driver = {
|
||||
.dapm_widgets = ak5386_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(ak5386_dapm_widgets),
|
||||
.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,
|
||||
|
|
|
@ -1072,12 +1072,14 @@ static const struct snd_soc_codec_driver soc_codec_device_alc5632 = {
|
|||
.set_bias_level = alc5632_set_bias_level,
|
||||
.suspend_bias_off = true,
|
||||
|
||||
.component_driver = {
|
||||
.controls = alc5632_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(alc5632_snd_controls),
|
||||
.dapm_widgets = alc5632_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(alc5632_dapm_widgets),
|
||||
.dapm_routes = alc5632_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(alc5632_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
static const struct regmap_config alc5632_regmap = {
|
||||
|
|
|
@ -109,7 +109,7 @@ static int arizona_spk_ev(struct snd_soc_dapm_widget *w,
|
|||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return arizona_out_ev(w, kcontrol, event);
|
||||
}
|
||||
|
||||
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 =
|
||||
SND_SOC_DAPM_PGA_E("OUT4L", SND_SOC_NOPM,
|
||||
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 =
|
||||
SND_SOC_DAPM_PGA_E("OUT4R", SND_SOC_NOPM,
|
||||
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)
|
||||
{
|
||||
|
@ -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 arizona_priv *priv = snd_soc_codec_get_drvdata(codec);
|
||||
struct arizona *arizona = priv->arizona;
|
||||
|
||||
switch (event) {
|
||||
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_delay += 17;
|
||||
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:
|
||||
break;
|
||||
}
|
||||
|
@ -889,8 +904,12 @@ int arizona_out_ev(struct snd_soc_dapm_widget *w,
|
|||
case ARIZONA_OUT2R_ENA_SHIFT:
|
||||
case ARIZONA_OUT3L_ENA_SHIFT:
|
||||
case ARIZONA_OUT3R_ENA_SHIFT:
|
||||
case ARIZONA_OUT4L_ENA_SHIFT:
|
||||
case ARIZONA_OUT4R_ENA_SHIFT:
|
||||
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);
|
||||
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_delay++;
|
||||
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:
|
||||
break;
|
||||
}
|
||||
|
@ -923,8 +957,12 @@ int arizona_out_ev(struct snd_soc_dapm_widget *w,
|
|||
case ARIZONA_OUT2R_ENA_SHIFT:
|
||||
case ARIZONA_OUT3L_ENA_SHIFT:
|
||||
case ARIZONA_OUT3R_ENA_SHIFT:
|
||||
case ARIZONA_OUT4L_ENA_SHIFT:
|
||||
case ARIZONA_OUT4R_ENA_SHIFT:
|
||||
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);
|
||||
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);
|
||||
}
|
||||
|
||||
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;
|
||||
unsigned int reg;
|
||||
int ret;
|
||||
|
||||
ret = regmap_read(arizona->regmap, fll->base + 1, ®);
|
||||
ret = regmap_read(arizona->regmap, base + 1, ®);
|
||||
if (ret != 0) {
|
||||
arizona_fll_err(fll, "Failed to read current state: %d\n",
|
||||
ret);
|
||||
|
@ -2208,13 +2246,16 @@ static int arizona_enable_fll(struct arizona_fll *fll)
|
|||
{
|
||||
struct arizona *arizona = fll->arizona;
|
||||
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;
|
||||
int i;
|
||||
unsigned int val;
|
||||
|
||||
if (already_enabled < 0)
|
||||
return already_enabled;
|
||||
if (sync_enabled < 0)
|
||||
return sync_enabled;
|
||||
|
||||
if (already_enabled) {
|
||||
/* Facilitate smooth refclk across the transition */
|
||||
|
@ -2259,6 +2300,9 @@ static int arizona_enable_fll(struct arizona_fll *fll)
|
|||
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
|
||||
* sync source.
|
||||
|
@ -2274,12 +2318,12 @@ static int arizona_enable_fll(struct arizona_fll *fll)
|
|||
if (!already_enabled)
|
||||
pm_runtime_get_sync(arizona->dev);
|
||||
|
||||
regmap_update_bits_async(arizona->regmap, fll->base + 1,
|
||||
ARIZONA_FLL1_ENA, ARIZONA_FLL1_ENA);
|
||||
if (use_sync)
|
||||
regmap_update_bits_async(arizona->regmap, fll->base + 0x11,
|
||||
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)
|
||||
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) \
|
||||
{ name, NULL, name " Preloader"}, \
|
||||
{ name " Preloader", NULL, name " Aux 1" }, \
|
||||
{ name " Preloader", NULL, name " Aux 2" }, \
|
||||
{ name " Preloader", NULL, name " Aux 3" }, \
|
||||
{ name " Preloader", NULL, name " Aux 4" }, \
|
||||
{ name " Preloader", NULL, name " Aux 5" }, \
|
||||
{ name " Preloader", NULL, name " Aux 6" }, \
|
||||
{ name " Preloader", NULL, "SYSCLK" }, \
|
||||
{ name, NULL, name " Aux 1" }, \
|
||||
{ name, NULL, name " Aux 2" }, \
|
||||
{ name, NULL, name " Aux 3" }, \
|
||||
{ name, NULL, name " Aux 4" }, \
|
||||
{ name, NULL, name " Aux 5" }, \
|
||||
{ name, NULL, name " Aux 6" }, \
|
||||
ARIZONA_MIXER_INPUT_ROUTES(name " Aux 1"), \
|
||||
ARIZONA_MIXER_INPUT_ROUTES(name " Aux 2"), \
|
||||
ARIZONA_MIXER_INPUT_ROUTES(name " Aux 3"), \
|
||||
ARIZONA_MIXER_INPUT_ROUTES(name " Aux 4"), \
|
||||
ARIZONA_MIXER_INPUT_ROUTES(name " Aux 5"), \
|
||||
ARIZONA_MIXER_INPUT_ROUTES(name " Aux 6"), \
|
||||
ARIZONA_MIXER_ROUTES(name " Preloader", name "L"), \
|
||||
ARIZONA_MIXER_ROUTES(name " Preloader", name "R")
|
||||
ARIZONA_MIXER_ROUTES(name, name "L"), \
|
||||
ARIZONA_MIXER_ROUTES(name, name "R")
|
||||
|
||||
#define ARIZONA_EQ_CONTROL(xname, xbase) \
|
||||
{ .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 = {
|
||||
.component_driver = {
|
||||
.dapm_widgets = bt_sco_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(bt_sco_widgets),
|
||||
.dapm_routes = bt_sco_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(bt_sco_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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 = {
|
||||
.set_bias_level = cq93vc_set_bias_level,
|
||||
.get_regmap = cq93vc_get_regmap,
|
||||
.component_driver = {
|
||||
.controls = cq93vc_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(cq93vc_snd_controls),
|
||||
},
|
||||
};
|
||||
|
||||
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 = {
|
||||
.set_sysclk = cs35l32_codec_set_sysclk,
|
||||
|
||||
.component_driver = {
|
||||
.controls = cs35l32_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(cs35l32_snd_controls),
|
||||
.dapm_widgets = cs35l32_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(cs35l32_dapm_widgets),
|
||||
.dapm_routes = cs35l32_audio_map,
|
||||
.num_dapm_routes = ARRAY_SIZE(cs35l32_audio_map),
|
||||
|
||||
.controls = cs35l32_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(cs35l32_snd_controls),
|
||||
},
|
||||
};
|
||||
|
||||
/* 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_sysclk = cs35l33_codec_set_sysclk,
|
||||
|
||||
.component_driver = {
|
||||
.controls = cs35l33_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(cs35l33_snd_controls),
|
||||
.dapm_widgets = cs35l33_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(cs35l33_dapm_widgets),
|
||||
.dapm_routes = cs35l33_audio_map,
|
||||
.num_dapm_routes = ARRAY_SIZE(cs35l33_audio_map),
|
||||
.controls = cs35l33_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(cs35l33_snd_controls),
|
||||
|
||||
},
|
||||
.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 = {
|
||||
.set_bias_level = cs4265_set_bias_level,
|
||||
|
||||
.component_driver = {
|
||||
.controls = cs4265_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(cs4265_snd_controls),
|
||||
.dapm_widgets = cs4265_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(cs4265_dapm_widgets),
|
||||
.dapm_routes = cs4265_audio_map,
|
||||
.num_dapm_routes = ARRAY_SIZE(cs4265_audio_map),
|
||||
|
||||
.controls = cs4265_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(cs4265_snd_controls),
|
||||
},
|
||||
};
|
||||
|
||||
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,
|
||||
.resume = cs4270_soc_resume,
|
||||
|
||||
.component_driver = {
|
||||
.controls = cs4270_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(cs4270_snd_controls),
|
||||
.dapm_widgets = cs4270_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(cs4270_dapm_widgets),
|
||||
.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,
|
||||
.resume = cs4271_soc_resume,
|
||||
|
||||
.component_driver = {
|
||||
.controls = cs4271_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(cs4271_snd_controls),
|
||||
.dapm_widgets = cs4271_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(cs4271_dapm_widgets),
|
||||
.dapm_routes = cs4271_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(cs4271_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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 = {
|
||||
.probe = cs42l51_codec_probe,
|
||||
|
||||
.component_driver = {
|
||||
.controls = cs42l51_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(cs42l51_snd_controls),
|
||||
.dapm_widgets = cs42l51_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(cs42l51_dapm_widgets),
|
||||
.dapm_routes = cs42l51_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(cs42l51_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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,
|
||||
.suspend_bias_off = true,
|
||||
|
||||
.component_driver = {
|
||||
.controls = cs42l52_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(cs42l52_snd_controls),
|
||||
.dapm_widgets = cs42l52_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(cs42l52_dapm_widgets),
|
||||
.dapm_routes = cs42l52_audio_map,
|
||||
.num_dapm_routes = ARRAY_SIZE(cs42l52_audio_map),
|
||||
|
||||
.controls = cs42l52_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(cs42l52_snd_controls),
|
||||
},
|
||||
};
|
||||
|
||||
/* 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,
|
||||
.suspend_bias_off = true,
|
||||
|
||||
.component_driver = {
|
||||
.controls = cs42l56_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(cs42l56_snd_controls),
|
||||
.dapm_widgets = cs42l56_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(cs42l56_dapm_widgets),
|
||||
.dapm_routes = cs42l56_audio_map,
|
||||
.num_dapm_routes = ARRAY_SIZE(cs42l56_audio_map),
|
||||
|
||||
.controls = cs42l56_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(cs42l56_snd_controls),
|
||||
},
|
||||
};
|
||||
|
||||
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,
|
||||
.suspend_bias_off = true,
|
||||
|
||||
.component_driver = {
|
||||
.controls = cs42l73_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(cs42l73_snd_controls),
|
||||
.dapm_widgets = cs42l73_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(cs42l73_dapm_widgets),
|
||||
.dapm_routes = cs42l73_audio_map,
|
||||
.num_dapm_routes = ARRAY_SIZE(cs42l73_audio_map),
|
||||
|
||||
.controls = cs42l73_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(cs42l73_snd_controls),
|
||||
},
|
||||
};
|
||||
|
||||
static const struct regmap_config cs42l73_regmap = {
|
||||
|
|
|
@ -411,12 +411,14 @@ static const struct snd_soc_codec_driver cs42xx8_driver = {
|
|||
.probe = cs42xx8_codec_probe,
|
||||
.idle_bias_off = true,
|
||||
|
||||
.component_driver = {
|
||||
.controls = cs42xx8_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(cs42xx8_snd_controls),
|
||||
.dapm_widgets = cs42xx8_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(cs42xx8_dapm_widgets),
|
||||
.dapm_routes = cs42xx8_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(cs42xx8_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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 = {
|
||||
.component_driver = {
|
||||
.controls = cs4349_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(cs4349_snd_controls),
|
||||
|
||||
.dapm_widgets = cs4349_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(cs4349_dapm_widgets),
|
||||
.dapm_routes = cs4349_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(cs4349_routes),
|
||||
},
|
||||
};
|
||||
|
||||
static const struct regmap_config cs4349_regmap = {
|
||||
|
|
|
@ -746,6 +746,16 @@ static const struct snd_soc_dapm_route cs47l24_dapm_routes[] = {
|
|||
{ "IN2L", 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" },
|
||||
{ "MICBIAS2", NULL, "MICVDD" },
|
||||
|
||||
|
@ -804,7 +814,6 @@ static const struct snd_soc_dapm_route cs47l24_dapm_routes[] = {
|
|||
{ "AIF3 Capture", NULL, "SYSCLK" },
|
||||
|
||||
{ "Voice Control DSP", NULL, "DSP3" },
|
||||
{ "Voice Control DSP", NULL, "SYSCLK" },
|
||||
|
||||
{ "IN1L PGA", NULL, "IN1L" },
|
||||
{ "IN1R PGA", NULL, "IN1R" },
|
||||
|
@ -813,7 +822,6 @@ static const struct snd_soc_dapm_route cs47l24_dapm_routes[] = {
|
|||
{ "IN2R PGA", NULL, "IN2R" },
|
||||
|
||||
{ "Audio Trace DSP", NULL, "DSP2" },
|
||||
{ "Audio Trace DSP", NULL, "SYSCLK" },
|
||||
|
||||
ARIZONA_MIXER_ROUTES("OUT1L", "HPOUT1L"),
|
||||
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_pll = cs47l24_set_fll,
|
||||
|
||||
.component_driver = {
|
||||
.controls = cs47l24_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(cs47l24_snd_controls),
|
||||
.dapm_widgets = cs47l24_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(cs47l24_dapm_widgets),
|
||||
.dapm_routes = cs47l24_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(cs47l24_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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,
|
||||
.idle_bias_off = true,
|
||||
|
||||
.component_driver = {
|
||||
.controls = cs53l30_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(cs53l30_snd_controls),
|
||||
.dapm_widgets = cs53l30_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(cs53l30_dapm_widgets),
|
||||
.dapm_routes = cs53l30_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(cs53l30_dapm_routes),
|
||||
|
||||
.controls = cs53l30_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(cs53l30_snd_controls),
|
||||
},
|
||||
};
|
||||
|
||||
static struct regmap_config cs53l30_regmap = {
|
||||
|
|
|
@ -407,10 +407,12 @@ static struct snd_soc_codec_driver cx20442_codec_dev = {
|
|||
.reg_word_size = sizeof(u8),
|
||||
.read = cx20442_read_reg_cache,
|
||||
.write = cx20442_write,
|
||||
.component_driver = {
|
||||
.dapm_widgets = cx20442_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(cx20442_dapm_widgets),
|
||||
.dapm_routes = cx20442_audio_map,
|
||||
.num_dapm_routes = ARRAY_SIZE(cx20442_audio_map),
|
||||
},
|
||||
};
|
||||
|
||||
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 = {
|
||||
.probe = da7210_probe,
|
||||
|
||||
.component_driver = {
|
||||
.controls = da7210_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(da7210_snd_controls),
|
||||
|
||||
.dapm_widgets = da7210_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(da7210_dapm_widgets),
|
||||
.dapm_routes = da7210_audio_map,
|
||||
.num_dapm_routes = ARRAY_SIZE(da7210_audio_map),
|
||||
},
|
||||
};
|
||||
|
||||
#if IS_ENABLED(CONFIG_I2C)
|
||||
|
|
|
@ -1740,13 +1740,14 @@ static struct snd_soc_codec_driver soc_codec_dev_da7213 = {
|
|||
.probe = da7213_probe,
|
||||
.set_bias_level = da7213_set_bias_level,
|
||||
|
||||
.component_driver = {
|
||||
.controls = da7213_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(da7213_snd_controls),
|
||||
|
||||
.dapm_widgets = da7213_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(da7213_dapm_widgets),
|
||||
.dapm_routes = da7213_audio_map,
|
||||
.num_dapm_routes = ARRAY_SIZE(da7213_audio_map),
|
||||
},
|
||||
};
|
||||
|
||||
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,
|
||||
.set_bias_level = da7218_set_bias_level,
|
||||
|
||||
.component_driver = {
|
||||
.controls = da7218_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(da7218_snd_controls),
|
||||
|
||||
.dapm_widgets = da7218_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(da7218_dapm_widgets),
|
||||
.dapm_routes = 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,
|
||||
.set_bias_level = da7219_set_bias_level,
|
||||
|
||||
.component_driver = {
|
||||
.controls = da7219_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(da7219_snd_controls),
|
||||
|
||||
.dapm_widgets = da7219_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(da7219_dapm_widgets),
|
||||
.dapm_routes = 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 = {
|
||||
.set_bias_level = da732x_set_bias_level,
|
||||
.component_driver = {
|
||||
.controls = da732x_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(da732x_snd_controls),
|
||||
.dapm_widgets = da732x_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(da732x_dapm_widgets),
|
||||
.dapm_routes = da732x_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(da732x_dapm_routes),
|
||||
},
|
||||
.set_pll = da732x_set_dai_pll,
|
||||
};
|
||||
|
||||
|
|
|
@ -1455,13 +1455,14 @@ static struct snd_soc_codec_driver soc_codec_dev_da9055 = {
|
|||
.probe = da9055_probe,
|
||||
.set_bias_level = da9055_set_bias_level,
|
||||
|
||||
.component_driver = {
|
||||
.controls = da9055_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(da9055_snd_controls),
|
||||
|
||||
.dapm_widgets = da9055_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(da9055_dapm_widgets),
|
||||
.dapm_routes = da9055_audio_map,
|
||||
.num_dapm_routes = ARRAY_SIZE(da9055_audio_map),
|
||||
},
|
||||
};
|
||||
|
||||
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 = {
|
||||
.component_driver = {
|
||||
.dapm_widgets = dmic_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(dmic_dapm_widgets),
|
||||
.dapm_routes = intercon,
|
||||
.num_dapm_routes = ARRAY_SIZE(intercon),
|
||||
},
|
||||
};
|
||||
|
||||
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,
|
||||
.suspend_bias_off = true,
|
||||
|
||||
.component_driver = {
|
||||
.controls = es8328_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(es8328_snd_controls),
|
||||
.dapm_widgets = es8328_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(es8328_dapm_widgets),
|
||||
.dapm_routes = es8328_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(es8328_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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 = {
|
||||
.component_driver = {
|
||||
.dapm_widgets = gtm601_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(gtm601_dapm_widgets),
|
||||
.dapm_routes = gtm601_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(gtm601_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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 */
|
||||
|
||||
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_pdata hcd;
|
||||
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)
|
||||
|
||||
static struct snd_soc_dai_driver hdmi_i2s_dai = {
|
||||
.name = "i2s-hifi",
|
||||
.id = DAI_ID_I2S,
|
||||
.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 = {
|
||||
.name = "spdif-hifi",
|
||||
.id = DAI_ID_SPDIF,
|
||||
.playback = {
|
||||
.stream_name = "Playback",
|
||||
|
@ -346,13 +353,37 @@ static const struct snd_soc_dai_driver hdmi_spdif_dai = {
|
|||
.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 = {
|
||||
.component_driver = {
|
||||
.controls = hdmi_controls,
|
||||
.num_controls = ARRAY_SIZE(hdmi_controls),
|
||||
.dapm_widgets = hdmi_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(hdmi_widgets),
|
||||
.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)
|
||||
|
@ -360,6 +391,8 @@ static int hdmi_codec_probe(struct platform_device *pdev)
|
|||
struct hdmi_codec_pdata *hcd = pdev->dev.platform_data;
|
||||
struct device *dev = &pdev->dev;
|
||||
struct hdmi_codec_priv *hcp;
|
||||
struct hdmi_device *hd;
|
||||
struct list_head *pos;
|
||||
int dai_count, i = 0;
|
||||
int ret;
|
||||
|
||||
|
@ -381,6 +414,31 @@ static int hdmi_codec_probe(struct platform_device *pdev)
|
|||
if (!hcp)
|
||||
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;
|
||||
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].playback.channels_max =
|
||||
hcd->max_i2s_channels;
|
||||
hcp->daidrv[i].name = hdmi_dai_name[hd->cnt++];
|
||||
i++;
|
||||
}
|
||||
|
||||
if (hcd->spdif)
|
||||
if (hcd->spdif) {
|
||||
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,
|
||||
dai_count);
|
||||
|
|
|
@ -380,12 +380,14 @@ static struct snd_soc_codec_driver rk3036_codec_driver = {
|
|||
.probe = rk3036_codec_probe,
|
||||
.remove = rk3036_codec_remove,
|
||||
.set_bias_level = rk3036_codec_set_bias_level,
|
||||
.component_driver = {
|
||||
.controls = rk3036_codec_dapm_controls,
|
||||
.num_controls = ARRAY_SIZE(rk3036_codec_dapm_controls),
|
||||
.dapm_routes = rk3036_codec_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(rk3036_codec_dapm_routes),
|
||||
.dapm_widgets = rk3036_codec_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(rk3036_codec_dapm_widgets),
|
||||
},
|
||||
};
|
||||
|
||||
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 = {
|
||||
.set_bias_level = isabelle_set_bias_level,
|
||||
.component_driver = {
|
||||
.controls = isabelle_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(isabelle_snd_controls),
|
||||
.dapm_widgets = isabelle_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(isabelle_dapm_widgets),
|
||||
.dapm_routes = isabelle_intercon,
|
||||
.num_dapm_routes = ARRAY_SIZE(isabelle_intercon),
|
||||
},
|
||||
.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,
|
||||
.suspend_bias_off = true,
|
||||
|
||||
.component_driver = {
|
||||
.controls = jz4740_codec_controls,
|
||||
.num_controls = ARRAY_SIZE(jz4740_codec_controls),
|
||||
.dapm_widgets = jz4740_codec_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(jz4740_codec_dapm_widgets),
|
||||
.dapm_routes = jz4740_codec_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(jz4740_codec_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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 = {
|
||||
.set_bias_level = lm49453_set_bias_level,
|
||||
.component_driver = {
|
||||
.controls = lm49453_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(lm49453_snd_controls),
|
||||
.dapm_widgets = lm49453_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(lm49453_dapm_widgets),
|
||||
.dapm_routes = lm49453_audio_map,
|
||||
.num_dapm_routes = ARRAY_SIZE(lm49453_audio_map),
|
||||
},
|
||||
.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,
|
||||
.suspend_bias_off = true,
|
||||
|
||||
.component_driver = {
|
||||
.controls = max98088_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(max98088_snd_controls),
|
||||
.dapm_widgets = max98088_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(max98088_dapm_widgets),
|
||||
.dapm_routes = max98088_audio_map,
|
||||
.num_dapm_routes = ARRAY_SIZE(max98088_audio_map),
|
||||
},
|
||||
};
|
||||
|
||||
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,
|
||||
.resume = max98095_resume,
|
||||
.set_bias_level = max98095_set_bias_level,
|
||||
.component_driver = {
|
||||
.controls = max98095_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(max98095_snd_controls),
|
||||
.dapm_widgets = max98095_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(max98095_dapm_widgets),
|
||||
.dapm_routes = max98095_audio_map,
|
||||
.num_dapm_routes = ARRAY_SIZE(max98095_audio_map),
|
||||
},
|
||||
};
|
||||
|
||||
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 = {
|
||||
.probe = max98357a_codec_probe,
|
||||
.component_driver = {
|
||||
.dapm_widgets = max98357a_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(max98357a_dapm_widgets),
|
||||
.dapm_routes = max98357a_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(max98357a_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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,
|
||||
.suspend_bias_off = true,
|
||||
|
||||
.component_driver = {
|
||||
.controls = max9850_controls,
|
||||
.num_controls = ARRAY_SIZE(max9850_controls),
|
||||
.dapm_widgets = max9850_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(max9850_dapm_widgets),
|
||||
.dapm_routes = max9850_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(max9850_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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,
|
||||
.idle_bias_off = true,
|
||||
|
||||
.component_driver = {
|
||||
.controls = max9860_controls,
|
||||
.num_controls = ARRAY_SIZE(max9860_controls),
|
||||
.dapm_widgets = max9860_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(max9860_dapm_widgets),
|
||||
.dapm_routes = max9860_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(max9860_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
|
|
|
@ -417,12 +417,14 @@ static int max9867_probe(struct snd_soc_codec *codec)
|
|||
|
||||
static struct snd_soc_codec_driver max9867_codec = {
|
||||
.probe = max9867_probe,
|
||||
.component_driver = {
|
||||
.controls = max9867_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(max9867_snd_controls),
|
||||
.dapm_routes = max9867_audio_map,
|
||||
.num_dapm_routes = ARRAY_SIZE(max9867_audio_map),
|
||||
.dapm_widgets = max9867_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(max9867_dapm_widgets),
|
||||
},
|
||||
};
|
||||
|
||||
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 = {
|
||||
.probe = max98925_probe,
|
||||
.component_driver = {
|
||||
.controls = max98925_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(max98925_snd_controls),
|
||||
.dapm_routes = max98925_audio_map,
|
||||
.num_dapm_routes = ARRAY_SIZE(max98925_audio_map),
|
||||
.dapm_widgets = max98925_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(max98925_dapm_widgets),
|
||||
},
|
||||
};
|
||||
|
||||
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 = {
|
||||
.probe = max98926_probe,
|
||||
.component_driver = {
|
||||
.controls = max98926_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(max98926_snd_controls),
|
||||
.dapm_routes = max98926_audio_map,
|
||||
.num_dapm_routes = ARRAY_SIZE(max98926_audio_map),
|
||||
.dapm_widgets = max98926_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(max98926_dapm_widgets),
|
||||
},
|
||||
};
|
||||
|
||||
static const struct regmap_config max98926_regmap = {
|
||||
|
|
|
@ -737,12 +737,14 @@ static struct snd_soc_codec_driver soc_codec_dev_mc13783 = {
|
|||
.probe = mc13783_probe,
|
||||
.remove = mc13783_remove,
|
||||
.get_regmap = mc13783_get_regmap,
|
||||
.component_driver = {
|
||||
.controls = mc13783_control_list,
|
||||
.num_controls = ARRAY_SIZE(mc13783_control_list),
|
||||
.dapm_widgets = mc13783_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(mc13783_dapm_widgets),
|
||||
.dapm_routes = mc13783_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(mc13783_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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,
|
||||
.set_bias_level = ml26124_set_bias_level,
|
||||
.suspend_bias_off = true,
|
||||
.component_driver = {
|
||||
.controls = ml26124_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(ml26124_snd_controls),
|
||||
.dapm_widgets = ml26124_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(ml26124_dapm_widgets),
|
||||
.dapm_routes = ml26124_intercon,
|
||||
.num_dapm_routes = ARRAY_SIZE(ml26124_intercon),
|
||||
.controls = ml26124_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(ml26124_snd_controls),
|
||||
},
|
||||
};
|
||||
|
||||
static const struct regmap_config ml26124_i2c_regmap = {
|
||||
|
|
|
@ -2256,12 +2256,14 @@ static struct snd_soc_codec_driver nau8825_codec_driver = {
|
|||
.suspend = nau8825_suspend,
|
||||
.resume = nau8825_resume,
|
||||
|
||||
.component_driver = {
|
||||
.controls = nau8825_controls,
|
||||
.num_controls = ARRAY_SIZE(nau8825_controls),
|
||||
.dapm_widgets = nau8825_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(nau8825_dapm_widgets),
|
||||
.dapm_routes = nau8825_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(nau8825_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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 = {
|
||||
.component_driver = {
|
||||
.controls = pcm1681_controls,
|
||||
.num_controls = ARRAY_SIZE(pcm1681_controls),
|
||||
.dapm_widgets = pcm1681_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(pcm1681_dapm_widgets),
|
||||
.dapm_routes = pcm1681_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(pcm1681_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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);
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_pcm179x = {
|
||||
.component_driver = {
|
||||
.controls = pcm179x_controls,
|
||||
.num_controls = ARRAY_SIZE(pcm179x_controls),
|
||||
.dapm_widgets = pcm179x_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(pcm179x_dapm_widgets),
|
||||
.dapm_routes = pcm179x_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(pcm179x_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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 = {
|
||||
.component_driver = {
|
||||
.dapm_widgets = pcm3008_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(pcm3008_dapm_widgets),
|
||||
.dapm_routes = pcm3008_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(pcm3008_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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 = {
|
||||
.idle_bias_off = true,
|
||||
.component_driver = {
|
||||
.controls = pcm3168a_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(pcm3168a_snd_controls),
|
||||
.dapm_widgets = pcm3168a_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(pcm3168a_dapm_widgets),
|
||||
.dapm_routes = pcm3168a_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(pcm3168a_dapm_routes)
|
||||
},
|
||||
};
|
||||
|
||||
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,
|
||||
.idle_bias_off = true,
|
||||
|
||||
.component_driver = {
|
||||
.controls = pcm512x_controls,
|
||||
.num_controls = ARRAY_SIZE(pcm512x_controls),
|
||||
.dapm_widgets = pcm512x_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(pcm512x_dapm_widgets),
|
||||
.dapm_routes = pcm512x_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(pcm512x_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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,
|
||||
.set_bias_level = rt286_set_bias_level,
|
||||
.idle_bias_off = true,
|
||||
.component_driver = {
|
||||
.controls = rt286_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(rt286_snd_controls),
|
||||
.dapm_widgets = rt286_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(rt286_dapm_widgets),
|
||||
.dapm_routes = rt286_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(rt286_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
static const struct regmap_config rt286_regmap = {
|
||||
|
|
|
@ -1095,12 +1095,14 @@ static struct snd_soc_codec_driver soc_codec_dev_rt298 = {
|
|||
.resume = rt298_resume,
|
||||
.set_bias_level = rt298_set_bias_level,
|
||||
.idle_bias_off = true,
|
||||
.component_driver = {
|
||||
.controls = rt298_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(rt298_snd_controls),
|
||||
.dapm_widgets = rt298_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(rt298_dapm_widgets),
|
||||
.dapm_routes = rt298_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(rt298_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
static const struct regmap_config rt298_regmap = {
|
||||
|
|
|
@ -1023,12 +1023,14 @@ static struct snd_soc_codec_driver soc_codec_dev_rt5514 = {
|
|||
.probe = rt5514_probe,
|
||||
.idle_bias_off = true,
|
||||
.set_bias_level = rt5514_set_bias_level,
|
||||
.component_driver = {
|
||||
.controls = rt5514_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(rt5514_snd_controls),
|
||||
.dapm_widgets = rt5514_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(rt5514_dapm_widgets),
|
||||
.dapm_routes = rt5514_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(rt5514_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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,
|
||||
.set_bias_level = rt5616_set_bias_level,
|
||||
.idle_bias_off = true,
|
||||
.component_driver = {
|
||||
.controls = rt5616_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(rt5616_snd_controls),
|
||||
.dapm_widgets = rt5616_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(rt5616_dapm_widgets),
|
||||
.dapm_routes = rt5616_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(rt5616_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
static const struct regmap_config rt5616_regmap = {
|
||||
|
|
|
@ -1657,12 +1657,14 @@ static struct snd_soc_codec_driver soc_codec_dev_rt5631 = {
|
|||
.probe = rt5631_probe,
|
||||
.set_bias_level = rt5631_set_bias_level,
|
||||
.suspend_bias_off = true,
|
||||
.component_driver = {
|
||||
.controls = rt5631_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(rt5631_snd_controls),
|
||||
.dapm_widgets = rt5631_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(rt5631_dapm_widgets),
|
||||
.dapm_routes = rt5631_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(rt5631_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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,
|
||||
.set_bias_level = rt5640_set_bias_level,
|
||||
.idle_bias_off = true,
|
||||
.component_driver = {
|
||||
.controls = rt5640_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(rt5640_snd_controls),
|
||||
.dapm_widgets = rt5640_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(rt5640_dapm_widgets),
|
||||
.dapm_routes = rt5640_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(rt5640_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
static const struct regmap_config rt5640_regmap = {
|
||||
|
|
|
@ -3484,12 +3484,14 @@ static struct snd_soc_codec_driver soc_codec_dev_rt5645 = {
|
|||
.resume = rt5645_resume,
|
||||
.set_bias_level = rt5645_set_bias_level,
|
||||
.idle_bias_off = true,
|
||||
.component_driver = {
|
||||
.controls = rt5645_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(rt5645_snd_controls),
|
||||
.dapm_widgets = rt5645_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(rt5645_dapm_widgets),
|
||||
.dapm_routes = rt5645_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(rt5645_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
static const struct regmap_config rt5645_regmap = {
|
||||
|
|
|
@ -1712,12 +1712,14 @@ static struct snd_soc_codec_driver soc_codec_dev_rt5651 = {
|
|||
.resume = rt5651_resume,
|
||||
.set_bias_level = rt5651_set_bias_level,
|
||||
.idle_bias_off = true,
|
||||
.component_driver = {
|
||||
.controls = rt5651_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(rt5651_snd_controls),
|
||||
.dapm_widgets = rt5651_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(rt5651_dapm_widgets),
|
||||
.dapm_routes = rt5651_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(rt5651_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
static const struct regmap_config rt5651_regmap = {
|
||||
|
|
|
@ -3722,12 +3722,14 @@ static struct snd_soc_codec_driver soc_codec_dev_rt5659 = {
|
|||
.resume = rt5659_resume,
|
||||
.set_bias_level = rt5659_set_bias_level,
|
||||
.idle_bias_off = true,
|
||||
.component_driver = {
|
||||
.controls = rt5659_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(rt5659_snd_controls),
|
||||
.dapm_widgets = rt5659_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(rt5659_dapm_widgets),
|
||||
.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,
|
||||
.set_bias_level = rt5670_set_bias_level,
|
||||
.idle_bias_off = true,
|
||||
.component_driver = {
|
||||
.controls = rt5670_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(rt5670_snd_controls),
|
||||
.dapm_widgets = rt5670_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(rt5670_dapm_widgets),
|
||||
.dapm_routes = rt5670_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(rt5670_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
static const struct regmap_config rt5670_regmap = {
|
||||
|
|
|
@ -4974,12 +4974,14 @@ static struct snd_soc_codec_driver soc_codec_dev_rt5677 = {
|
|||
.resume = rt5677_resume,
|
||||
.set_bias_level = rt5677_set_bias_level,
|
||||
.idle_bias_off = true,
|
||||
.component_driver = {
|
||||
.controls = rt5677_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(rt5677_snd_controls),
|
||||
.dapm_widgets = rt5677_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(rt5677_dapm_widgets),
|
||||
.dapm_routes = rt5677_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(rt5677_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
static const struct regmap_config rt5677_regmap_physical = {
|
||||
|
|
|
@ -1151,12 +1151,14 @@ static struct snd_soc_codec_driver sgtl5000_driver = {
|
|||
.remove = sgtl5000_remove,
|
||||
.set_bias_level = sgtl5000_set_bias_level,
|
||||
.suspend_bias_off = true,
|
||||
.component_driver = {
|
||||
.controls = sgtl5000_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(sgtl5000_snd_controls),
|
||||
.dapm_widgets = sgtl5000_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(sgtl5000_dapm_widgets),
|
||||
.dapm_routes = sgtl5000_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(sgtl5000_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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 = {
|
||||
.get_regmap = si476x_get_regmap,
|
||||
.component_driver = {
|
||||
.dapm_widgets = si476x_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(si476x_dapm_widgets),
|
||||
.dapm_routes = si476x_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(si476x_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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,
|
||||
.idle_bias_off = true,
|
||||
|
||||
.component_driver = {
|
||||
.controls = sn95031_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(sn95031_snd_controls),
|
||||
.dapm_widgets = sn95031_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(sn95031_dapm_widgets),
|
||||
.dapm_routes = sn95031_audio_map,
|
||||
.num_dapm_routes = ARRAY_SIZE(sn95031_audio_map),
|
||||
},
|
||||
};
|
||||
|
||||
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)
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_spdif_dir = {
|
||||
.component_driver = {
|
||||
.dapm_widgets = dir_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(dir_widgets),
|
||||
.dapm_routes = dir_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(dir_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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 = {
|
||||
.component_driver = {
|
||||
.dapm_widgets = dit_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(dit_widgets),
|
||||
.dapm_routes = dit_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(dit_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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,
|
||||
.idle_bias_off = true,
|
||||
|
||||
.component_driver = {
|
||||
.controls = ssm2518_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(ssm2518_snd_controls),
|
||||
.dapm_widgets = ssm2518_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(ssm2518_dapm_widgets),
|
||||
.dapm_routes = ssm2518_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(ssm2518_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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,
|
||||
.suspend_bias_off = true,
|
||||
|
||||
.component_driver = {
|
||||
.controls = ssm260x_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(ssm260x_snd_controls),
|
||||
.dapm_widgets = ssm260x_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(ssm260x_dapm_widgets),
|
||||
.dapm_routes = ssm260x_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(ssm260x_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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,
|
||||
.idle_bias_off = true,
|
||||
|
||||
.component_driver = {
|
||||
.controls = ssm4567_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(ssm4567_snd_controls),
|
||||
.dapm_widgets = ssm4567_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(ssm4567_dapm_widgets),
|
||||
.dapm_routes = ssm4567_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(ssm4567_routes),
|
||||
},
|
||||
};
|
||||
|
||||
static const struct regmap_config ssm4567_regmap_config = {
|
||||
|
|
|
@ -991,12 +991,14 @@ static const struct snd_soc_codec_driver sta32x_codec = {
|
|||
.remove = sta32x_remove,
|
||||
.set_bias_level = sta32x_set_bias_level,
|
||||
.suspend_bias_off = true,
|
||||
.component_driver = {
|
||||
.controls = sta32x_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(sta32x_snd_controls),
|
||||
.dapm_widgets = sta32x_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(sta32x_dapm_widgets),
|
||||
.dapm_routes = sta32x_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(sta32x_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
static const struct regmap_config sta32x_regmap = {
|
||||
|
|
|
@ -1057,12 +1057,14 @@ static const struct snd_soc_codec_driver sta350_codec = {
|
|||
.remove = sta350_remove,
|
||||
.set_bias_level = sta350_set_bias_level,
|
||||
.suspend_bias_off = true,
|
||||
.component_driver = {
|
||||
.controls = sta350_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(sta350_snd_controls),
|
||||
.dapm_widgets = sta350_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(sta350_dapm_widgets),
|
||||
.dapm_routes = sta350_dapm_routes,
|
||||
.num_dapm_routes = ARRAY_SIZE(sta350_dapm_routes),
|
||||
},
|
||||
};
|
||||
|
||||
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,
|
||||
.suspend_bias_off = true,
|
||||
|
||||
.component_driver = {
|
||||
.controls = sta529_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(sta529_snd_controls),
|
||||
},
|
||||
};
|
||||
|
||||
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 = {
|
||||
.component_driver = {
|
||||
.controls = stac9766_snd_ac97_controls,
|
||||
.num_controls = ARRAY_SIZE(stac9766_snd_ac97_controls),
|
||||
},
|
||||
.write = stac9766_ac97_write,
|
||||
.read = stac9766_ac97_read,
|
||||
.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;
|
||||
|
||||
/* Set dapms*/
|
||||
sti_sas_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.dapm_widgets = drvdata->dev_data->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.num_dapm_routes = drvdata->dev_data->num_dapm_routes;
|
||||
sti_sas_driver.component_driver.dapm_routes = drvdata->dev_data->dapm_routes;
|
||||
sti_sas_driver.component_driver.num_dapm_routes = drvdata->dev_data->num_dapm_routes;
|
||||
|
||||
/* Store context */
|
||||
dev_set_drvdata(&pdev->dev, drvdata);
|
||||
|
|
|
@ -667,12 +667,14 @@ static struct snd_soc_codec_driver soc_codec_dev_tas2552 = {
|
|||
.resume = tas2552_resume,
|
||||
.ignore_pmdown_time = true,
|
||||
|
||||
.component_driver = {
|
||||
.controls = tas2552_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(tas2552_snd_controls),
|
||||
.dapm_widgets = tas2552_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(tas2552_dapm_widgets),
|
||||
.dapm_routes = tas2552_audio_map,
|
||||
.num_dapm_routes = ARRAY_SIZE(tas2552_audio_map),
|
||||
},
|
||||
};
|
||||
|
||||
static const struct regmap_config tas2552_regmap_config = {
|
||||
|
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче