From: PC Liao <pc.liao@mediatek.com>
To: Matthias Brugger <matthias.bgg@gmail.com>
Cc: "Jean-Francois Moine" <moinejf@free.fr>,
"alsa-devel@alsa-project.org" <alsa-devel@alsa-project.org>,
"Lars-Peter Clausen" <lars@metafoo.de>,
"Russell King - ARM Linux" <linux@arm.linux.org.uk>,
"kernel@pengutronix.de" <kernel@pengutronix.de>,
"Arnaud Pouliquen" <arnaud.pouliquen@st.com>,
"Koro Chen (陳思翰)" <koro.chen@mediatek.com>,
"Jyri Sarha" <jsarha@ti.com>,
"Liam Girdwood" <lgirdwood@gmail.com>,
"Mark Brown" <broonie@kernel.org>,
"linux-mediatek@lists.infradead.org"
<linux-mediatek@lists.infradead.org>,
"Daniel Kurtz" <djkurtz@chromium.org>,
"Philipp Zabel" <p.zabel@pengutronix.de>,
"Cawa Cheng (鄭曄禧)" <cawa.cheng@mediatek.com>
Subject: Re: [PATCH v5 3/9] ASoC: mediatek: Add HDMI dai-links in the mt8173-rt5650-rt5676 machine driver
Date: Tue, 15 Mar 2016 11:22:12 +0800 [thread overview]
Message-ID: <1458012132.13144.10.camel@mtksdaap41> (raw)
In-Reply-To: <56E74AFB.6070105@gmail.com>
Hi Matthias,
On Tue, 2016-03-15 at 07:36 +0800, Matthias Brugger wrote:
>
> On 02/03/16 15:49, Philipp Zabel wrote:
> > From: Koro Chen <koro.chen@mediatek.com>
> >
> > This creates pcmC0D2p for the HDMI playback in the same card.
> >
> > Signed-off-by: Koro Chen <koro.chen@mediatek.com>
> > Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
> > ---
> > .../bindings/sound/mt8173-rt5650-rt5676.txt | 5 ++-
> > sound/soc/mediatek/mt8173-rt5650-rt5676.c | 48 ++++++++++++++++++++++
> > 2 files changed, 51 insertions(+), 2 deletions(-)
> >
> > diff --git a/Documentation/devicetree/bindings/sound/mt8173-rt5650-rt5676.txt b/Documentation/devicetree/bindings/sound/mt8173-rt5650-rt5676.txt
> > index f205ce9..ac28cdb 100644
> > --- a/Documentation/devicetree/bindings/sound/mt8173-rt5650-rt5676.txt
> > +++ b/Documentation/devicetree/bindings/sound/mt8173-rt5650-rt5676.txt
> > @@ -1,15 +1,16 @@
> > -MT8173 with RT5650 RT5676 CODECS
> > +MT8173 with RT5650 RT5676 CODECS and HDMI via I2S
> >
> > Required properties:
> > - compatible : "mediatek,mt8173-rt5650-rt5676"
> > - mediatek,audio-codec: the phandles of rt5650 and rt5676 codecs
> > + and of the hdmi encoder node
> > - mediatek,platform: the phandle of MT8173 ASoC platform
> >
> > Example:
> >
> > sound {
> > compatible = "mediatek,mt8173-rt5650-rt5676";
> > - mediatek,audio-codec = <&rt5650 &rt5676>;
> > + mediatek,audio-codec = <&rt5650 &rt5676 &hdmi0>;
> > mediatek,platform = <&afe>;
> > };
> >
> > diff --git a/sound/soc/mediatek/mt8173-rt5650-rt5676.c b/sound/soc/mediatek/mt8173-rt5650-rt5676.c
> > index 5c4c58c..def9d95 100644
> > --- a/sound/soc/mediatek/mt8173-rt5650-rt5676.c
> > +++ b/sound/soc/mediatek/mt8173-rt5650-rt5676.c
> > @@ -18,6 +18,7 @@
> > #include <linux/gpio.h>
> > #include <linux/of_gpio.h>
> > #include <sound/soc.h>
> > +#include <sound/hdmi-codec.h>
> > #include <sound/jack.h>
> > #include "../codecs/rt5645.h"
> > #include "../codecs/rt5677.h"
> > @@ -131,10 +132,31 @@ static struct snd_soc_dai_link_component mt8173_rt5650_rt5676_codecs[] = {
> > },
> > };
> >
> > +static struct snd_soc_jack mt8173_hdmi_card_jack;
> > +
> > +static int mt8173_hdmi_init(struct snd_soc_pcm_runtime *runtime)
> > +{
> > + struct snd_soc_card *card = runtime->card;
> > + struct snd_soc_codec *codec = runtime->codec;
> > + int ret;
> > +
> > + /* enable jack detection */
> > + ret = snd_soc_card_jack_new(card, "HDMI Jack", SND_JACK_LINEOUT,
> > + &mt8173_hdmi_card_jack, NULL, 0);
> > + if (ret) {
> > + dev_err(card->dev, "Can't new HDMI Jack %d\n", ret);
> > + return ret;
> > + }
> > +
> > + return hdmi_codec_set_jack_detect(codec, &mt8173_hdmi_card_jack);
> > +}
> > +
> > enum {
> > DAI_LINK_PLAYBACK,
> > DAI_LINK_CAPTURE,
> > + DAI_LINK_HDMI,
> > DAI_LINK_CODEC_I2S,
> > + DAI_LINK_HDMI_I2S,
> > DAI_LINK_INTERCODEC
> > };
> >
> > @@ -161,6 +183,16 @@ static struct snd_soc_dai_link mt8173_rt5650_rt5676_dais[] = {
> > .dynamic = 1,
> > .dpcm_capture = 1,
> > },
> > + [DAI_LINK_HDMI] = {
> > + .name = "HDMI",
> > + .stream_name = "HDMI PCM",
> > + .cpu_dai_name = "HDMI",
> > + .codec_name = "snd-soc-dummy",
> > + .codec_dai_name = "snd-soc-dummy-dai",
> > + .trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST},
> > + .dynamic = 1,
> > + .dpcm_playback = 1,
> > + },
> >
> > /* Back End DAI links */
> > [DAI_LINK_CODEC_I2S] = {
> > @@ -177,6 +209,14 @@ static struct snd_soc_dai_link mt8173_rt5650_rt5676_dais[] = {
> > .dpcm_playback = 1,
> > .dpcm_capture = 1,
> > },
> > + [DAI_LINK_HDMI_I2S] = {
> > + .name = "HDMI BE",
> > + .cpu_dai_name = "HDMIO",
> > + .no_pcm = 1,
> > + .codec_dai_name = "i2s-hifi",
> > + .dpcm_playback = 1,
> > + .init = mt8173_hdmi_init,
> > + },
> > /* rt5676 <-> rt5650 intercodec link: Sets rt5676 I2S2 as master */
> > [DAI_LINK_INTERCODEC] = {
> > .name = "rt5650_rt5676 intercodec",
> > @@ -251,6 +291,14 @@ static int mt8173_rt5650_rt5676_dev_probe(struct platform_device *pdev)
> > mt8173_rt5650_rt5676_dais[DAI_LINK_INTERCODEC].codec_of_node =
> > mt8173_rt5650_rt5676_codecs[1].of_node;
> >
> > + mt8173_rt5650_rt5676_dais[DAI_LINK_HDMI_I2S].codec_of_node =
> > + of_parse_phandle(pdev->dev.of_node, "mediatek,audio-codec", 2);
> > + if (!mt8173_rt5650_rt5676_dais[DAI_LINK_HDMI_I2S].codec_of_node) {
> > + dev_err(&pdev->dev,
> > + "Property 'audio-codec' missing or invalid\n");
> > + return -EINVAL;
>
> Do we really need to break the old dts binding?
> Can't we just drop the return and keep add the audio-codec as optional?
>
> Regards,
> Matthias
I think that it really needs to break dts binding, because it has
declared DAI_LINK_HDMI_I2S in static struct snd_soc_dai_link
mt8173_rt5650_rt5676_dais[].
If I just remove this line:
return -EINVAL;
it will probe failed like:
[ 2.498403] mtk-rt5650-rt5676 sound: Property 'audio-codec' missing
or invalid
[ 2.505031] mtk-rt5650-rt5676 sound: ASoC: Neither/both codec
name/of_node are set for HDMI BE
[ 2.513090] mtk-rt5650-rt5676 sound: mt8173_rt5650_rt5676_dev_probe
snd_soc_register_card fail -22
[ 2.520896] mtk-rt5650-rt5676: probe of sound failed with error -22
Thanks!
>
> > + }
> > +
> > card->dev = &pdev->dev;
> > platform_set_drvdata(pdev, card);
> >
> >
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
next prev parent reply other threads:[~2016-03-15 3:22 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-02 14:49 [PATCH v5 0/9] ASoC: Add mediatek HDMI codec support Philipp Zabel
2016-03-02 14:49 ` [PATCH v5 2/9] ASoC: mediatek: address dai link array entries by enum Philipp Zabel
[not found] ` <1456930153-11853-1-git-send-email-p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2016-03-02 14:49 ` [PATCH v5 1/9] drm/mediatek: hdmi: Add audio interface to the hdmi-codec driver Philipp Zabel
2016-03-02 14:49 ` [PATCH v5 3/9] ASoC: mediatek: Add HDMI dai-links in the mt8173-rt5650-rt5676 machine driver Philipp Zabel
2016-03-14 23:36 ` Matthias Brugger
2016-03-15 3:22 ` PC Liao [this message]
2016-03-02 14:49 ` [PATCH v5 4/9] video: rmk's HDMI notification prototype Philipp Zabel
2016-03-02 14:49 ` [PATCH v5 5/9] drm/mediatek: hdmi: issue notifications Philipp Zabel
2016-03-02 14:49 ` [PATCH v5 6/9] ASoC: hdmi-codec: Use HDMI notifications to add jack support Philipp Zabel
2016-03-07 22:31 ` Jyri Sarha
2016-03-08 8:31 ` Philipp Zabel
2016-03-02 14:49 ` [PATCH v5 7/9] ASoC: hdmi-codec: Add ELD control Philipp Zabel
2016-03-02 14:49 ` [PATCH v5 8/9] drm/mediatek: hdmi: use helper function for N and CTS calculation Philipp Zabel
2016-03-02 14:49 ` [PATCH v5 9/9] ASoC: mediatek: Add HDMI dai-links to the mt8173-rt5650 machine driver Philipp Zabel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1458012132.13144.10.camel@mtksdaap41 \
--to=pc.liao@mediatek.com \
--cc=alsa-devel@alsa-project.org \
--cc=arnaud.pouliquen@st.com \
--cc=broonie@kernel.org \
--cc=cawa.cheng@mediatek.com \
--cc=djkurtz@chromium.org \
--cc=jsarha@ti.com \
--cc=kernel@pengutronix.de \
--cc=koro.chen@mediatek.com \
--cc=lars@metafoo.de \
--cc=lgirdwood@gmail.com \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux@arm.linux.org.uk \
--cc=matthias.bgg@gmail.com \
--cc=moinejf@free.fr \
--cc=p.zabel@pengutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).