* [RESEND PATCH v2 1/3] ASoC: rockchip: Add dapm route for HDMI
@ 2017-09-18 11:17 Jeffy Chen
2017-09-18 11:18 ` [RESEND PATCH v2 2/3] ASoC: rockchip: Add dapm route for DMic Jeffy Chen
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Jeffy Chen @ 2017-09-18 11:17 UTC (permalink / raw)
To: linux-arm-kernel
Add dapm route for DP codec.
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips•com>
---
Changes in v2:
Separate HDMI/DMIC patches.
sound/soc/rockchip/rk3399_gru_sound.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/sound/soc/rockchip/rk3399_gru_sound.c b/sound/soc/rockchip/rk3399_gru_sound.c
index 0513fe480353..b050510be65f 100644
--- a/sound/soc/rockchip/rk3399_gru_sound.c
+++ b/sound/soc/rockchip/rk3399_gru_sound.c
@@ -47,6 +47,7 @@ static const struct snd_soc_dapm_widget rockchip_dapm_widgets[] = {
SND_SOC_DAPM_SPK("Speakers", NULL),
SND_SOC_DAPM_MIC("Headset Mic", NULL),
SND_SOC_DAPM_MIC("Int Mic", NULL),
+ SND_SOC_DAPM_LINE("HDMI", NULL),
};
static const struct snd_soc_dapm_route rockchip_dapm_routes[] = {
@@ -59,6 +60,7 @@ static const struct snd_soc_dapm_route rockchip_dapm_routes[] = {
{"Headphones", NULL, "HPL"},
{"Headphones", NULL, "HPR"},
{"Speakers", NULL, "Speaker"},
+ {"HDMI", NULL, "TX"},
};
static const struct snd_kcontrol_new rockchip_controls[] = {
@@ -66,6 +68,7 @@ static const struct snd_kcontrol_new rockchip_controls[] = {
SOC_DAPM_PIN_SWITCH("Speakers"),
SOC_DAPM_PIN_SWITCH("Headset Mic"),
SOC_DAPM_PIN_SWITCH("Int Mic"),
+ SOC_DAPM_PIN_SWITCH("HDMI"),
};
static int rockchip_sound_max98357a_hw_params(struct snd_pcm_substream *substream,
--
2.11.0
^ permalink raw reply related [flat|nested] 7+ messages in thread* [RESEND PATCH v2 2/3] ASoC: rockchip: Add dapm route for DMic 2017-09-18 11:17 [RESEND PATCH v2 1/3] ASoC: rockchip: Add dapm route for HDMI Jeffy Chen @ 2017-09-18 11:18 ` Jeffy Chen 2017-09-18 11:18 ` [RESEND PATCH v2 3/3] ASoC: rockchip: Init dapm routes dynamically Jeffy Chen 2017-09-19 12:19 ` [RESEND PATCH v2 1/3] ASoC: rockchip: Add dapm route for HDMI Mark Brown 2 siblings, 0 replies; 7+ messages in thread From: Jeffy Chen @ 2017-09-18 11:18 UTC (permalink / raw) To: linux-arm-kernel Add dapm route for DMIC codec. Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips•com> --- Changes in v2: None sound/soc/rockchip/rk3399_gru_sound.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sound/soc/rockchip/rk3399_gru_sound.c b/sound/soc/rockchip/rk3399_gru_sound.c index b050510be65f..ad19e391c4a6 100644 --- a/sound/soc/rockchip/rk3399_gru_sound.c +++ b/sound/soc/rockchip/rk3399_gru_sound.c @@ -55,6 +55,7 @@ static const struct snd_soc_dapm_route rockchip_dapm_routes[] = { {"MIC", NULL, "Headset Mic"}, {"DMIC1L", NULL, "Int Mic"}, {"DMIC1R", NULL, "Int Mic"}, + {"DMic", NULL, "Int Mic"}, /* Output Lines */ {"Headphones", NULL, "HPL"}, -- 2.11.0 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [RESEND PATCH v2 3/3] ASoC: rockchip: Init dapm routes dynamically 2017-09-18 11:17 [RESEND PATCH v2 1/3] ASoC: rockchip: Add dapm route for HDMI Jeffy Chen 2017-09-18 11:18 ` [RESEND PATCH v2 2/3] ASoC: rockchip: Add dapm route for DMic Jeffy Chen @ 2017-09-18 11:18 ` Jeffy Chen 2017-09-19 12:28 ` Mark Brown 2017-09-19 12:19 ` [RESEND PATCH v2 1/3] ASoC: rockchip: Add dapm route for HDMI Mark Brown 2 siblings, 1 reply; 7+ messages in thread From: Jeffy Chen @ 2017-09-18 11:18 UTC (permalink / raw) To: linux-arm-kernel Currently we are using a fixed list of dapm routes. Init dapm routes dynamically when parsing dailinks, since we are supporting optional codecs. Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips•com> Reviewed-by: Matthias Kaehlcke <mka@chromium•org> Tested-by: Matthias Kaehlcke <mka@chromium•org> --- Changes in v2: Fix DMic typo. sound/soc/rockchip/rk3399_gru_sound.c | 88 ++++++++++++++++++++++++++++------- 1 file changed, 72 insertions(+), 16 deletions(-) diff --git a/sound/soc/rockchip/rk3399_gru_sound.c b/sound/soc/rockchip/rk3399_gru_sound.c index ad19e391c4a6..fab868850d3a 100644 --- a/sound/soc/rockchip/rk3399_gru_sound.c +++ b/sound/soc/rockchip/rk3399_gru_sound.c @@ -50,20 +50,6 @@ static const struct snd_soc_dapm_widget rockchip_dapm_widgets[] = { SND_SOC_DAPM_LINE("HDMI", NULL), }; -static const struct snd_soc_dapm_route rockchip_dapm_routes[] = { - /* Input Lines */ - {"MIC", NULL, "Headset Mic"}, - {"DMIC1L", NULL, "Int Mic"}, - {"DMIC1R", NULL, "Int Mic"}, - {"DMic", NULL, "Int Mic"}, - - /* Output Lines */ - {"Headphones", NULL, "HPL"}, - {"Headphones", NULL, "HPR"}, - {"Speakers", NULL, "Speaker"}, - {"HDMI", NULL, "TX"}, -}; - static const struct snd_kcontrol_new rockchip_controls[] = { SOC_DAPM_PIN_SWITCH("Headphones"), SOC_DAPM_PIN_SWITCH("Speakers"), @@ -318,8 +304,6 @@ static struct snd_soc_card rockchip_sound_card = { .owner = THIS_MODULE, .dapm_widgets = rockchip_dapm_widgets, .num_dapm_widgets = ARRAY_SIZE(rockchip_dapm_widgets), - .dapm_routes = rockchip_dapm_routes, - .num_dapm_routes = ARRAY_SIZE(rockchip_dapm_routes), .controls = rockchip_controls, .num_controls = ARRAY_SIZE(rockchip_controls), }; @@ -395,6 +379,65 @@ static const struct snd_soc_dai_link rockchip_dais[] = { }, }; +static const struct snd_soc_dapm_route rockchip_sound_cdndp_routes[] = { + /* Output */ + {"HDMI", NULL, "TX"}, +}; + +static const struct snd_soc_dapm_route rockchip_sound_da7219_routes[] = { + /* Output */ + {"Headphones", NULL, "HPL"}, + {"Headphones", NULL, "HPR"}, + + /* Input */ + {"MIC", NULL, "Headset Mic"}, +}; + +static const struct snd_soc_dapm_route rockchip_sound_dmic_routes[] = { + /* Input */ + {"DMic", NULL, "Int Mic"}, +}; + +static const struct snd_soc_dapm_route rockchip_sound_max98357a_routes[] = { + /* Output */ + {"Speakers", NULL, "Speaker"}, +}; + +static const struct snd_soc_dapm_route rockchip_sound_rt5514_routes[] = { + /* Input */ + {"DMIC1L", NULL, "Int Mic"}, + {"DMIC1R", NULL, "Int Mic"}, +}; + +struct rockchip_sound_route { + const struct snd_soc_dapm_route *routes; + int num_routes; +}; + +static const struct rockchip_sound_route rockchip_routes[] = { + [DAILINK_CDNDP] = { + .routes = rockchip_sound_cdndp_routes, + .num_routes = ARRAY_SIZE(rockchip_sound_cdndp_routes), + }, + [DAILINK_DA7219] = { + .routes = rockchip_sound_da7219_routes, + .num_routes = ARRAY_SIZE(rockchip_sound_da7219_routes), + }, + [DAILINK_DMIC] = { + .routes = rockchip_sound_dmic_routes, + .num_routes = ARRAY_SIZE(rockchip_sound_dmic_routes), + }, + [DAILINK_MAX98357A] = { + .routes = rockchip_sound_max98357a_routes, + .num_routes = ARRAY_SIZE(rockchip_sound_max98357a_routes), + }, + [DAILINK_RT5514] = { + .routes = rockchip_sound_rt5514_routes, + .num_routes = ARRAY_SIZE(rockchip_sound_rt5514_routes), + }, + [DAILINK_RT5514_DSP] = {}, +}; + static int rockchip_sound_codec_node_match(struct device_node *np_codec) { int i; @@ -412,6 +455,7 @@ static int rockchip_sound_of_parse_dais(struct device *dev, struct device_node *np_cpu, *np_cpu0, *np_cpu1; struct device_node *np_codec; struct snd_soc_dai_link *dai; + struct snd_soc_dapm_route *routes; int i, index; card->dai_link = devm_kzalloc(dev, sizeof(rockchip_dais), @@ -419,9 +463,16 @@ static int rockchip_sound_of_parse_dais(struct device *dev, if (!card->dai_link) return -ENOMEM; + routes = devm_kzalloc(dev, sizeof(rockchip_routes), + GFP_KERNEL); + if (!routes) + return -ENOMEM; + card->dapm_routes = routes; + np_cpu0 = of_parse_phandle(dev->of_node, "rockchip,cpu", 0); np_cpu1 = of_parse_phandle(dev->of_node, "rockchip,cpu", 1); + card->num_dapm_routes = 0; card->num_links = 0; for (i = 0; i < ARRAY_SIZE(rockchip_dais); i++) { np_codec = of_parse_phandle(dev->of_node, @@ -449,6 +500,11 @@ static int rockchip_sound_of_parse_dais(struct device *dev, dai->codec_of_node = np_codec; dai->platform_of_node = np_cpu; dai->cpu_of_node = np_cpu; + + memcpy(routes + card->num_dapm_routes, + rockchip_routes[index].routes, + rockchip_routes[index].num_routes * sizeof(*routes)); + card->num_dapm_routes += rockchip_routes[index].num_routes; } return 0; -- 2.11.0 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [RESEND PATCH v2 3/3] ASoC: rockchip: Init dapm routes dynamically 2017-09-18 11:18 ` [RESEND PATCH v2 3/3] ASoC: rockchip: Init dapm routes dynamically Jeffy Chen @ 2017-09-19 12:28 ` Mark Brown 2017-09-19 12:44 ` jeffy 0 siblings, 1 reply; 7+ messages in thread From: Mark Brown @ 2017-09-19 12:28 UTC (permalink / raw) To: linux-arm-kernel On Mon, Sep 18, 2017 at 07:18:01PM +0800, Jeffy Chen wrote: > Currently we are using a fixed list of dapm routes. > > Init dapm routes dynamically when parsing dailinks, since we are > supporting optional codecs. This doesn't apply against current code, please check and resend. -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 488 bytes Desc: not available URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20170919/976db638/attachment.sig> ^ permalink raw reply [flat|nested] 7+ messages in thread
* [RESEND PATCH v2 3/3] ASoC: rockchip: Init dapm routes dynamically 2017-09-19 12:28 ` Mark Brown @ 2017-09-19 12:44 ` jeffy 0 siblings, 0 replies; 7+ messages in thread From: jeffy @ 2017-09-19 12:44 UTC (permalink / raw) To: linux-arm-kernel Hi Mark, On 09/19/2017 08:28 PM, Mark Brown wrote: > On Mon, Sep 18, 2017 at 07:18:01PM +0800, Jeffy Chen wrote: >> Currently we are using a fixed list of dapm routes. >> >> Init dapm routes dynamically when parsing dailinks, since we are >> supporting optional codecs. > > This doesn't apply against current code, please check and resend. > i rebased these patches to for-next 20170919, but nothing changed... but i found my other pending patch (https://patchwork.kernel.org/patch/9958055) might conflict to this, i'll send a new series to put all my patches together and solve the conflict... sorry for the trouble.. ^ permalink raw reply [flat|nested] 7+ messages in thread
* [RESEND PATCH v2 1/3] ASoC: rockchip: Add dapm route for HDMI 2017-09-18 11:17 [RESEND PATCH v2 1/3] ASoC: rockchip: Add dapm route for HDMI Jeffy Chen 2017-09-18 11:18 ` [RESEND PATCH v2 2/3] ASoC: rockchip: Add dapm route for DMic Jeffy Chen 2017-09-18 11:18 ` [RESEND PATCH v2 3/3] ASoC: rockchip: Init dapm routes dynamically Jeffy Chen @ 2017-09-19 12:19 ` Mark Brown 2017-09-19 12:37 ` jeffy 2 siblings, 1 reply; 7+ messages in thread From: Mark Brown @ 2017-09-19 12:19 UTC (permalink / raw) To: linux-arm-kernel On Mon, Sep 18, 2017 at 07:17:59PM +0800, Jeffy Chen wrote: > Add dapm route for DP codec. This is a resend of a patch you posted earlier in the same day? -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 488 bytes Desc: not available URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20170919/315bd71a/attachment.sig> ^ permalink raw reply [flat|nested] 7+ messages in thread
* [RESEND PATCH v2 1/3] ASoC: rockchip: Add dapm route for HDMI 2017-09-19 12:19 ` [RESEND PATCH v2 1/3] ASoC: rockchip: Add dapm route for HDMI Mark Brown @ 2017-09-19 12:37 ` jeffy 0 siblings, 0 replies; 7+ messages in thread From: jeffy @ 2017-09-19 12:37 UTC (permalink / raw) To: linux-arm-kernel Hi Mark, On 09/19/2017 08:19 PM, Mark Brown wrote: > On Mon, Sep 18, 2017 at 07:17:59PM +0800, Jeffy Chen wrote: >> Add dapm route for DP codec. > > This is a resend of a patch you posted earlier in the same day? > sorry, this is a resend of yesterday patches, to correct the wrong the wrong patch tag("Asoc") to "ASoC" ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2017-09-19 12:44 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-09-18 11:17 [RESEND PATCH v2 1/3] ASoC: rockchip: Add dapm route for HDMI Jeffy Chen 2017-09-18 11:18 ` [RESEND PATCH v2 2/3] ASoC: rockchip: Add dapm route for DMic Jeffy Chen 2017-09-18 11:18 ` [RESEND PATCH v2 3/3] ASoC: rockchip: Init dapm routes dynamically Jeffy Chen 2017-09-19 12:28 ` Mark Brown 2017-09-19 12:44 ` jeffy 2017-09-19 12:19 ` [RESEND PATCH v2 1/3] ASoC: rockchip: Add dapm route for HDMI Mark Brown 2017-09-19 12:37 ` jeffy
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox