devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Arnaud Pouliquen <arnaud.pouliquen@st.com>
To: Jyri Sarha <jsarha@ti.com>,
	dri-devel@lists.freedesktop.org, airlied@linux.ie,
	linux-omap@vger.kernel.org, devicetree@vger.kernel.org,
	bcousson@baylibre.com, alsa-devel@alsa-project.org,
	peter.ujfalusi@ti.com, moinejf@free.fr, tony@atomide.com,
	broonie@kernel.orgJyri Sarha <jsarha@ti.com>,
	liam.r.girdwood@linux.intel.com, tomi.valkeinen@ti.com,
	rmk+kernel@arm.linux.org.uk
Subject: Re: [PATCH RFC v4 3/8] ASoC: hdmi-codec: Add hdmi-codec for external HDMI-encoders
Date: Mon, 28 Sep 2015 11:01:34 +0200	[thread overview]
Message-ID: <560901EE.60407@st.com> (raw)
In-Reply-To: <56057A9E.9080602@st.com>

few questions/remarks
BR,
Arnaud

> +static void hdmi_codec_abort(struct device *dev)
> +{
> +    struct hdmi_codec_priv *hcp = dev_get_drvdata(dev);
> +
> +    dev_dbg(dev, "%s()\n", __func__);
> +
> +    mutex_lock(&hcp->current_stream_lock);
> +    if (hcp->current_stream && hcp->current_stream->runtime &&
> +        snd_pcm_running(hcp->current_stream)) {
> +        dev_info(dev, "HDMI audio playback aborted\n");
> +        snd_pcm_stream_lock_irq(hcp->current_stream);
> +        snd_pcm_stop(hcp->current_stream, SNDRV_PCM_STATE_DISCONNECTED);
> +        snd_pcm_stream_unlock_irq(hcp->current_stream);
> +    }
> +    mutex_unlock(&hcp->current_stream_lock);
> +}
Does driver should stop the stream in case of unplug?
This could generate unexpected behavior at application level.
Perhaps should be better if this part is managed in DRM driver. if HDMI 
master, I2S bus should be maintained ON to consume the audio stream 
until application action.

> +
> +static int hdmi_codec_hw_params(struct snd_pcm_substream *substream,
> +                struct snd_pcm_hw_params *params,
> +                struct snd_soc_dai *dai)
> +{
> +    struct hdmi_codec_priv *hcp = snd_soc_dai_get_drvdata(dai);
> +    struct hdmi_codec_params hp = {
> +        .iec = {
> +            .status = { 0 },
> +            .subcode = { 0 },
> +            .pad = 0,
> +            .dig_subframe = { 0 },
> +        }
> +    };
> +    int ret;
> +
> +    dev_dbg(dai->dev, "%s() width %d rate %d channels %d\n", __func__,
> +        params_width(params), params_rate(params),
> +        params_channels(params));
> +
> +    ret = snd_pcm_create_iec958_consumer_hw_params(params, hp.iec.status,
> +                               sizeof(hp.iec.status));
Tell me if i am wrong, but in case of SPDIF format, IEC status is 
managed by cpu_dai not by the codec.
To manage IEC61937 a control should be needed to update IEC status bits...

> +    if (ret < 0) {
> +        dev_err(dai->dev, "Creating IEC958 channel status failed %d\n",
> +            ret);
> +        return ret;
> +    }
> +
> +    ret = hdmi_codec_new_stream(substream, dai);
> +    if (ret)
> +        return ret;
> +
> +    hdmi_audio_infoframe_init(&hp.cea);
> +    hp.cea.channels = params_channels(params);
> +    hp.cea.coding_type = HDMI_AUDIO_CODING_TYPE_STREAM;
> +    hp.cea.sample_size = HDMI_AUDIO_SAMPLE_SIZE_STREAM;
> +    hp.cea.sample_frequency = HDMI_AUDIO_SAMPLE_FREQUENCY_STREAM;
> +
> +    hp.sample_width = params_width(params);
> +    hp.sample_rate = params_rate(params);
> +    hp.channels = params_channels(params);
> +
> +    return hcp->hcd.ops->hw_params(dai->dev->parent,
> &hcp->daifmt[dai->id],
> +                       &hp);
> +}
> +

       reply	other threads:[~2015-09-28  9:01 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <mailman.310.1442574427.844.alsa-devel@alsa-project.org>
     [not found] ` <56057A9E.9080602@st.com>
2015-09-28  9:01   ` Arnaud Pouliquen [this message]
2015-09-28 11:26     ` [PATCH RFC v4 3/8] ASoC: hdmi-codec: Add hdmi-codec for external HDMI-encoders Russell King - ARM Linux
2015-09-28 12:21       ` Daniel Vetter
2015-09-28 12:26     ` Jyri Sarha
2015-09-18 11:06 [PATCH RFC v4 0/8] Implement generic ASoC HDMI codec and use it in tda998x Jyri Sarha
2015-09-18 11:06 ` [PATCH RFC v4 3/8] ASoC: hdmi-codec: Add hdmi-codec for external HDMI-encoders Jyri Sarha
     [not found]   ` <6fe9ab5dff972e6f228259d6818f3f481a11577d.1442572860.git.jsarha-l0cyMroinI0@public.gmane.org>
2015-09-19 17:54     ` Mark Brown
2015-09-21  9:31       ` Russell King - ARM Linux
2015-09-21 13:41         ` Jyri Sarha
2015-09-21 17:18           ` Mark Brown

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=560901EE.60407@st.com \
    --to=arnaud.pouliquen@st.com \
    --cc=airlied@linux.ie \
    --cc=alsa-devel@alsa-project.org \
    --cc=bcousson@baylibre.com \
    --cc=broonie@kernel.orgJyri \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jsarha@ti.com \
    --cc=linux-omap@vger.kernel.org \
    --cc=moinejf@free.fr \
    --cc=peter.ujfalusi@ti.com \
    --cc=tony@atomide.com \
    /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).