[alsa-devel] Missing surround channels with Nvidia HDMI & snd-hda-intel driver

Takashi Iwai tiwai at suse.de
Wed Nov 15 10:53:01 CET 2017


On Tue, 14 Nov 2017 23:21:13 +0100,
VDR User wrote:
> 
> It just tried kernel 4.6-rc1 and the problem is present there as well.
> Is there a list of patches between stable kernel 4.5.7 and 4.6-rc1
> somewhere? I can try to revert each of them one at a time if so.
> Unless someone has any better idea to narrow this down to the
> offending commit?

There were a significant amount of changes between 4.5 and 4.6
regarding HD-audio HDMI/DP due to DP-MST support and the movement of
chmap stuff into sound/hda.

Both can be a culprit...

For checking the former, could you try the following?
- Checkout 4.5.7 git branch
- merge (not cherry-pick) the commit 022f344b41a5
  % git merge 022f344b41a5

  This will bring DP-MST changes on top of 4.5.7.

Then build this and check whether it shows the problem.  If yes, you
can easily bisect between 4.5.7 and here.  If it doesn't show a
problem, the problem is in the rest changes in 4.6-rc1.


thanks,

Takashi

> 
> Thanks
> Derek
> 
> On Tue, Nov 14, 2017 at 7:22 AM, VDR User <user.vdr at gmail.com> wrote:
> > Ok so after compiling a bunch of older kernels, I found that the
> > problem started with 4.6.0. Kernel 4.5.7 worked fine. With 4.6.0 I
> > get:
> >
> > ~$ speaker-test -c 6 -t wav
> >
> > speaker-test 1.1.3
> >
> > Playback device is default
> > Stream parameters are 48000Hz, S16_LE, 6 channels
> > WAV file(s)
> > Rate set to 48000Hz (requested 48000Hz)
> > Buffer size range from 64 to 5440
> > Period size range from 32 to 2720
> > Using max buffer size 5440
> > Periods = 4
> > was set period_size = 1088
> > was set buffer_size = 5440
> >  0 - Front Left
> >  1 - Front Right
> >  3 - Rear Right
> >  2 - Rear Left
> >  4 - Unknown
> >  5 - Unknown
> > Time per period = 8.524856
> >
> >
> > However, with 4.5.7 it was:
> >
> > ~$ speaker-test -c 6 -t wav
> >
> > speaker-test 1.1.3
> >
> > Playback device is default
> > Stream parameters are 48000Hz, S16_LE, 6 channels
> > WAV file(s)
> > Rate set to 48000Hz (requested 48000Hz)
> > Buffer size range from 64 to 5440
> > Period size range from 32 to 2720
> > Using max buffer size 5440
> > Periods = 4
> > was set period_size = 1088
> > was set buffer_size = 5440
> >  0 - Front Left
> >  4 - Front Center
> >  1 - Front Right
> >  3 - Rear Right
> >  2 - Rear Left
> >  5 - LFE
> > Time per period = 8.524740
> >
> > In both cases the audio announced the correct speaker position, but
> > the Front Center & LFE channels are labeled/reported incorrectly as
> > "Unknown" starting in 4.6.0. I looked at the 4.6 changelog audio
> > section (https://kernelnewbies.org/Linux_4.6#head-59f6bad0670ddd6511d239b83c36575b139798bf)
> > but didn't see anything Nvidia-specific, or anything that sounded like
> > it would cause this problem. Any ideas on the best way to proceed
> > finding the offending commit?
> >
> > Thanks!
> > Derek
> >
> >
> > On Mon, Nov 13, 2017 at 11:03 AM, Takashi Iwai <tiwai at suse.de> wrote:
> >> On Mon, 13 Nov 2017 18:18:39 +0100,
> >> VDR User wrote:
> >>>
> >>> Hi Takashi,
> >>>
> >>> Thanks for your reply. I have no clue unfortunately as I just noticed
> >>> it now. Is there a previous kernel you could recommend I try prior to
> >>> any or big changes to how snd-hda-intel works?
> >>
> >> Well, nothing I can think of for now, that's why I asked about testing
> >> the older kernel.  I'd do a bisection, e.g. try stable kernels like
> >> 4.4.x or 4.9.x, depending on the "previously working" version you
> >> remember, then go to the middle between them if it hits the
> >> regression.
> >>
> >>
> >> Takashi
> >>
> >>>
> >>> -Derek
> >>>
> >>> On Mon, Nov 13, 2017 at 8:40 AM, Takashi Iwai <tiwai at suse.de> wrote:
> >>> > On Sun, 12 Nov 2017 19:01:14 +0100,
> >>> > VDR User wrote:
> >>> >>
> >>> >> Hi. I just noticed that I'm missing some surround channels and I think
> >>> >> it may be a bug in the alsa drivers because my current setup used to
> >>> >> work just fine.
> >>> >
> >>> > If it's a regression, which kernel did work and which started a
> >>> > regression?  This alone would be a good help for tracking down the
> >>> > problem.
> >>> >
> >>> >
> >>> > Takashi
> >>> >
> >>> >> I'm running Debian Testing, stable kernel 4.13.12,
> >>> >> alsa-utils 1.1.3-1. My ~/.asoundrc is:
> >>> >>
> >>> >> ~$ cat .asoundrc
> >>> >> pcm.!default "hdmi:NVidia,1"
> >>> >> ~$
> >>> >>
> >>> >> I am not setting anything on my kernel load line:
> >>> >>
> >>> >>         echo    'Loading Linux 4.13.12-amd ...'
> >>> >>         linux   /vmlinuz-4.13.12-amd
> >>> >> root=UUID=6df5733d-b089-450c-9ec6-661dd013c7c0 ro
> >>> >>         echo    'Loading initial ramdisk ...'
> >>> >>         initrd  /initrd.img-4.13.12-amd
> >>> >>
> >>> >> The driver being used is snd-hda-intel with an Nvidia GT520 video
> >>> >> card. And lastly I do not have Pulse or a desktop environment. This is
> >>> >> a minimal HTPC setup that runs only an xserver to provide video
> >>> >> output, with audio/video being sent to my surround receiver via HDMI.
> >>> >>
> >>> >> The first thing I noticed was mpv-player was downmixing 5.1 to 3.1 and
> >>> >> giving the following log message:
> >>> >>
> >>> >> [ao/alsa] trying to set ALSA channel map: FL FR FC LFE RL RR
> >>> >> [ao/alsa] channel map reported by ALSA: FL FR FC LFE UNKNOWN UNKNOWN
> >>> >> [ao/alsa] which we understand as: fl-fr-fc-lfe-na-na
> >>> >> [ao/alsa] using the ALSA channel map.
> >>> >> [ao/alsa] hw pausing supported: yes
> >>> >> [ao/alsa] buffersize: 2720 samples
> >>> >> [ao/alsa] period size: 160 samples
> >>> >> [ao/alsa] device buffer: 2720 samples.
> >>> >> [ao/alsa] using soft-buffer of 8820 samples.
> >>> >> [cplayer] AO: [alsa] 44100Hz fl-fr-fc-lfe-na-na (3.1) 6ch s32
> >>> >> [cplayer] AO: Description: ALSA audio output
> >>> >> [af] Adding filter lavrresample
> >>> >> [lavrresample] Remix: 5.1 -> 3.1
> >>> >> [af] Audio filter chain:
> >>> >> [af]   [in] 44100Hz 5.1 6ch floatp
> >>> >> [af]   [lavrresample] 44100Hz fl-fr-fc-lfe-na-na (3.1) 6ch s32 [a]
> >>> >> [af]   [out] 44100Hz fl-fr-fc-lfe-na-na (3.1) 6ch s32
> >>> >> [af]   [ao] 44100Hz fl-fr-fc-lfe-na-na (3.1) 6ch s32
> >>> >>
> >>> >> That makes it look like Rear Left/Right channels are absent. I think
> >>> >> ran speaker-test. 4 and 5 show as "Unknown" but correctly audibly
> >>> >> announced as "front center" and "subwoofer" respectively:
> >>> >>
> >>> >> ~$ speaker-test -c 6 -t wav
> >>> >>
> >>> >> speaker-test 1.1.3
> >>> >>
> >>> >> Playback device is default
> >>> >> Stream parameters are 48000Hz, S16_LE, 6 channels
> >>> >> WAV file(s)
> >>> >> Rate set to 48000Hz (requested 48000Hz)
> >>> >> Buffer size range from 64 to 5440
> >>> >> Period size range from 32 to 2720
> >>> >> Using max buffer size 5440
> >>> >> Periods = 4
> >>> >> was set period_size = 1088
> >>> >> was set buffer_size = 5440
> >>> >>  0 - Front Left
> >>> >>  1 - Front Right
> >>> >>  3 - Rear Right
> >>> >>  2 - Rear Left
> >>> >>  4 - Unknown
> >>> >>  5 - Unknown
> >>> >>
> >>> >> Additional information that may be of use:
> >>> >>
> >>> >> ~$ aplay -l
> >>> >> **** List of PLAYBACK Hardware Devices ****
> >>> >> card 1: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
> >>> >>   Subdevices: 1/1
> >>> >>   Subdevice #0: subdevice #0
> >>> >> card 1: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
> >>> >>   Subdevices: 0/1
> >>> >>   Subdevice #0: subdevice #0
> >>> >>
> >>> >> ~$ cat /proc/asound/card1/eld#0.1
> >>> >> monitor_present         1
> >>> >> eld_valid               1
> >>> >> monitor_name            SONY AVAMP
> >>> >>
> >>> >> connection_type         HDMI
> >>> >> eld_version             [0x2] CEA-861D or below
> >>> >> edid_version            [0x3] CEA-861-B, C or D
> >>> >> manufacture_id          0xd94d
> >>> >> product_id              0xf02
> >>> >> port_id                 0x200
> >>> >> support_hdcp            0
> >>> >> support_ai              0
> >>> >> audio_sync_delay        0
> >>> >> speakers                [0x5f] FL/FR LFE FC RL/RR RC RLC/RRC
> >>> >> sad_count               12
> >>> >> sad0_coding_type        [0xc] MLP (Dolby TrueHD)
> >>> >> sad0_channels           2
> >>> >> sad0_rates              [0x1ec0] 44100 48000 88200 96000 176400 192000
> >>> >> sad1_coding_type        [0xc] MLP (Dolby TrueHD)
> >>> >> sad1_channels           6
> >>> >> sad1_rates              [0x1ec0] 44100 48000 88200 96000 176400 192000
> >>> >> sad2_coding_type        [0xc] MLP (Dolby TrueHD)
> >>> >> sad2_channels           8
> >>> >> sad2_rates              [0x6c0] 44100 48000 88200 96000
> >>> >> sad3_coding_type        [0xb] DTS-HD
> >>> >> sad3_channels           2
> >>> >> sad3_rates              [0x1ec0] 44100 48000 88200 96000 176400 192000
> >>> >> sad4_coding_type        [0xb] DTS-HD
> >>> >> sad4_channels           6
> >>> >> sad4_rates              [0x1ec0] 44100 48000 88200 96000 176400 192000
> >>> >> sad5_coding_type        [0xb] DTS-HD
> >>> >> sad5_channels           8
> >>> >> sad5_rates              [0x6c0] 44100 48000 88200 96000
> >>> >> sad6_coding_type        [0x1] LPCM
> >>> >> sad6_channels           2
> >>> >> sad6_rates              [0x1ee0] 32000 44100 48000 88200 96000 176400 192000
> >>> >> sad6_bits               [0xe0000] 16 20 24
> >>> >> sad7_coding_type        [0x1] LPCM
> >>> >> sad7_channels           6
> >>> >> sad7_rates              [0x1ee0] 32000 44100 48000 88200 96000 176400 192000
> >>> >> sad7_bits               [0xe0000] 16 20 24
> >>> >> sad8_coding_type        [0x1] LPCM
> >>> >> sad8_channels           8
> >>> >> sad8_rates              [0x1ee0] 32000 44100 48000 88200 96000 176400 192000
> >>> >> sad8_bits               [0xe0000] 16 20 24
> >>> >> sad9_coding_type        [0x2] AC-3
> >>> >> sad9_channels           6
> >>> >> sad9_rates              [0xe0] 32000 44100 48000
> >>> >> sad9_max_bitrate        680000
> >>> >> sad10_coding_type       [0x7] DTS
> >>> >> sad10_channels          6
> >>> >> sad10_rates             [0x6e0] 32000 44100 48000 88200 96000
> >>> >> sad10_max_bitrate       1536000
> >>> >> sad11_coding_type       [0xa] E-AC-3/DD+ (Dolby Digital Plus)
> >>> >> sad11_channels          8
> >>> >> sad11_rates             [0xc0] 44100 48000
> >>> >>
> >>> >> 02:00.0 VGA compatible controller: NVIDIA Corporation GF119 [GeForce
> >>> >> GT 520] (rev a1) (prog-if 00 [VGA controller])
> >>> >>         Subsystem: eVga.com. Corp. GF119 [GeForce GT 520]
> >>> >>         Flags: bus master, fast devsel, latency 0, IRQ 25
> >>> >>         Memory at fd000000 (32-bit, non-prefetchable) [size=16M]
> >>> >>         Memory at f0000000 (64-bit, prefetchable) [size=128M]
> >>> >>         Memory at fa000000 (64-bit, prefetchable) [size=32M]
> >>> >>         I/O ports at ec00 [size=128]
> >>> >>         [virtual] Expansion ROM at 000c0000 [disabled] [size=128K]
> >>> >>         Capabilities: <access denied>
> >>> >>         Kernel driver in use: nvidia
> >>> >>         Kernel modules: nvidia
> >>> >>
> >>> >> 02:00.1 Audio device: NVIDIA Corporation GF119 HDMI Audio Controller (rev a1)
> >>> >>         Subsystem: eVga.com. Corp. GF119 HDMI Audio Controller
> >>> >>         Flags: bus master, fast devsel, latency 0, IRQ 17
> >>> >>         Memory at fea7c000 (32-bit, non-prefetchable) [size=16K]
> >>> >>         Capabilities: <access denied>
> >>> >>         Kernel driver in use: snd_hda_intel
> >>> >>         Kernel modules: snd_hda_intel
> >>> >> _______________________________________________
> >>> >> Alsa-devel mailing list
> >>> >> Alsa-devel at alsa-project.org
> >>> >> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> >>> >>
> >>>
> 


More information about the Alsa-devel mailing list