Linking ALSA playback devices and DRM connectors

Ser, Simon simon.ser at intel.com
Thu Jun 6 09:17:38 UTC 2019


On Tue, 2019-06-04 at 17:24 +0200, Daniel Vetter wrote:
> On Tue, Jun 4, 2019 at 5:15 PM Christian König
> <ckoenig.leichtzumerken at gmail.com> wrote:
> > Am 04.06.19 um 17:05 schrieb Ser, Simon:
> > > Hi,
> > > 
> > > I'm trying to link ALSA playback devices and DRM connectors. In other
> > > words, I'd like to be able to know which ALSA device I should open to
> > > play audio on a given connector.
> > > 
> > > Unfortunately, I haven't found a way to extract this information. I
> > > know /proc/asound/cardN/eld* expose the EDID-like data. However by
> > > looking at the ALSA API (also: aplay -l and -L) I can't find a way to
> > > figure out which PCM device maps to the ELD.
> > > 
> > > Am I missing something?
> > 
> > Is that actually fixed on all hardware? Or do we maybe have some
> > hardware with only one audio codec and multiple connectors?
> > 
> > > If not, what would be the best way to expose this?
> > > 
> > > - A symlink to the ALSA audio PCM device in
> > >    /sys/class/drm/cardN-CONNECTOR?
> > > - A symlink to the DRM connector in /sys/class/sound/pcm*?
> > 
> > If it's fixed than those two options sound sane to me.
> > 
> > > - A DRM connector property?
> > 
> > If it's configurable than that sounds like a good option to me.
> > 
> > Anyway added our DC team, stuff like that is their construction site.
> > 
> > Regards,
> > Christian.
> > 
> > > - Somehow expose the connector name via the ALSA API?
> > > - Expose the connector EDID via ALSA?
> > > - Other ideas?
> 
> I think on our MST hw you get a combination of CRTCs x CONNECTORs on
> the alsa side. I.e. for every pair of connector and crtc you get a
> separate alsa pin. This is because with mst, you could have up to
> num_crtcs streams on a single connector. Not sure how to model that.

I assume this means "up to num_crtcs streams an a physical connector".
With MST a physical connector can back more than one DRM connector.

> Bigger question: How do you want to make the cooperation happen?
> There's been some ideas floating about making the hdmi connection
> between drm and alsa somehow represented in the code, but nothing ever
> really happened. there's drm_audio_component.h, but that's just the
> interface, it doesn't really solve how to make the connection. Also
> only used by i915/hda.

To be completely honest I have no idea. That's why I sent this e-
mail. :P

Indeed, it seems that the interface isn't enough (get_eld and pin2port
are interesting though).

> > > Thanks!
> > > 
> > > Simon Ser
> > > _______________________________________________
> > > dri-devel mailing list
> > > dri-devel at lists.freedesktop.org
> > > https://lists.freedesktop.org/mailman/listinfo/dri-devel
> > 
> > _______________________________________________
> > dri-devel mailing list
> > dri-devel at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/dri-devel
> 
> 


More information about the dri-devel mailing list