forked from Minki/linux
Merge branches 'topic/rt274', 'topic/hdmi' and 'topic/msm8916' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-const
This commit is contained in:
commit
5a36aedb08
@ -1360,7 +1360,7 @@ static void hdac_hdmi_skl_enable_dp12(struct hdac_device *hdac)
|
||||
|
||||
}
|
||||
|
||||
static struct snd_soc_dai_ops hdmi_dai_ops = {
|
||||
static const struct snd_soc_dai_ops hdmi_dai_ops = {
|
||||
.startup = hdac_hdmi_pcm_open,
|
||||
.shutdown = hdac_hdmi_pcm_close,
|
||||
.hw_params = hdac_hdmi_set_hw_params,
|
||||
|
@ -326,7 +326,7 @@ static int hdmi_eld_ctl_get(struct snd_kcontrol *kcontrol,
|
||||
static unsigned long hdmi_codec_spk_mask_from_alloc(int spk_alloc)
|
||||
{
|
||||
int i;
|
||||
const unsigned long hdmi_codec_eld_spk_alloc_bits[] = {
|
||||
static const unsigned long hdmi_codec_eld_spk_alloc_bits[] = {
|
||||
[0] = FL | FR, [1] = LFE, [2] = FC, [3] = RL | RR,
|
||||
[4] = RC, [5] = FLC | FRC, [6] = RLC | RRC,
|
||||
};
|
||||
@ -399,18 +399,6 @@ static int hdmi_codec_chmap_ctl_get(struct snd_kcontrol *kcontrol,
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static const struct snd_kcontrol_new hdmi_controls[] = {
|
||||
{
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ |
|
||||
SNDRV_CTL_ELEM_ACCESS_VOLATILE,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_PCM,
|
||||
.name = "ELD",
|
||||
.info = hdmi_eld_ctl_info,
|
||||
.get = hdmi_eld_ctl_get,
|
||||
},
|
||||
};
|
||||
|
||||
static int hdmi_codec_new_stream(struct snd_pcm_substream *substream,
|
||||
struct snd_soc_dai *dai)
|
||||
{
|
||||
@ -668,6 +656,16 @@ static int hdmi_codec_pcm_new(struct snd_soc_pcm_runtime *rtd,
|
||||
{
|
||||
struct snd_soc_dai_driver *drv = dai->driver;
|
||||
struct hdmi_codec_priv *hcp = snd_soc_dai_get_drvdata(dai);
|
||||
struct snd_kcontrol *kctl;
|
||||
struct snd_kcontrol_new hdmi_eld_ctl = {
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ |
|
||||
SNDRV_CTL_ELEM_ACCESS_VOLATILE,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_PCM,
|
||||
.name = "ELD",
|
||||
.info = hdmi_eld_ctl_info,
|
||||
.get = hdmi_eld_ctl_get,
|
||||
.device = rtd->pcm->device,
|
||||
};
|
||||
int ret;
|
||||
|
||||
dev_dbg(dai->dev, "%s()\n", __func__);
|
||||
@ -686,7 +684,12 @@ static int hdmi_codec_pcm_new(struct snd_soc_pcm_runtime *rtd,
|
||||
hcp->chmap_info->chmap = hdmi_codec_stereo_chmaps;
|
||||
hcp->chmap_idx = HDMI_CODEC_CHMAP_IDX_UNKNOWN;
|
||||
|
||||
return 0;
|
||||
/* add ELD ctl with the device number corresponding to the PCM stream */
|
||||
kctl = snd_ctl_new1(&hdmi_eld_ctl, dai->component);
|
||||
if (!kctl)
|
||||
return -ENOMEM;
|
||||
|
||||
return snd_ctl_add(rtd->card->snd_card, kctl);
|
||||
}
|
||||
|
||||
static struct snd_soc_dai_driver hdmi_i2s_dai = {
|
||||
@ -732,8 +735,6 @@ static int hdmi_of_xlate_dai_id(struct snd_soc_component *component,
|
||||
|
||||
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,
|
||||
|
@ -568,6 +568,15 @@ static int msm8916_wcd_digital_codec_probe(struct snd_soc_codec *codec)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int msm8916_wcd_digital_codec_set_sysclk(struct snd_soc_codec *codec,
|
||||
int clk_id, int source,
|
||||
unsigned int freq, int dir)
|
||||
{
|
||||
struct msm8916_wcd_digital_priv *p = dev_get_drvdata(codec->dev);
|
||||
|
||||
return clk_set_rate(p->mclk, freq);
|
||||
}
|
||||
|
||||
static int msm8916_wcd_digital_hw_params(struct snd_pcm_substream *substream,
|
||||
struct snd_pcm_hw_params *params,
|
||||
struct snd_soc_dai *dai)
|
||||
@ -788,7 +797,7 @@ static void msm8916_wcd_digital_shutdown(struct snd_pcm_substream *substream,
|
||||
LPASS_CDC_CLK_PDM_CTL_PDM_CLK_SEL_MASK, 0);
|
||||
}
|
||||
|
||||
static struct snd_soc_dai_ops msm8916_wcd_digital_dai_ops = {
|
||||
static const struct snd_soc_dai_ops msm8916_wcd_digital_dai_ops = {
|
||||
.startup = msm8916_wcd_digital_startup,
|
||||
.shutdown = msm8916_wcd_digital_shutdown,
|
||||
.hw_params = msm8916_wcd_digital_hw_params,
|
||||
@ -823,6 +832,7 @@ static struct snd_soc_dai_driver msm8916_wcd_digital_dai[] = {
|
||||
|
||||
static struct snd_soc_codec_driver msm8916_wcd_digital = {
|
||||
.probe = msm8916_wcd_digital_codec_probe,
|
||||
.set_sysclk = msm8916_wcd_digital_codec_set_sysclk,
|
||||
.component_driver = {
|
||||
.controls = msm8916_wcd_digital_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(msm8916_wcd_digital_snd_controls),
|
||||
|
Loading…
Reference in New Issue
Block a user