All of lore.kernel.org
 help / color / mirror / Atom feed
* Missing surround channels with Nvidia HDMI & snd-hda-intel driver
@ 2017-11-12 18:01 VDR User
  2017-11-13 16:40 ` Takashi Iwai
  0 siblings, 1 reply; 15+ messages in thread
From: VDR User @ 2017-11-12 18:01 UTC (permalink / raw)
  To: mailing list: alsa-dev

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

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Missing surround channels with Nvidia HDMI & snd-hda-intel driver
  2017-11-12 18:01 Missing surround channels with Nvidia HDMI & snd-hda-intel driver VDR User
@ 2017-11-13 16:40 ` Takashi Iwai
  2017-11-13 17:18   ` VDR User
  0 siblings, 1 reply; 15+ messages in thread
From: Takashi Iwai @ 2017-11-13 16:40 UTC (permalink / raw)
  To: VDR User; +Cc: mailing list: alsa-dev

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
> 

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Missing surround channels with Nvidia HDMI & snd-hda-intel driver
  2017-11-13 16:40 ` Takashi Iwai
@ 2017-11-13 17:18   ` VDR User
  2017-11-13 19:03     ` Takashi Iwai
  0 siblings, 1 reply; 15+ messages in thread
From: VDR User @ 2017-11-13 17:18 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: mailing list: alsa-dev

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
>>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Missing surround channels with Nvidia HDMI & snd-hda-intel driver
  2017-11-13 17:18   ` VDR User
@ 2017-11-13 19:03     ` Takashi Iwai
  2017-11-14 15:22       ` VDR User
  0 siblings, 1 reply; 15+ messages in thread
From: Takashi Iwai @ 2017-11-13 19:03 UTC (permalink / raw)
  To: VDR User; +Cc: mailing list: alsa-dev

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
> >>
> 

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Missing surround channels with Nvidia HDMI & snd-hda-intel driver
  2017-11-13 19:03     ` Takashi Iwai
@ 2017-11-14 15:22       ` VDR User
  2017-11-14 22:21         ` VDR User
  0 siblings, 1 reply; 15+ messages in thread
From: VDR User @ 2017-11-14 15:22 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: mailing list: alsa-dev

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@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
>> >>
>>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Missing surround channels with Nvidia HDMI & snd-hda-intel driver
  2017-11-14 15:22       ` VDR User
@ 2017-11-14 22:21         ` VDR User
  2017-11-15  9:53           ` Takashi Iwai
  0 siblings, 1 reply; 15+ messages in thread
From: VDR User @ 2017-11-14 22:21 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: mailing list: alsa-dev

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-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@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
>>> >>
>>>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Missing surround channels with Nvidia HDMI & snd-hda-intel driver
  2017-11-14 22:21         ` VDR User
@ 2017-11-15  9:53           ` Takashi Iwai
  2017-11-15 16:34             ` VDR User
  0 siblings, 1 reply; 15+ messages in thread
From: Takashi Iwai @ 2017-11-15  9:53 UTC (permalink / raw)
  To: VDR User; +Cc: mailing list: alsa-dev

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-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@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
> >>> >>
> >>>
> 

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Missing surround channels with Nvidia HDMI & snd-hda-intel driver
  2017-11-15  9:53           ` Takashi Iwai
@ 2017-11-15 16:34             ` VDR User
  2017-11-16  5:53               ` VDR User
  0 siblings, 1 reply; 15+ messages in thread
From: VDR User @ 2017-11-15 16:34 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: mailing list: alsa-dev

>> 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-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@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
>> >>> >>
>> >>>
>>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Missing surround channels with Nvidia HDMI & snd-hda-intel driver
  2017-11-15 16:34             ` VDR User
@ 2017-11-16  5:53               ` VDR User
  2017-11-16  6:29                 ` Takashi Iwai
  0 siblings, 1 reply; 15+ messages in thread
From: VDR User @ 2017-11-16  5:53 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: mailing list: alsa-dev

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!

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Missing surround channels with Nvidia HDMI & snd-hda-intel driver
  2017-11-16  5:53               ` VDR User
@ 2017-11-16  6:29                 ` Takashi Iwai
  2017-11-16 21:28                   ` VDR User
  0 siblings, 1 reply; 15+ messages in thread
From: Takashi Iwai @ 2017-11-16  6:29 UTC (permalink / raw)
  To: VDR User; +Cc: mailing list: alsa-dev

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!
> 

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Missing surround channels with Nvidia HDMI & snd-hda-intel driver
  2017-11-16  6:29                 ` Takashi Iwai
@ 2017-11-16 21:28                   ` VDR User
  2017-11-17  7:33                     ` Takashi Iwai
  0 siblings, 1 reply; 15+ messages in thread
From: VDR User @ 2017-11-16 21:28 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: mailing list: alsa-dev

> 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!
>>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Missing surround channels with Nvidia HDMI & snd-hda-intel driver
  2017-11-16 21:28                   ` VDR User
@ 2017-11-17  7:33                     ` Takashi Iwai
  2017-11-17  8:28                       ` VDR User
  0 siblings, 1 reply; 15+ messages in thread
From: Takashi Iwai @ 2017-11-17  7:33 UTC (permalink / raw)
  To: VDR User; +Cc: mailing list: alsa-dev

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;

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: Missing surround channels with Nvidia HDMI & snd-hda-intel driver
  2017-11-17  7:33                     ` Takashi Iwai
@ 2017-11-17  8:28                       ` VDR User
  2017-11-17 11:21                         ` Takashi Iwai
  0 siblings, 1 reply; 15+ messages in thread
From: VDR User @ 2017-11-17  8:28 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: mailing list: alsa-dev

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;

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Missing surround channels with Nvidia HDMI & snd-hda-intel driver
  2017-11-17  8:28                       ` VDR User
@ 2017-11-17 11:21                         ` Takashi Iwai
  2017-11-17 15:24                           ` VDR User
  0 siblings, 1 reply; 15+ messages in thread
From: Takashi Iwai @ 2017-11-17 11:21 UTC (permalink / raw)
  To: VDR User; +Cc: mailing list: alsa-dev

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

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: Missing surround channels with Nvidia HDMI & snd-hda-intel driver
  2017-11-17 11:21                         ` Takashi Iwai
@ 2017-11-17 15:24                           ` VDR User
  0 siblings, 0 replies; 15+ messages in thread
From: VDR User @ 2017-11-17 15:24 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: mailing list: alsa-dev

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
>

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2017-11-17 15:24 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-12 18:01 Missing surround channels with Nvidia HDMI & snd-hda-intel driver VDR User
2017-11-13 16:40 ` Takashi Iwai
2017-11-13 17:18   ` VDR User
2017-11-13 19:03     ` Takashi Iwai
2017-11-14 15:22       ` VDR User
2017-11-14 22:21         ` VDR User
2017-11-15  9:53           ` Takashi Iwai
2017-11-15 16:34             ` VDR User
2017-11-16  5:53               ` VDR User
2017-11-16  6:29                 ` Takashi Iwai
2017-11-16 21:28                   ` VDR User
2017-11-17  7:33                     ` Takashi Iwai
2017-11-17  8:28                       ` VDR User
2017-11-17 11:21                         ` Takashi Iwai
2017-11-17 15:24                           ` VDR User

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.