Good Morning,

I have my system set up using the TV (Samsung) as the monitor through HDMI.  I have to keep it this way for other reasons having to do with receiver so going through the receiver is not an option at the moment.  Anyway, the problem is that I am using the audio return line on the TV in order to output sound.  I have my system set up so that sound comes out of the speakers (two front) in the desktop and, if using pcm, through all of the speakers.  My problem is that the sound should be able to come through all the speakers from the desktop.  And, what I think, is the real problem is the probing done for sound through the HDMI system.  When my Fedora 16 system starts up and I go into X I can see that /proc/asound/card0/eld#1.0 is:
monitor_present         1
eld_valid               1
monitor_name            SAMSUNG

connection_type         HDMI
eld_version             [0x2] CEA-861D or below
edid_version            [0x3] CEA-861-B, C or D
manufacture_id          0x2d4c
product_id              0x6c6
port_id                 0x20000
support_hdcp            0
support_ai              0
audio_sync_delay        0
speakers                [0x1] FL/FR
sad_count               1
sad0_coding_type        [0x1] LPCM
sad0_channels           2
sad0_rates              [0xe0] 44100 48000 88200
sad0_bits               [0xe0000] 16 20 24

When I connect up the system directly to the receiver I get:
monitor_present         1
eld_valid               1
monitor_name            HT-RC260

connection_type         HDMI
eld_version             [0x2] CEA-861D or below
edid_version            [0x3] CEA-861-B, C or D
manufacture_id          0xcb3d
product_id              0xa65
port_id                 0x20000
support_hdcp            0
support_ai              0
audio_sync_delay        0
speakers                [0x4f] FL/FR LFE FC RL/RR RLC/RRC
sad_count               8
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           8
sad1_rates              [0x1ee0] 44100 48000 88200 176400 192000 384000
sad1_bits               [0xe0000] 16 20 24
sad2_coding_type        [0x2] AC-3
sad2_channels           8
sad2_rates              [0xe0] 44100 48000 88200
sad2_max_bitrate        640000
sad3_coding_type        [0x7] DTS
sad3_channels           8
sad3_rates              [0xc0] 48000 88200
sad3_max_bitrate        1536000
sad4_coding_type        [0x9] DSD (One Bit Audio)
sad4_channels           6
sad4_rates              [0x40] 48000
sad5_coding_type        [0xa] E-AC-3/DD+ (Dolby Digital Plus)
sad5_channels           8
sad5_rates              [0xc0] 48000 88200
sad6_coding_type        [0xb] DTS-HD
sad6_channels           8
sad6_rates              [0x1ec0] 48000 88200 176400 192000 384000
sad7_coding_type        [0xc] MLP (Dolby TrueHD)
sad7_channels           8
sad7_rates              [0x1480] 88200 192000

What I would like to do is have the second one come up because I am using the audio return in HDMI 1.4.  I know I can make a script like:
(I know there are other ways as well, this took two seconds in VI.)
echo eld_version  0x2 > /proc/asound/card0/eld#1.0
echo edid_version 0x3 > /proc/asound/card0/eld#1.0
echo speakers  0x4f > /proc/asound/card0/eld#1.0
echo sad_count 8  > /proc/asound/card0/eld#1.0
echo sad0_coding_type 0x1  > /proc/asound/card0/eld#1.0
echo sad0_channels 2  > /proc/asound/card0/eld#1.0
echo sad0_rates 0x1ee0  > /proc/asound/card0/eld#1.0
echo sad0_bits 0xe0000  > /proc/asound/card0/eld#1.0
echo sad1_coding_type 0x1  > /proc/asound/card0/eld#1.0
echo sad1_channels 8  > /proc/asound/card0/eld#1.0
echo sad1_rates 0x1ee0  > /proc/asound/card0/eld#1.0
echo sad1_bits 0xe0000  > /proc/asound/card0/eld#1.0
echo sad2_coding_type 0x2  > /proc/asound/card0/eld#1.0
echo sad2_channels 8  > /proc/asound/card0/eld#1.0
echo sad2_rates 0xe0  > /proc/asound/card0/eld#1.0
echo sad2_max_bitrate 640000  > /proc/asound/card0/eld#1.0
echo sad3_coding_type 0x7  > /proc/asound/card0/eld#1.0
echo sad3_channels 8  > /proc/asound/card0/eld#1.0
echo sad3_rates 0xc0  > /proc/asound/card0/eld#1.0
echo sad3_max_bitrate 1536000  > /proc/asound/card0/eld#1.0
echo sad4_coding_type 0x9  > /proc/asound/card0/eld#1.0
echo sad4_channels 6  > /proc/asound/card0/eld#1.0
echo sad4_rates 0x40  > /proc/asound/card0/eld#1.0
echo sad5_coding_type 0xa  > /proc/asound/card0/eld#1.0
echo sad5_channels 8  > /proc/asound/card0/eld#1.0
echo sad5_rates 0xc0  > /proc/asound/card0/eld#1.0
echo sad6_coding_type 0xb  > /proc/asound/card0/eld#1.0
echo sad6_channels 8  > /proc/asound/card0/eld#1.0
echo sad6_rates 0x1ec0  > /proc/asound/card0/eld#1.0
echo sad7_coding_type 0xc  > /proc/asound/card0/eld#1.0
echo sad7_channels 8  > /proc/asound/card0/eld#1.0
echo sad7_rates 0x1480  > /proc/asound/card0/eld#1.0

and that works fine.  Then I can play stuff through more than two speakers ("speakers [0x1] FL/FR" vs. "speakers [0x4f] FL/FR LFE FC RL/RR RLC/RRC") using aplay and speaker-test and such but by that time the desktop is running because I have to log into X in order to get the alsa system started.

So I guess the question would be, "Is there a way to do this before or during alsa starting up and if so is there anything else I should be worried about?"

Gary