[alsa-devel] Missing surround channels with Nvidia HDMI & snd-hda-intel driver
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. 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
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@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
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?
-Derek
On Mon, Nov 13, 2017 at 8:40 AM, Takashi Iwai tiwai@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@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
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@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@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
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-59f6bad0670ddd6511d239b83c36575b139...) 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@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@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@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
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?
Thanks Derek
On Tue, Nov 14, 2017 at 7:22 AM, VDR User user.vdr@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-59f6bad0670ddd6511d239b83c36575b139...) 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@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@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@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
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@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-59f6bad0670ddd6511d239b83c36575b139...) 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@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@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@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
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.
Hi Takashi,
I did: git clone https://github.com/torvalds/linux.git cd linux git checkout 022f344b41a5
After compiling, audio is working correctly with that commit: ~$ 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.526391
Do you happen to known which commit I can try next that *should* have the problem so I can git bisect from there?
Thanks!
thanks,
Takashi
Thanks Derek
On Tue, Nov 14, 2017 at 7:22 AM, VDR User user.vdr@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-59f6bad0670ddd6511d239b83c36575b139...) 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@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@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@alsa-project.org > http://mailman.alsa-project.org/mailman/listinfo/alsa-devel >
Ok, after doing a git bisect on the kernel tree, I wound up with:
41eb94fd26f6c150b0460e01ecc84d643355f9b6 is the first bad commit commit 41eb94fd26f6c150b0460e01ecc84d643355f9b6 Author: Vinod Koul vinod.koul@intel.com Date: Fri Mar 4 20:25:30 2016 +0530
ALSA: compress: fix some typos
So, something must have went wrong because that commit is just spelling and grammar fixes in comments.
How can I do a git bisect for just sound/ instead of the whole kernel? I assume I'd have to clone the kernel, delete sound/, then clone the alsa dev git sound/ in its place? It should be easier to git bisect in alsa, then simply recompile modules, install, load, test, and repeat until I find the offending commit right?
On Wed, Nov 15, 2017 at 8:34 AM, VDR User user.vdr@gmail.com 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.
Hi Takashi,
I did: git clone https://github.com/torvalds/linux.git cd linux git checkout 022f344b41a5
After compiling, audio is working correctly with that commit: ~$ 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.526391
Do you happen to known which commit I can try next that *should* have the problem so I can git bisect from there?
Thanks!
On Thu, 16 Nov 2017 06:53:37 +0100, VDR User wrote:
Ok, after doing a git bisect on the kernel tree, I wound up with:
41eb94fd26f6c150b0460e01ecc84d643355f9b6 is the first bad commit commit 41eb94fd26f6c150b0460e01ecc84d643355f9b6 Author: Vinod Koul vinod.koul@intel.com Date: Fri Mar 4 20:25:30 2016 +0530
ALSA: compress: fix some typos
So, something must have went wrong because that commit is just spelling and grammar fixes in comments.
Yeah, that's very unlikely.
How can I do a git bisect for just sound/ instead of the whole kernel? I assume I'd have to clone the kernel, delete sound/, then clone the alsa dev git sound/ in its place? It should be easier to git bisect in alsa, then simply recompile modules, install, load, test, and repeat until I find the offending commit right?
What you can try is to bisect like git bisect start -- sound/hda sound/pci/hda git bisect good v4.5 git bisect bad v4.6-rc1
This will concentrate only on commits in sound/hda/* and sound/pci/hda/*. You have to be careful about the kernel version to be built eventually jumping back and forth, and remember which one is installed and rebooted/retested. I usually put a different suffix string to CONFIG_LOCALVERSION at each build or set CONFIG_LOCALVERSION_AUTO to put the git commit id.
Takashi
On Wed, Nov 15, 2017 at 8:34 AM, VDR User user.vdr@gmail.com 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.
Hi Takashi,
I did: git clone https://github.com/torvalds/linux.git cd linux git checkout 022f344b41a5
After compiling, audio is working correctly with that commit: ~$ 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.526391
Do you happen to known which commit I can try next that *should* have the problem so I can git bisect from there?
Thanks!
What you can try is to bisect like git bisect start -- sound/hda sound/pci/hda git bisect good v4.5 git bisect bad v4.6-rc1
Ok, did more bisect'ing. I had to skip a commit because the compile failed but other than that, this is what I wound up with:
git bisect start '--' 'sound/hda' 'sound/pci/hda' # good: [fe0d128c57bf927a713159f60a18d9f315d4d91d] ALSA: jack: Allow building the jack layer without input device git bisect good fe0d128c57bf927a713159f60a18d9f315d4d91d # bad: [9b3dc8aa3fb1a5f38ca9501f20f6ea4dced10fa0] ALSA: hda - Register chmap obj as priv data instead of codec git bisect bad 9b3dc8aa3fb1a5f38ca9501f20f6ea4dced10fa0 # skip: [d61b04f801e6005182d432ebe4a0211c1d6feadd] Merge branch 'for-linus' into for-next git bisect skip d61b04f801e6005182d432ebe4a0211c1d6feadd # good: [ec75a940b1037e877efd9a5a9e94eab1e464f73b] ALSA: hda - hdmi add wmb barrier for audio component git bisect good ec75a940b1037e877efd9a5a9e94eab1e464f73b # good: [d10a80de04a3a8c0d7c1567cbc0a8d2e1181c10a] ALSA: hda - hdmi_find_pcm_slot return value bug fix git bisect good d10a80de04a3a8c0d7c1567cbc0a8d2e1181c10a # good: [6defb60ae4ffe92c29291ed49695daa255b8f559] Merge branch 'for-linus' into for-next git bisect good 6defb60ae4ffe92c29291ed49695daa255b8f559 # good: [67b90cb84be8fde0e51f71834e15c32fbec08562] ALSA: hda - Create common chmap object git bisect good 67b90cb84be8fde0e51f71834e15c32fbec08562 # first bad commit: [9b3dc8aa3fb1a5f38ca9501f20f6ea4dced10fa0] ALSA: hda - Register chmap obj as priv data instead of codec
9b3dc8aa3fb1a5f38ca9501f20f6ea4dced10fa0 is the first bad commit commit 9b3dc8aa3fb1a5f38ca9501f20f6ea4dced10fa0 Author: Subhransu S. Prusty subhransu.s.prusty@intel.com Date: Fri Mar 4 19:59:47 2016 +0530
ALSA: hda - Register chmap obj as priv data instead of codec
With this chmap object is added as private data and new ops are added to access driver specific chmap.
Signed-off-by: Subhransu S. Prusty subhransu.s.prusty@intel.com Signed-off-by: Vinod Koul vinod.koul@intel.com Signed-off-by: Takashi Iwai tiwai@suse.de
:040000 040000 11dc1a68fd79182d4e38c2a7fd73fd699dbd0685 69c05f445bc255fc02441742b091247af99fb177 M include :040000 040000 8946088a30757dfcbc1ea6badbe6ea8366b2b39f 6fcf7ce7986ffd29d3b5686ebe63168713b866ed M sound
Does this sound like it could be where the bug resides?. I created a patch with `git format-patch -1 9b3dc8aa3fb1a5f38ca9501f20f6ea4dced10fa0` and tried to apply it to kernel 4.6-rc1 but I failed. I didn't bother trying to hand-reverse it because it looks like it would just cause breakage. Not sure what to do next here so I'll wait and see what you think..
-Derek
This will concentrate only on commits in sound/hda/* and sound/pci/hda/*. You have to be careful about the kernel version to be built eventually jumping back and forth, and remember which one is installed and rebooted/retested. I usually put a different suffix string to CONFIG_LOCALVERSION at each build or set CONFIG_LOCALVERSION_AUTO to put the git commit id.
Takashi
On Wed, Nov 15, 2017 at 8:34 AM, VDR User user.vdr@gmail.com 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.
Hi Takashi,
I did: git clone https://github.com/torvalds/linux.git cd linux git checkout 022f344b41a5
After compiling, audio is working correctly with that commit: ~$ 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.526391
Do you happen to known which commit I can try next that *should* have the problem so I can git bisect from there?
Thanks!
On Thu, 16 Nov 2017 22:28:17 +0100, VDR User wrote:
What you can try is to bisect like git bisect start -- sound/hda sound/pci/hda git bisect good v4.5 git bisect bad v4.6-rc1
Ok, did more bisect'ing. I had to skip a commit because the compile failed but other than that, this is what I wound up with:
git bisect start '--' 'sound/hda' 'sound/pci/hda' # good: [fe0d128c57bf927a713159f60a18d9f315d4d91d] ALSA: jack: Allow building the jack layer without input device git bisect good fe0d128c57bf927a713159f60a18d9f315d4d91d # bad: [9b3dc8aa3fb1a5f38ca9501f20f6ea4dced10fa0] ALSA: hda - Register chmap obj as priv data instead of codec git bisect bad 9b3dc8aa3fb1a5f38ca9501f20f6ea4dced10fa0 # skip: [d61b04f801e6005182d432ebe4a0211c1d6feadd] Merge branch 'for-linus' into for-next git bisect skip d61b04f801e6005182d432ebe4a0211c1d6feadd # good: [ec75a940b1037e877efd9a5a9e94eab1e464f73b] ALSA: hda - hdmi add wmb barrier for audio component git bisect good ec75a940b1037e877efd9a5a9e94eab1e464f73b # good: [d10a80de04a3a8c0d7c1567cbc0a8d2e1181c10a] ALSA: hda - hdmi_find_pcm_slot return value bug fix git bisect good d10a80de04a3a8c0d7c1567cbc0a8d2e1181c10a # good: [6defb60ae4ffe92c29291ed49695daa255b8f559] Merge branch 'for-linus' into for-next git bisect good 6defb60ae4ffe92c29291ed49695daa255b8f559 # good: [67b90cb84be8fde0e51f71834e15c32fbec08562] ALSA: hda - Create common chmap object git bisect good 67b90cb84be8fde0e51f71834e15c32fbec08562 # first bad commit: [9b3dc8aa3fb1a5f38ca9501f20f6ea4dced10fa0] ALSA: hda - Register chmap obj as priv data instead of codec
9b3dc8aa3fb1a5f38ca9501f20f6ea4dced10fa0 is the first bad commit commit 9b3dc8aa3fb1a5f38ca9501f20f6ea4dced10fa0 Author: Subhransu S. Prusty subhransu.s.prusty@intel.com Date: Fri Mar 4 19:59:47 2016 +0530
ALSA: hda - Register chmap obj as priv data instead of codec With this chmap object is added as private data and new ops are added to access driver specific chmap. Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
:040000 040000 11dc1a68fd79182d4e38c2a7fd73fd699dbd0685 69c05f445bc255fc02441742b091247af99fb177 M include :040000 040000 8946088a30757dfcbc1ea6badbe6ea8366b2b39f 6fcf7ce7986ffd29d3b5686ebe63168713b866ed M sound
Does this sound like it could be where the bug resides?.
Thanks for the effort! Yes, it looks more likely than before.
I created a patch with `git format-patch -1 9b3dc8aa3fb1a5f38ca9501f20f6ea4dced10fa0` and tried to apply it to kernel 4.6-rc1 but I failed. I didn't bother trying to hand-reverse it because it looks like it would just cause breakage. Not sure what to do next here so I'll wait and see what you think..
I guess the bug is at copying the chmap data where calculating the size wrongly. A typical error of sizeof() usage.
The fix would be to correct sizeof(chmap) to ARRAY_SIZE(pcm_chmap). At the commit 9b3dc8aa3fb1a5f3, it's in hdmi_chmap_ctl_get() in patch_hdmi.c, correct like:
- for (i = 0; i < sizeof(chmap); i++) + for (i = 0; i < ARRAY_SIZE(pcm_chmap); i++)
For the latest upstream, the relevant code was moved to sound/hda/hdmi_chmap.c, and the fix would be a patch like below.
Could you check it?
thanks,
Takashi
--- diff --git a/sound/hda/hdmi_chmap.c b/sound/hda/hdmi_chmap.c index 81acc20c2535..f21633cd9b38 100644 --- a/sound/hda/hdmi_chmap.c +++ b/sound/hda/hdmi_chmap.c @@ -746,7 +746,7 @@ static int hdmi_chmap_ctl_get(struct snd_kcontrol *kcontrol, memset(pcm_chmap, 0, sizeof(pcm_chmap)); chmap->ops.get_chmap(chmap->hdac, pcm_idx, pcm_chmap);
- for (i = 0; i < sizeof(chmap); i++) + for (i = 0; i < ARRAY_SIZE(pcm_chmap); i++) ucontrol->value.integer.value[i] = pcm_chmap[i];
return 0;
Hi Takashi,
I can confirm that your patch does fix the bug:
[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 RL RR [ao/alsa] which we understand as: 5.1
/usr/src/linux$ uname -r 4.14.0-amd /usr/src/linux$ 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.525875
Thank you for all your help to resolve this bug! -Derek
On Thu, Nov 16, 2017 at 11:33 PM, Takashi Iwai tiwai@suse.de wrote:
On Thu, 16 Nov 2017 22:28:17 +0100, VDR User wrote:
What you can try is to bisect like git bisect start -- sound/hda sound/pci/hda git bisect good v4.5 git bisect bad v4.6-rc1
Ok, did more bisect'ing. I had to skip a commit because the compile failed but other than that, this is what I wound up with:
git bisect start '--' 'sound/hda' 'sound/pci/hda' # good: [fe0d128c57bf927a713159f60a18d9f315d4d91d] ALSA: jack: Allow building the jack layer without input device git bisect good fe0d128c57bf927a713159f60a18d9f315d4d91d # bad: [9b3dc8aa3fb1a5f38ca9501f20f6ea4dced10fa0] ALSA: hda - Register chmap obj as priv data instead of codec git bisect bad 9b3dc8aa3fb1a5f38ca9501f20f6ea4dced10fa0 # skip: [d61b04f801e6005182d432ebe4a0211c1d6feadd] Merge branch 'for-linus' into for-next git bisect skip d61b04f801e6005182d432ebe4a0211c1d6feadd # good: [ec75a940b1037e877efd9a5a9e94eab1e464f73b] ALSA: hda - hdmi add wmb barrier for audio component git bisect good ec75a940b1037e877efd9a5a9e94eab1e464f73b # good: [d10a80de04a3a8c0d7c1567cbc0a8d2e1181c10a] ALSA: hda - hdmi_find_pcm_slot return value bug fix git bisect good d10a80de04a3a8c0d7c1567cbc0a8d2e1181c10a # good: [6defb60ae4ffe92c29291ed49695daa255b8f559] Merge branch 'for-linus' into for-next git bisect good 6defb60ae4ffe92c29291ed49695daa255b8f559 # good: [67b90cb84be8fde0e51f71834e15c32fbec08562] ALSA: hda - Create common chmap object git bisect good 67b90cb84be8fde0e51f71834e15c32fbec08562 # first bad commit: [9b3dc8aa3fb1a5f38ca9501f20f6ea4dced10fa0] ALSA: hda - Register chmap obj as priv data instead of codec
9b3dc8aa3fb1a5f38ca9501f20f6ea4dced10fa0 is the first bad commit commit 9b3dc8aa3fb1a5f38ca9501f20f6ea4dced10fa0 Author: Subhransu S. Prusty subhransu.s.prusty@intel.com Date: Fri Mar 4 19:59:47 2016 +0530
ALSA: hda - Register chmap obj as priv data instead of codec With this chmap object is added as private data and new ops are added to access driver specific chmap. Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
:040000 040000 11dc1a68fd79182d4e38c2a7fd73fd699dbd0685 69c05f445bc255fc02441742b091247af99fb177 M include :040000 040000 8946088a30757dfcbc1ea6badbe6ea8366b2b39f 6fcf7ce7986ffd29d3b5686ebe63168713b866ed M sound
Does this sound like it could be where the bug resides?.
Thanks for the effort! Yes, it looks more likely than before.
I created a patch with `git format-patch -1 9b3dc8aa3fb1a5f38ca9501f20f6ea4dced10fa0` and tried to apply it to kernel 4.6-rc1 but I failed. I didn't bother trying to hand-reverse it because it looks like it would just cause breakage. Not sure what to do next here so I'll wait and see what you think..
I guess the bug is at copying the chmap data where calculating the size wrongly. A typical error of sizeof() usage.
The fix would be to correct sizeof(chmap) to ARRAY_SIZE(pcm_chmap). At the commit 9b3dc8aa3fb1a5f3, it's in hdmi_chmap_ctl_get() in patch_hdmi.c, correct like:
for (i = 0; i < sizeof(chmap); i++)
for (i = 0; i < ARRAY_SIZE(pcm_chmap); i++)
For the latest upstream, the relevant code was moved to sound/hda/hdmi_chmap.c, and the fix would be a patch like below.
Could you check it?
thanks,
Takashi
diff --git a/sound/hda/hdmi_chmap.c b/sound/hda/hdmi_chmap.c index 81acc20c2535..f21633cd9b38 100644 --- a/sound/hda/hdmi_chmap.c +++ b/sound/hda/hdmi_chmap.c @@ -746,7 +746,7 @@ static int hdmi_chmap_ctl_get(struct snd_kcontrol *kcontrol, memset(pcm_chmap, 0, sizeof(pcm_chmap)); chmap->ops.get_chmap(chmap->hdac, pcm_idx, pcm_chmap);
for (i = 0; i < sizeof(chmap); i++)
for (i = 0; i < ARRAY_SIZE(pcm_chmap); i++) ucontrol->value.integer.value[i] = pcm_chmap[i]; return 0;
On Fri, 17 Nov 2017 09:28:55 +0100, VDR User wrote:
Hi Takashi,
I can confirm that your patch does fix the bug:
[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 RL RR [ao/alsa] which we understand as: 5.1
/usr/src/linux$ uname -r 4.14.0-amd /usr/src/linux$ 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.525875
Thank you for all your help to resolve this bug!
Great, thanks for your patient testing! FWIW, below is the patch I'm going to queue.
Takashi
-- 8< -- From: Takashi Iwai tiwai@suse.de Subject: [PATCH] ALSA: hda: Fix too short HDMI/DP chmap reporting
We got a regression report about the HD-audio HDMI chmap, where some surround channels are reported as UNKNOWN. The git bisection pointed the culprit at the commit 9b3dc8aa3fb1 ("ALSA: hda - Register chmap obj as priv data instead of codec"). The story behind scene is like this:
- While moving the code out of the legacy HDA to the HDA common place, the patch modifies the code to obtain the chmap array indirectly in a byte array, and it expands it to kctl value array. - At the latter operation, the size of the array is wrongly passed by sizeof() to the pointer. - It can be 4 on 32bit arch, thus too short for 6+ channels. (And that's the reason why it didn't hit other persons; it's 8 on 64bit arch, thus it's usually enough.)
The code was further changed meanwhile, but the problem persisted. Let's fix it by correctly evaluating the array size.
Fixes: 9b3dc8aa3fb1 ("ALSA: hda - Register chmap obj as priv data instead of codec") Reported-by: VDR User user.vdr@gmail.com Cc: stable@vger.kernel.org Signed-off-by: Takashi Iwai tiwai@suse.de --- sound/hda/hdmi_chmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/hda/hdmi_chmap.c b/sound/hda/hdmi_chmap.c index 81acc20c2535..f21633cd9b38 100644 --- a/sound/hda/hdmi_chmap.c +++ b/sound/hda/hdmi_chmap.c @@ -746,7 +746,7 @@ static int hdmi_chmap_ctl_get(struct snd_kcontrol *kcontrol, memset(pcm_chmap, 0, sizeof(pcm_chmap)); chmap->ops.get_chmap(chmap->hdac, pcm_idx, pcm_chmap);
- for (i = 0; i < sizeof(chmap); i++) + for (i = 0; i < ARRAY_SIZE(pcm_chmap); i++) ucontrol->value.integer.value[i] = pcm_chmap[i];
return 0;
Takashi,
Looks good! It's interesting to hear the final detailing of the exact cause of the problem.
Many thanks, Derek
On Fri, Nov 17, 2017 at 3:21 AM, Takashi Iwai tiwai@suse.de wrote:
On Fri, 17 Nov 2017 09:28:55 +0100, VDR User wrote:
Hi Takashi,
I can confirm that your patch does fix the bug:
[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 RL RR [ao/alsa] which we understand as: 5.1
/usr/src/linux$ uname -r 4.14.0-amd /usr/src/linux$ 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.525875
Thank you for all your help to resolve this bug!
Great, thanks for your patient testing! FWIW, below is the patch I'm going to queue.
Takashi
-- 8< -- From: Takashi Iwai tiwai@suse.de Subject: [PATCH] ALSA: hda: Fix too short HDMI/DP chmap reporting
We got a regression report about the HD-audio HDMI chmap, where some surround channels are reported as UNKNOWN. The git bisection pointed the culprit at the commit 9b3dc8aa3fb1 ("ALSA: hda - Register chmap obj as priv data instead of codec"). The story behind scene is like this:
- While moving the code out of the legacy HDA to the HDA common place, the patch modifies the code to obtain the chmap array indirectly in a byte array, and it expands it to kctl value array.
- At the latter operation, the size of the array is wrongly passed by sizeof() to the pointer.
- It can be 4 on 32bit arch, thus too short for 6+ channels. (And that's the reason why it didn't hit other persons; it's 8 on 64bit arch, thus it's usually enough.)
The code was further changed meanwhile, but the problem persisted. Let's fix it by correctly evaluating the array size.
Fixes: 9b3dc8aa3fb1 ("ALSA: hda - Register chmap obj as priv data instead of codec") Reported-by: VDR User user.vdr@gmail.com Cc: stable@vger.kernel.org Signed-off-by: Takashi Iwai tiwai@suse.de
sound/hda/hdmi_chmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/hda/hdmi_chmap.c b/sound/hda/hdmi_chmap.c index 81acc20c2535..f21633cd9b38 100644 --- a/sound/hda/hdmi_chmap.c +++ b/sound/hda/hdmi_chmap.c @@ -746,7 +746,7 @@ static int hdmi_chmap_ctl_get(struct snd_kcontrol *kcontrol, memset(pcm_chmap, 0, sizeof(pcm_chmap)); chmap->ops.get_chmap(chmap->hdac, pcm_idx, pcm_chmap);
for (i = 0; i < sizeof(chmap); i++)
for (i = 0; i < ARRAY_SIZE(pcm_chmap); i++) ucontrol->value.integer.value[i] = pcm_chmap[i]; return 0;
-- 2.15.0
participants (2)
-
Takashi Iwai
-
VDR User