[alsa-devel] ALSA Multichannel through HDMI

Anssi Hannula anssi.hannula at iki.fi
Fri Nov 26 01:59:40 CET 2010


On 26.11.2010 02:53, John Ettedgui wrote:
> On Thu, Nov 25, 2010 at 3:34 PM, John Ettedgui <john.ettedgui at gmail.com> wrote:
>> On Thu, Nov 25, 2010 at 3:15 PM, Anssi Hannula <anssi.hannula at iki.fi> wrote:
>>> On 26.11.2010 01:11, John Ettedgui wrote:
>>>> On Thu, Nov 25, 2010 at 2:58 PM, Anssi Hannula <anssi.hannula at iki.fi> wrote:
>>>>> On 26.11.2010 00:42, John Ettedgui wrote:
>>>>>> On Thu, Nov 25, 2010 at 11:19 AM, Anssi Hannula <anssi.hannula at iki.fi> wrote:
>>>>>>> On 25.11.2010 14:21, John Ettedgui wrote:
>>>>>>>> On Thu, Nov 25, 2010 at 3:40 AM, Anssi Hannula <anssi.hannula at iki.fi> wrote:
>>>>>>>>> On 25.11.2010 13:09, John Ettedgui wrote:
>>>>>>>>>> On Thu, Nov 25, 2010 at 2:49 AM, Anssi Hannula <anssi.hannula at iki.fi> wrote:
>>>>>>>>>>> On 25.11.2010 06:12, John Ettedgui wrote:
>>>>>>>>>>>> I'm actually trying to get a 5.1 setup working without passthrough, if
>>>>>>>>>>>> I use mplayer with passthrough my receiver behaves just fine, but I am
>>>>>>>>>>>> trying to send the 6 channels from the computer.
>>>>>>>>>>>>
>>>>>>>>>>>> I was actually told that the current ALSA driver for radeon's hdmi
>>>>>>>>>>>> does not support more than 2 channels, and that would explain why I'm
>>>>>>>>>>>> getting this behavior. Is that true though?
>>>>>>>>>>>
>>>>>>>>>>> Yes.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> However, strangely your log output seems to show the intel's hdmi parser
>>>>>>>>>>> being used instead:
>>>>>>>>>>>
>>>>>>>>>>>> ALSA sound/pci/hda/patch_intelhdmi.c:842: hdmi_setup_stream: NID=0x2,
>>>>>>>>>>>> stream=0x1, new-format=0x11
>>>>>>>>>>>
>>>>>>>>>>> Were you just trying some patch at the time?
>>>>>>>>>>
>>>>>>>>>> yes Wu gave me a patch to try against the kernel, I'm guessing this is
>>>>>>>>>> the reason you see something unexpected.
>>>>>>>>>
>>>>>>>>> Did 6 channels work with that patch? (possibly with a wrong channel order)
>>>>>>>> Not any better as far as I remember.
>>>>>>>
>>>>>>> OK. Did 2 channel audio continue to work with it?
>>>>>>>
>>>>>>> If you are not sure, here's the patch doing the same thing against
>>>>>>> current alsa driver:
>>>>>>> http://stuff.onse.fi/0001-ALSA-hda-Use-generic-HDMI-code-for-ATI-HDMI-codecs.patch
>>>>>>>
>>>>>>> Confirming that would help (it would allow to switch the ATI chip to use
>>>>>>> the generic parser instead of the ATI-specific one), though not with the
>>>>>>> multichannel issue (see below).
>>>>>>>
>>>>>>> [...]
>>>>>>>
>>>>>>>>>> Since I just moved to jack/rca cables I'm in no hurry anymore, but is
>>>>>>>>>> there any reason why the driver cannot work with more than 2 channels?
>>>>>>>>>
>>>>>>>>> I don't really know (it is simply not implemented).
>>>>>>>> Alright.
>>>>>>>>>
>>>>>>>>>> Anything I could do to help with that?
>>>>>>>>>
>>>>>>>>> Possibly. But see above, so that we won't try the same things you
>>>>>>>>> already tried :)
>>>>>>>>>
>>>>>>>> Sure :)
>>>>>>>
>>>>>>> Looking again at the the alsa info output you provided, I don't think I
>>>>>>> have any great ideas. It looks like the chip simply reports that it
>>>>>>> supports a maximum of 2 channels.
>>>>>>>
>>>>>>> One option could be hardcoding "chans = 8;" in generic_hdmi_build_pcms()
>>>>>>> in sound/pci/hda/patch_hdmi.c (assuming you have the above patch and 2
>>>>>>> channel audio works with it). However, I find it rather unlikely that it
>>>>>>> would make any difference.
>>>>>>>
>>>>>>> --
>>>>>>> Anssi Hannula
>>>>>>>
>>>>>>
>>>>>> Anssi,
>>>>>> the patch fails on my kernel, I cannot find the hda_codec_preset
>>>>>> manually in there either.
>>>>>> Did you want me to try that against a 2.6.37 rc instead of a 2.6.36?
>>>>>
>>>>> For 2.6.36 I think you can just use your earlier patch.
>>>>>
>>>>> Note that on that kernel generic_hdmi_build_pcms() is
>>>>> intel_hdmi_build_pcms() in patch_intelhdmi.c.
>>>>>
>>>> ok
>>>>> BTW, I've just been informed by another ATI user that his card was
>>>>> actually stereo-only, while he thought earlier it was multichannel
>>>>> capable. So, are you sure your card is a multichannel one?
>>>>> (if not, it would explain why the card says it is not)
>>>>>
>>>>> --
>>>>> Anssi Hannula
>>>>>
>>>> Yes, it works fine in Window  so I believe the hardware part is good.
>>>
>>> And you are sure it is multichannel PCM, and not e.g. multichannel DTS
>>> or multichannel AC-3 with on-the-fly compression, which are possible
>>> with stereo hdmi as well?
>>>
>>> Just making sure :)
>>>
>>> --
>>> Anssi Hannula
>>>
>>
>> Well, I have not super tested it, but the reason I believe it is is
>> simple, when I use passthrough my receiver says Dolby digital or
>> something like that, but in Windows just going around or playing games
>> it says Multichannel.

Sounds ok then.

>> I'll get the patch applied in a few minutes, I was running out of
>> memory and my system was getting really slow... :)
>>
> 
> I am not sure if I did it right but now I don't even get hdmi sound
> working anymore.
> It is not listed in aplay-l, and dmesg gives me this:
> [drm:radeon_dvi_detect] *ERROR* HDMI Type A-1: probed a monitor but
> no|invalid EDID
> 
> I've attached the patch I used, since I could not used the previous
> one I had to hack it, maybe I broke something?
> (I have not set channels to 8 yet, just changed the parser)

The patch looks ok. The above error message is weird, as it comes from
the display driver which should not be affected by the patch at all.

I'll look at the code later (tomorrow maybe). Until then I'd advise you
to retry without the patch and with the patch again, just to make sure
this is not some unrelated issue...
Also, post the whole dmesg when it works (2 channel, without patch), and
when it doesn't (with patch).

-- 
Anssi Hannula


More information about the Alsa-devel mailing list