[alsa-devel] Bug in setting channels, related to recent ELD/EDID changes?

VDR User user.vdr at gmail.com
Thu Dec 23 08:13:57 CET 2010


On Wed, Dec 22, 2010 at 9:48 PM, Anssi Hannula <anssi.hannula at iki.fi> wrote:
> On 23.12.2010 04:22, VDR User wrote:
>> Hi.  After updating my stable kernel from 2.6.35.7 to 2.6.36.2, I get
>> a problem when tuning HDTV channels that use surround sound.  The
>> error I get is as follows:
>>
>> audio_alsa_out: Cannot set number of channels to 6 (err=-22:Invalid argument)
>> audio_out: open failed!
>>
>> With the following xine error:
>> ---------------------- (ERROR) ----------------------
>> The audio device is unavailable. Please verify if another program
>> already uses it.
>>
>> ['Audio device unavailable' '']
>> ------------------ (END OF ERROR) -------------------
>
> What are the contents of /proc/asound/NVidia/eld* and
> /proc/asound/NVidia/codec* ?

Booted into 2.6.35.7 with receiver ON:
$ cat /proc/asound/NVidia_1/eld*
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              0xfb01
port_id                 0x20000
support_hdcp            0
support_ai              0
audio_sync_delay        0
speakers                [0x5f] FL/FR LFE FC RL/RR RC RLC/RRC
sad_count               6
sad0_coding_type        [0x1] LPCM
sad0_channels           2
sad0_rates              [0x1ee0] 44100 48000 88200 176400 192000 384000
sad0_bits               [0xe0000] 16 20 24
sad1_coding_type        [0x1] LPCM
sad1_channels           6
sad1_rates              [0x1ee0] 44100 48000 88200 176400 192000 384000
sad1_bits               [0xe0000] 16 20 24
sad2_coding_type        [0x1] LPCM
sad2_channels           8
sad2_rates              [0x1ee0] 44100 48000 88200 176400 192000 384000
sad2_bits               [0xe0000] 16 20 24
sad3_coding_type        [0x2] AC-3
sad3_channels           6
sad3_rates              [0xe0] 44100 48000 88200
sad3_max_bitrate        680000
sad4_coding_type        [0x7] DTS
sad4_channels           6
sad4_rates              [0x6e0] 44100 48000 88200 176400 192000
sad4_max_bitrate        1536000
sad5_coding_type        [0xa] E-AC-3/DD+ (Dolby Digital Plus)
sad5_channels           8
sad5_rates              [0xc0] 48000 88200

Booted into 2.6.35.7 with receiver OFF:
$ cat /proc/asound/NVidia_1/eld*
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              0xfb01
port_id                 0x20000
support_hdcp            0
support_ai              0
audio_sync_delay        0
speakers                [0xffff] FL/FR LFE FC RL/RR RC FLC/FRC RLC/RRC
FLW/FRW FLH/FRH TC FCH
sad_count               1
sad0_coding_type        [0x1] LPCM
sad0_channels           2
sad0_rates              [0xe0] 44100 48000 88200
sad0_bits               [0x20000] 16

$ cat /proc/asound/NVidia_1/codec*
Codec: Nvidia GPU 0a HDMI/DP
Address: 1
Function Id: 0x1
Vendor Id: 0x10de000a
Subsystem Id: 0x10de0101
Revision Id: 0x100100
No Modem Function Group found
Default PCM:
    rates [0x0]:
    bits [0x0]:
    formats [0x0]:
Default Amp-In caps: N/A
Default Amp-Out caps: N/A
GPIO: io=0, o=0, i=0, unsolicited=0, wake=0
Node 0x04 [Audio Output] wcaps 0x72b1: 8-Channels Digital Stripe CP
  Control: name="IEC958 Playback Con Mask", index=0, device=0
  Control: name="IEC958 Playback Pro Mask", index=0, device=0
  Control: name="IEC958 Playback Default", index=0, device=0
  Control: name="IEC958 Playback Switch", index=0, device=0
  Device: name="NVIDIA HDMI", type="HDMI", device=3
  Converter: stream=6, channel=0
  Digital: Enabled
  Digital category: 0x0
  PCM:
    rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000
    bits [0xe]: 16 20 24
    formats [0x5]: PCM AC3
  Unsolicited: tag=00, enabled=0
Node 0x05 [Pin Complex] wcaps 0x407381: 8-Channels Digital CP
  Pincap 0x09000094: OUT Detect HBR HDMI DP
  Pin Default 0x18560010: [Jack] Digital Out at Int HDMI
    Conn = Digital, Color = Unknown
    DefAssociation = 0x1, Sequence = 0x0
  Pin-ctls: 0x40: OUT
  Unsolicited: tag=05, enabled=1
  Connection: 1
     0x04

I'm certain at the time I experienced this error, my receiver was
turned off, could this be the cause of the error?  If so, this really
needs to be fixed/reworked as many people don't have their receivers
on (to save power usage, noise, etc) unless they specifically
need/want it.  In the event a receiver is off and the user is trying
to watch something that requires more then 2 channels, he should
either turn the receiver on, or adjust the speaker arrangement in xine
to stereo -- however, what should not happen is the alsa driver
failing.  Maybe a better solution would be to log an error to syslog
or something rather then the driver itself returning an error?

Best regards,
Derek


More information about the Alsa-devel mailing list