dri-devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Arnaud Pouliquen <arnaud.pouliquen@st.com>
To: Jyri Sarha <jsarha@ti.com>,
	"alsa-devel@alsa-project.org" <alsa-devel@alsa-project.org>,
	"dri-devel@lists.freedesktop.org"
	<dri-devel@lists.freedesktop.org>
Cc: "moinejf@free.fr" <moinejf@free.fr>,
	"linux@arm.linux.org.uk" <linux@arm.linux.org.uk>,
	Benjamin Gaignard <benjamin.gaignard@linaro.org>,
	David Airlie <airlied@linux.ie>,
	"broonie@kernel.org" <broonie@kernel.org>,
	"lgirdwood@gmail.com" <lgirdwood@gmail.com>,
	"peter.ujfalusi@ti.com" <peter.ujfalusi@ti.com>,
	Takashi Iwai <tiwai@suse.de>,
	"tony@atomide.com" <tony@atomide.com>,
	"tomi.valkeinen@ti.com" <tomi.valkeinen@ti.com>,
	"bcousson@baylibre.com" <bcousson@baylibre.com>
Subject: Re: [PATCH RFC V2 0/5] another generic audio hdmi codec proposal
Date: Wed, 7 Oct 2015 10:19:27 +0200	[thread overview]
Message-ID: <5614D58F.9010102@st.com> (raw)
In-Reply-To: <5613EC62.8000007@ti.com>



>> My approach is the reverse: DRM driver does not need to know anything
>> about audio side. As ALSA is the client of DRM, seems more logical from
>> my point of view ...
>> Now if a generic solution must be found for all video drivers, sure,
>> your solution is more flexible.
>> But if i well understood fbdev drivers are no more accepted for upstream
>> (please correct me if I'm wrong).
>> So i don't know we have to keep fbdev in picture...
>>
>
> I am not promoting fbdev support. I am merely asking if we want to force
> all HDMI drivers to implement a drm_bridge if they want to support audio.
>
Yes this is a good point... My implementation is based on hypothesis 
that HDMI drivers are now upstreamed as DRM drivers.

>>> - HDMI encoder driver implementations that do not use DRM bridge
>>>      abstraction do not need add an extra DRM object just to get the
>>>      audio working.
>>>
>>> Short comings I see in the current HDMI audio bridge approach:
>>>
>>> In its current from the DRM audio bridge abstraction pretends to be a
>>> generic audio abstraction for DRM devices, but the implementation is
>>> quite specific to external HDMI encoders with spdif and/or i2s
>>> interface. There is a lot of HDMI video devices that provide the
>>> digital audio interface (ASoC DAI) directly and there is no need for
>>> anything but dummy codec implementation (if following ASoC
>>> paradigm). Before going forward I think we should at least consider
>>> how this abstraction would serve those devices.
>> Sorry, but i don't see any difference between both implementations for
>> this point.In both implementations, ops are called only if defined.
>> Could you give me name of the drivers you have in mind?
>
> I am not talking about Beaglebone-Black or tda998x here. There are
> platforms where video HW provides the digital audio interface for HDMI
> audio directly. For instance OMAP4 and OMAP5 (see
> sound/soc/omap/omap-hdmi-audio.c and drivers/video/fbdev/omap2/dss/) are
> like that.
Not checked in details but seems similar to your approach except ops 
used by cpu_dai.

>
>>>
>>> Also, I am not entirely happy how the drm_audio_bridge_funcs are used
>>> at the moment. The do not map too well to ASoC DAI callbacks and I do
>>> not see too much point in creating a completely new audio-callback
>>> abstraction, that is sligtly incompatible with ALSA, and then
>>> translating alsa callbacks to these new callbacks. I think the
>>> callbacks should map more or less directly ALSA callbacks.
>>
>> As API is defined in DRM, it seems more logical to match it with the one
>> defined for video. From my windows, i didn't see any blocking point to
>> connect codec callback with this API.
>> But anyway, this API is not freezed, it could be improved with your help.
>
> The most usual things can be made to work with your API too, but the
> translation is not the most efficient one and some features are missing,
> for instance muting.
Could be added but is it necessary if trigger is implemented?( see my 
next comments)

> Also, in ALSA side the prepare and trigger
> callbacks are meant to be used only for starting and stopping the audio
> stream.
Yes but for me, it is required. Otherwise how to manage CPU-DAI master 
configuration?
if stream is stopped, cpu_dai can be stopped as there is no more stream 
to sent on bus. If no information is sent to HDMI, This generates HDMI 
codec or protocol issue...
Use startup/shutdown/digital_mute seems not sufficient.

The stream is configured before either one of those are called.
> With your API each pause+resume from a video client will reconfigure the
> audio from the scratch.
Configuration is sent using pre_enable operation. So no reconfiguration 
should be re-applied.

Best Regards
Arnaud

  parent reply	other threads:[~2015-10-07  8:19 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-01 16:50 [PATCH RFC V2 0/5] another generic audio hdmi codec proposal Arnaud Pouliquen
2015-10-01 16:50 ` [PATCH RFC V2 1/5] video: hdmi: add helper function for N and CTS Arnaud Pouliquen
2015-10-01 16:50 ` [PATCH RFC V2 2/5] drm: add helper functions to add audio capabilities for bridge Arnaud Pouliquen
2015-10-01 16:50 ` [PATCH RFC V2 3/5] ASoC: codec: hdmi drm codec driver Arnaud Pouliquen
2015-10-01 16:50 ` [PATCH RFC V2 4/5] drm: sti: connect audio driver Arnaud Pouliquen
2015-10-01 16:50 ` [PATCH RFC V2 5/5] DT: sti: add audio HDMI dai link in audio card Arnaud Pouliquen
2015-10-05 13:27 ` [PATCH RFC V2 0/5] another generic audio hdmi codec proposal Jyri Sarha
2015-10-06  9:23   ` Arnaud Pouliquen
2015-10-06 14:33     ` [alsa-devel] " Jean-Francois Moine
2015-10-07  7:48       ` Arnaud Pouliquen
2015-10-07  9:05         ` [alsa-devel] " Russell King - ARM Linux
2015-10-06 15:44     ` Jyri Sarha
2015-10-06 16:46       ` Mark Brown
2015-10-06 18:51         ` [alsa-devel] " Russell King - ARM Linux
2015-10-07  7:36           ` Jyri Sarha
2015-10-07  8:19       ` Arnaud Pouliquen [this message]
2015-10-07 10:21         ` Lars-Peter Clausen

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=5614D58F.9010102@st.com \
    --to=arnaud.pouliquen@st.com \
    --cc=airlied@linux.ie \
    --cc=alsa-devel@alsa-project.org \
    --cc=bcousson@baylibre.com \
    --cc=benjamin.gaignard@linaro.org \
    --cc=broonie@kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jsarha@ti.com \
    --cc=lgirdwood@gmail.com \
    --cc=linux@arm.linux.org.uk \
    --cc=moinejf@free.fr \
    --cc=peter.ujfalusi@ti.com \
    --cc=tiwai@suse.de \
    --cc=tomi.valkeinen@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