|
@@ -58,11 +58,16 @@ static int bells_set_bias_level(struct snd_soc_card *card,
|
|
struct snd_soc_dapm_context *dapm,
|
|
struct snd_soc_dapm_context *dapm,
|
|
enum snd_soc_bias_level level)
|
|
enum snd_soc_bias_level level)
|
|
{
|
|
{
|
|
- struct snd_soc_dai *codec_dai = card->rtd[DAI_DSP_CODEC].codec_dai;
|
|
|
|
- struct snd_soc_codec *codec = codec_dai->codec;
|
|
|
|
|
|
+ struct snd_soc_pcm_runtime *rtd;
|
|
|
|
+ struct snd_soc_dai *codec_dai;
|
|
|
|
+ struct snd_soc_codec *codec;
|
|
struct bells_drvdata *bells = card->drvdata;
|
|
struct bells_drvdata *bells = card->drvdata;
|
|
int ret;
|
|
int ret;
|
|
|
|
|
|
|
|
+ rtd = snd_soc_get_pcm_runtime(card, card->dai_link[DAI_DSP_CODEC].name);
|
|
|
|
+ codec_dai = rtd->codec_dai;
|
|
|
|
+ codec = codec_dai->codec;
|
|
|
|
+
|
|
if (dapm->dev != codec_dai->dev)
|
|
if (dapm->dev != codec_dai->dev)
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
@@ -99,11 +104,16 @@ static int bells_set_bias_level_post(struct snd_soc_card *card,
|
|
struct snd_soc_dapm_context *dapm,
|
|
struct snd_soc_dapm_context *dapm,
|
|
enum snd_soc_bias_level level)
|
|
enum snd_soc_bias_level level)
|
|
{
|
|
{
|
|
- struct snd_soc_dai *codec_dai = card->rtd[DAI_DSP_CODEC].codec_dai;
|
|
|
|
- struct snd_soc_codec *codec = codec_dai->codec;
|
|
|
|
|
|
+ struct snd_soc_pcm_runtime *rtd;
|
|
|
|
+ struct snd_soc_dai *codec_dai;
|
|
|
|
+ struct snd_soc_codec *codec;
|
|
struct bells_drvdata *bells = card->drvdata;
|
|
struct bells_drvdata *bells = card->drvdata;
|
|
int ret;
|
|
int ret;
|
|
|
|
|
|
|
|
+ rtd = snd_soc_get_pcm_runtime(card, card->dai_link[DAI_DSP_CODEC].name);
|
|
|
|
+ codec_dai = rtd->codec_dai;
|
|
|
|
+ codec = codec_dai->codec;
|
|
|
|
+
|
|
if (dapm->dev != codec_dai->dev)
|
|
if (dapm->dev != codec_dai->dev)
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
@@ -137,14 +147,22 @@ static int bells_set_bias_level_post(struct snd_soc_card *card,
|
|
static int bells_late_probe(struct snd_soc_card *card)
|
|
static int bells_late_probe(struct snd_soc_card *card)
|
|
{
|
|
{
|
|
struct bells_drvdata *bells = card->drvdata;
|
|
struct bells_drvdata *bells = card->drvdata;
|
|
- struct snd_soc_codec *wm0010 = card->rtd[DAI_AP_DSP].codec;
|
|
|
|
- struct snd_soc_codec *codec = card->rtd[DAI_DSP_CODEC].codec;
|
|
|
|
- struct snd_soc_dai *aif1_dai = card->rtd[DAI_DSP_CODEC].codec_dai;
|
|
|
|
|
|
+ struct snd_soc_pcm_runtime *rtd;
|
|
|
|
+ struct snd_soc_codec *wm0010;
|
|
|
|
+ struct snd_soc_codec *codec;
|
|
|
|
+ struct snd_soc_dai *aif1_dai;
|
|
struct snd_soc_dai *aif2_dai;
|
|
struct snd_soc_dai *aif2_dai;
|
|
struct snd_soc_dai *aif3_dai;
|
|
struct snd_soc_dai *aif3_dai;
|
|
struct snd_soc_dai *wm9081_dai;
|
|
struct snd_soc_dai *wm9081_dai;
|
|
int ret;
|
|
int ret;
|
|
|
|
|
|
|
|
+ rtd = snd_soc_get_pcm_runtime(card, card->dai_link[DAI_AP_DSP].name);
|
|
|
|
+ wm0010 = rtd->codec;
|
|
|
|
+
|
|
|
|
+ rtd = snd_soc_get_pcm_runtime(card, card->dai_link[DAI_DSP_CODEC].name);
|
|
|
|
+ codec = rtd->codec;
|
|
|
|
+ aif1_dai = rtd->codec_dai;
|
|
|
|
+
|
|
ret = snd_soc_codec_set_sysclk(codec, ARIZONA_CLK_SYSCLK,
|
|
ret = snd_soc_codec_set_sysclk(codec, ARIZONA_CLK_SYSCLK,
|
|
ARIZONA_CLK_SRC_FLL1,
|
|
ARIZONA_CLK_SRC_FLL1,
|
|
bells->sysclk_rate,
|
|
bells->sysclk_rate,
|
|
@@ -181,7 +199,8 @@ static int bells_late_probe(struct snd_soc_card *card)
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|
|
|
|
|
|
- aif2_dai = card->rtd[DAI_CODEC_CP].cpu_dai;
|
|
|
|
|
|
+ rtd = snd_soc_get_pcm_runtime(card, card->dai_link[DAI_CODEC_CP].name);
|
|
|
|
+ aif2_dai = rtd->cpu_dai;
|
|
|
|
|
|
ret = snd_soc_dai_set_sysclk(aif2_dai, ARIZONA_CLK_ASYNCCLK, 0, 0);
|
|
ret = snd_soc_dai_set_sysclk(aif2_dai, ARIZONA_CLK_ASYNCCLK, 0, 0);
|
|
if (ret != 0) {
|
|
if (ret != 0) {
|
|
@@ -192,8 +211,9 @@ static int bells_late_probe(struct snd_soc_card *card)
|
|
if (card->num_rtd == DAI_CODEC_SUB)
|
|
if (card->num_rtd == DAI_CODEC_SUB)
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
- aif3_dai = card->rtd[DAI_CODEC_SUB].cpu_dai;
|
|
|
|
- wm9081_dai = card->rtd[DAI_CODEC_SUB].codec_dai;
|
|
|
|
|
|
+ rtd = snd_soc_get_pcm_runtime(card, card->dai_link[DAI_CODEC_SUB].name);
|
|
|
|
+ aif3_dai = rtd->cpu_dai;
|
|
|
|
+ wm9081_dai = rtd->codec_dai;
|
|
|
|
|
|
ret = snd_soc_dai_set_sysclk(aif3_dai, ARIZONA_CLK_SYSCLK, 0, 0);
|
|
ret = snd_soc_dai_set_sysclk(aif3_dai, ARIZONA_CLK_SYSCLK, 0, 0);
|
|
if (ret != 0) {
|
|
if (ret != 0) {
|