From patchwork Sat Sep 3 11:00:06 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: bugzilla-daemon@bugzilla.kernel.org X-Patchwork-Id: 1123262 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by demeter1.kernel.org (8.14.4/8.14.4) with ESMTP id p83B0ORw002328 for ; Sat, 3 Sep 2011 11:01:16 GMT Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 94689A1969 for ; Sat, 3 Sep 2011 04:00:17 -0700 (PDT) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from demeter1.kernel.org (demeter1.kernel.org [140.211.167.39]) by gabe.freedesktop.org (Postfix) with ESMTP id 8BD9A9E9C2 for ; Sat, 3 Sep 2011 04:00:07 -0700 (PDT) Received: from demeter1.kernel.org (localhost.localdomain [127.0.0.1]) by demeter1.kernel.org (8.14.4/8.14.4) with ESMTP id p83B06Ai002258 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Sat, 3 Sep 2011 11:00:07 GMT Received: (from apache@localhost) by demeter1.kernel.org (8.14.4/8.14.3/Submit) id p83B068x002257; Sat, 3 Sep 2011 11:00:06 GMT Date: Sat, 3 Sep 2011 11:00:06 GMT Message-Id: <201109031100.p83B068x002257@demeter1.kernel.org> From: bugzilla-daemon@bugzilla.kernel.org To: dri-devel@lists.freedesktop.org Subject: [Bug 39832] HDA ATI HDMI: no sound with 3.0 - 2.6.39.3 works X-Bugzilla-Reason: None X-Bugzilla-Type: newchanged X-Bugzilla-Watch-Reason: AssignedTo drivers_video-dri@kernel-bugs.osdl.org X-Bugzilla-Product: Drivers X-Bugzilla-Component: Video(DRI - non Intel) X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: cloos@jhcloos.com X-Bugzilla-Status: NEW X-Bugzilla-Priority: P1 X-Bugzilla-Assigned-To: drivers_video-dri@kernel-bugs.osdl.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: CC In-Reply-To: References: Auto-Submitted: auto-generated MIME-Version: 1.0 X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.6 (demeter1.kernel.org [140.211.167.41]); Sat, 03 Sep 2011 11:01:17 +0000 (UTC) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.6 (demeter1.kernel.org [127.0.0.1]); Sat, 03 Sep 2011 11:00:07 +0000 (UTC) X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+patchwork-dri-devel=patchwork.kernel.org@lists.freedesktop.org Errors-To: dri-devel-bounces+patchwork-dri-devel=patchwork.kernel.org@lists.freedesktop.org X-MIME-Autoconverted: from base64 to 8bit by demeter1.kernel.org id p83B0ORw002328 https://bugzilla.kernel.org/show_bug.cgi?id=39832 James Cloos changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |cloos@jhcloos.com --- Comment #17 from James Cloos 2011-09-03 11:00:01 --- [I tried to send this via mail; but that pends hera’s return....] I occasionally have to connect my compute node to the TV in the other room to fix or diagnose issues, and looked into the hdmi audio the last time I did so. While using KMS, the TV constantly complained that the audio packets were corrupt. After moving the box back, I extended the EDID reporting tools to handle the audio bits and found that the TV only advertises support for 16 bit 48 kHz PCM 2-channel stereo audio. ALSA, OTOH, was trying to send 5.1. Some time ago I read a thread on some list (lkml? xorg-driver-ati?) where the decision was made to ignore the EDID advertisements because some hdmi switches (I presume amplifiers) pass through the TV’s EDID even though they support more audio options and do not pass the audio through to the TV. I suspect, but have not had the opportunity to test, that forcing the driver to only send 16 bit 48 kHz PCM 2-channel stereo audio would appease the TV and allow things to Just Work™. I additionally suspect that were I to place an hdmi-connected amp between the box and the TV things also would Just Work. If so, the proper solution is to honour the EDID advert by default and to provide sysfs configuration to override the EDID limits and to specify the set of audio options which the driver may output over the hdmi link. Some of the legacy ati cards get their hdmi audio support from a { .id = 0x1002aa01, .name = "R6xx HDMI", .patch = patch_generic_hdmi }, @@ -1679,2 +1680,3 @@ MODULE_ALIAS("snd-hda-codec-id:10027919"); MODULE_ALIAS("snd-hda-codec-id:1002791a"); +MODULE_ALIAS("snd-hda-codec-id:1002970f"); MODULE_ALIAS("snd-hda-codec-id:1002aa01"); (where 0x1002970f is the id of the 890GX chipset’s onboard graphics). I cannot do much testing here (unless someone wants to loan me a 10+ meter hdmi cable and a wireless keyboard ?); lugging that box around is a RPITA™. But I’ll do what I can. different file in the kernel src; that file limits output to two audio channels. Adding one’s card’s pci id to that driver and recompiling the kernel might be a reasonable way to test my hypothesis – a method I’ve prepared to do the next time I need to lug the box out there. Edit sound/pci/hda/patch_hdmi.c and add something like: diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c index bd0ae69..3870853 100644 --- a/sound/pci/hda/patch_hdmi.c +++ b/sound/pci/hda/patch_hdmi.c @@ -1632,2 +1632,3 @@ static const struct hda_codec_preset snd_hda_preset_hdmi[] = { { .id = 0x1002791a, .name = "RS690/780 HDMI", .patch = patch_atihdmi }, +{ .id = 0x1002970f, .name = "RS880 HDMI", .patch = patch_atihdmi },