[Intel-gfx] i915, HDMI/DP audio with multiple monitors
Bruno Prémont
bonbons at sysophe.eu
Thu Sep 13 07:25:37 UTC 2018
On Wed, 12 Sep 2018 20:06:43 +0200 Takashi Iwai wrote:
> On Wed, 12 Sep 2018 19:46:58 +0200,
> Ville Syrjälä wrote:
> >
> > On Tue, Sep 11, 2018 at 03:50:13PM +0200, Bruno Prémont wrote:
> > > Hi,
> > >
> > > I have a system with multiple monitors and would like to send
> > > notification sounds to the monitor on which corresponding
> > > window is visible.
> > >
> > > For a workstation and a tiny computer things look different:
> > > - workstation (Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz):
> > > 00:02.0 VGA compatible controller [0300]: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller [8086:0412] (rev 06)
> > > 00:03.0 Audio device [0403]: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller [8086:0c0c] (rev 06)
> > > 00:1b.0 Audio device [0403]: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller [8086:8c20] (rev 04)
> > >
> > > Here alsa show me two cards:
> > > - HDA Intel PCH (Realtek ALC671)
> > > - HDA Intel HDMI (Intel Generic)
> > >
> > > **** List of PLAYBACK Hardware Devices ****
> > > card 0: HDMI [HDA Intel HDMI], device 3: Generic Digital [Generic Digital]
> > > Subdevices: 1/1
> > > Subdevice #0: subdevice #0
>
> Is a proper kernel config (CONFIG_SND_HDA_CODEC_HDMI) enabled?
It was missing and adding it helps a lot.
Would there be a way to auto-select it when corresponding DRM driver is
selected?
Kind of
select SND_HDA_CODEC_HDMI if SND_HDA
or at least mention it in description, maybe as conditional comment is
done for HDA codecs.
> The device name looks strange as if it's not properly bound with the
> HDMI codec driver.
With SND_HDA_CODEC_HDMI enabled I get better results on the tiny
computer (not checked on workstation yet):
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC671 Analog [ALC671 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 9: HDMI 3 [HDMI 3]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 10: HDMI 4 [HDMI 4]
Subdevices: 1/1
Subdevice #0: subdevice #0
Shown by aplay -L as:
...
hdmi:CARD=PCH,DEV=0
HDA Intel PCH, HDMI 0
HDMI Audio Output
hdmi:CARD=PCH,DEV=1
HDA Intel PCH, HDMI 1
HDMI Audio Output
hdmi:CARD=PCH,DEV=2
HDA Intel PCH, HDMI 2
HDMI Audio Output
hdmi:CARD=PCH,DEV=3
HDA Intel PCH, HDMI 3
HDMI Audio Output
hdmi:CARD=PCH,DEV=4
HDA Intel PCH, HDMI 4
HDMI Audio Output
Alsamixer shows me 5 S/PDIFs (S/PDIF, S/PDIF 1, ..., S/PDIF 4) which is
not that helpful. Why don't alsamixer and aplay -L at least use the same
naming scheme? If the naming there would match output naming as show by
xrandr (or /sys/class/drm/... it would be even better!
xrandr:
HDMI-1 disconnected (normal left inverted right x axis y axis)
DP-1 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 1439mm x 809mm
HDMI-2 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
HDMI-3 connected 3840x2160+3840+0 (normal left inverted right x axis y axis) 1872mm x 1053mm
DP-3 disconnected (normal left inverted right x axis y axis)
/sys/class/drm/:
card0-DP-1 -> ../../devices/pci0000:00/0000:00:02.0/drm/card0/card0-DP-1
card0-DP-2 -> ../../devices/pci0000:00/0000:00:02.0/drm/card0/card0-DP-2
card0-DP-3 -> ../../devices/pci0000:00/0000:00:02.0/drm/card0/card0-DP-3
card0-HDMI-A-1 -> ../../devices/pci0000:00/0000:00:02.0/drm/card0/card0-HDMI-A-1
card0-HDMI-A-2 -> ../../devices/pci0000:00/0000:00:02.0/drm/card0/card0-HDMI-A-2
card0-HDMI-A-3 -> ../../devices/pci0000:00/0000:00:02.0/drm/card0/card0-HDMI-A-3
Testing each output with aplay I could determine that hw:0,7 (currently) matches
DP-1 (as reported by xrandr) and hw:0,8 matches HDMI-3 (as reported by
xrandr).
Though while testing often the first sound played never reaches the
monitor's speakers, only a second run shortly after the first reaches
speakers.
(played sound is rather short:
aplay -D hw:0,7 /usr/share/sounds/purple/receive.wav
same with slightly longer login.wav)
Cheers,
Bruno
More information about the Intel-gfx
mailing list