[alsa-devel] ALSA Multichannel through HDMI

John Ettedgui john.ettedgui at gmail.com
Fri Nov 26 03:02:29 CET 2010


On Thu, Nov 25, 2010 at 5:08 PM, John Ettedgui <john.ettedgui at gmail.com> wrote:
> On Thu, Nov 25, 2010 at 4:59 PM, Anssi Hannula <anssi.hannula at iki.fi> wrote:
>> 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
>>
> Following your message I restarted my computer and that error was
> gone, yet there is still nothing display in aplay -l / aplay -L about
> hdmi anymore.
> I'll go back to my non patched kernel and see what it does.
>
With the non-patched kernel I get back my hdmi in aplay -l, so it
looks like the patch messed up something.
I really think that when I tried it before it did not do that, but it
was so long ago that I could be wrong...

Anyway here are the 2 dmesgs (not sure if they'll help though).

Thanks,
John
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dmesg_without_patch
Type: application/octet-stream
Size: 40473 bytes
Desc: not available
Url : http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20101125/95da7b14/attachment-0002.dll 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dmesg_with_patch
Type: application/octet-stream
Size: 40434 bytes
Desc: not available
Url : http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20101125/95da7b14/attachment-0003.dll 


More information about the Alsa-devel mailing list