Bug 62231

Summary: No HDMI audio (pass through) on ASUS F2A55-M (ATI Trinity Aruba GPU)
Product: Drivers Reporter: Stuart Foster (smf-linux)
Component: Video(DRI - non Intel)Assignee: drivers_video-dri
Status: RESOLVED DOCUMENTED    
Severity: normal CC: alexdeucher
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 3.12-rc2 Subsystem:
Regression: No Bisected commit-id:

Description Stuart Foster 2013-09-27 13:48:23 UTC
+++ This bug was initially created as a clone of Bug #61981 +++

I think I sent my original bug report to the wrong queue.

Simply this system has been configured to use HDMI audio and on this kernel there is no output.
I did try on 3.12-rc1 but I had problems booting the system which have been fixed with 3.12-rc2.
The system works on 3.11.1 with a hand crafted patch of the early HDMI audio work intended for 3.12 so I know the basic setup works. 

Since the original bug report I have been attempting to bisect the problem to identify the commit that caused my system to stop working on the 3.12 rc's. Here is my bisect log as you can see the only good commit for me is Alex's please advise: 

author	Alex Deucher <alexander.deucher@amd.com>	2013-07-31 20:51:33 (GMT)
committer	Alex Deucher <alexander.deucher@amd.com>	2013-08-30 20:30:45 (GMT)
commit	b530602fd4625f763344e455902981b22f85f609 (patch)
tree	fb1c932b2bf74b76fbbdc198d527a698088500c2
parent	a4d39e68949f5b4f7b426be63782b421018f741a (diff)
(3.11.0-rc7-00066-gb530602)

git bisect start
# bad: [4a10c2ac2f368583138b774ca41fac4207911983] Linux 3.12-rc2
git bisect bad 4a10c2ac2f368583138b774ca41fac4207911983
# good: [b530602fd4625f763344e455902981b22f85f609] drm/radeon: add audio support for DCE6/8 GPUs (v12)
git bisect good b530602fd4625f763344e455902981b22f85f609
# bad: [57d730924d5cc2c3e280af16a9306587c3a511db] Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
git bisect bad 57d730924d5cc2c3e280af16a9306587c3a511db
# bad: [40031da445fb4d269af9c7c445b2adf674f171e7] Merge tag 'pm+acpi-3.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
git bisect bad 40031da445fb4d269af9c7c445b2adf674f171e7
# bad: [542a086ac72fb193cbc1b996963a572269e57743] Merge tag 'driver-core-3.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
git bisect bad 542a086ac72fb193cbc1b996963a572269e57743
# bad: [1ccfd5eaf8f0135a0ce030728d1739e0eea4e3ce] Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
git bisect bad 1ccfd5eaf8f0135a0ce030728d1739e0eea4e3ce
# bad: [578739259875a93b1869d25cdf4a8bd963b7d0a7] Merge remote-tracking branch 'spi/topic/txx9' into spi-next
git bisect bad 578739259875a93b1869d25cdf4a8bd963b7d0a7
# bad: [45bb5065e11cd770fcf4afe9714ccea671333766] Merge remote-tracking branch 'spi/topic/octeon' into spi-next
git bisect bad 45bb5065e11cd770fcf4afe9714ccea671333766
# bad: [96b1a28d65bfc942d84fb612b7f33279390b8ba4] Merge remote-tracking branch 'spi/topic/doc' into spi-next
git bisect bad 96b1a28d65bfc942d84fb612b7f33279390b8ba4
# bad: [b29bc3df37afa440290f4b8e50cf5dce429ce22f] Merge remote-tracking branch 'spi/topic/bitbang' into spi-next
git bisect bad b29bc3df37afa440290f4b8e50cf5dce429ce22f
# bad: [c3dbe2b76a835fb4b2633645b0c49359b49eb128] Merge remote-tracking branch 'spi/topic/bcm2835' into spi-next
git bisect bad c3dbe2b76a835fb4b2633645b0c49359b49eb128
# bad: [5264af0ca696e19b492f31837a570787f6fd399b] Merge remote-tracking branch 'spi/topic/atmel' into spi-next
git bisect bad 5264af0ca696e19b492f31837a570787f6fd399b
# bad: [2de024b766bb9e31c357f70c6344d1107f38ce1a] spi/atmel: Fix format specifier warnings
git bisect bad 2de024b766bb9e31c357f70c6344d1107f38ce1a
# bad: [6c07ef298ac2a05e14cdb059169a78c74badf056] spi/atmel: Annotate lock/unlock functions
git bisect bad 6c07ef298ac2a05e14cdb059169a78c74badf056
# bad: [dfec4a6e42286dacc733c7e6be43606a5622ca58] spi: atmel: prepare clk before calling enable
git bisect bad 

dfec4a6e42286dacc733c7e6be43606a5622ca58dfec4a6e42286dacc733c7e6be43606a5622ca58 is the first bad commit
commit dfec4a6e42286dacc733c7e6be43606a5622ca58
Author: Boris BREZILLON <b.brezillon@overkiz.com>
Date:   Tue Jul 16 17:16:22 2013 +0200

    spi: atmel: prepare clk before calling enable
    
    Replace clk_enable/disable with clk_prepare_enable/disable_unprepare to
    avoid common clk framework warnings.
    
    Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com>
    Signed-off-by: Mark Brown <broonie@linaro.org>

:040000 040000 45e7cb28411864c00b62296a7ff239f9f139d5d9 368391aa85e315792047dfafbb745793634c5672 M	drivers
Comment 1 Stuart Foster 2013-09-27 13:50:10 UTC
*** Bug 61981 has been marked as a duplicate of this bug. ***
Comment 2 Alex Deucher 2013-09-27 15:00:12 UTC
In 3.12, hdmi audio is exposed as a connector property so you can enable audio on the fly rather than needing to pass radeon.audio=1 to force it on.  E.g.,

xrandr --output HDMI-0 --set audio auto
Comment 3 Stuart Foster 2013-09-27 16:16:59 UTC
(In reply to Alex Deucher from comment #2)
> In 3.12, hdmi audio is exposed as a connector property so you can enable
> audio on the fly rather than needing to pass radeon.audio=1 to force it on. 
> E.g.,
> 
> xrandr --output HDMI-0 --set audio auto

Tried the xrandr on 3.12.0-rc2 and it crashed, should I have removed the radeon.audio=1 ?

Linux Ariel 3.12.0-rc2 #3 SMP Thu Sep 26 08:35:29 BST 2013 i686 GNU/Linux

DMesg:

kernel BUG at mm/slub.c:3338!
invalid opcode: 0000 [#1] SMP 
Modules linked in: nfsv3 sha256_generic cbc dm_crypt hid_logitech_dj usbhid ohci_pci ohci_hcd psmouse snd_hda_codec_hdmi i2c_piix4 sr_mod cdrom snd_hda_intel acpi_cpufreq processor button thermal_sys tuner msp3400 saa7127 saa7115 ivtv tveeprom cx2341x cifs dm_mod md5 nfs nfsd lockd sunrpc snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss snd_hda_codec_realtek snd_hda_codec snd_hwdep snd_pcm snd_page_alloc snd_timer snd soundcore brd loop k10temp fam15h_power eeprom
CPU: 1 PID: 1752 Comm: X Not tainted 3.12.0-rc2 #3
Hardware name: System manufacturer System Product Name/F2A55-M, BIOS 6403 07/22/2013
task: f4e762e0 ti: f2212000 task.ti: f2212000
EIP: 0060:[<c110b22a>] EFLAGS: 00210246 CPU: 1
EIP is at kfree+0xaa/0xc0
EAX: 80000000 EBX: 00001800 ECX: 00010005 EDX: 00200292
ESI: f4cda000 EDI: 00000000 EBP: f5c1e020 ESP: f2213afc
 DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
CR0: 80050033 CR2: 0804b7cb CR3: 33263000 CR4: 000407f0
Stack:
 00200292 00000025 00000000 f4cda000 00000000 f4f84e60 c138c537 00010005
 00001880 00028488 00001800 f4cda000 0000b000 f4cda000 0000b000 c13350c5
 00000000 0000000c 00000002 f440a400 f440a400 f4cda000 f2097100 00000000
Call Trace:
 [<c138c537>] ? dce6_afmt_write_speaker_allocation+0xb7/0x120
 [<c13350c5>] ? evergreen_hdmi_setmode+0x2e5/0x840
 [<c138c2f0>] ? dce6_endpoint_rreg+0x50/0x60
 [<c13356e6>] ? evergreen_hdmi_enable+0xc6/0xe0
 [<c133bb11>] ? radeon_atom_encoder_mode_set+0x151/0x2c0
 [<c12a20bb>] ? drm_crtc_helper_set_mode+0x41b/0x480
 [<c12e7cf2>] ? radeon_property_change_mode.isra.5+0x32/0x40
 [<c12e7e73>] ? radeon_connector_set_property+0x173/0x2a0
 [<c12b64c2>] ? drm_mode_obj_set_property_ioctl+0x142/0x3c0
 [<c110b13a>] ? kmem_cache_free+0x9a/0xc0
 [<c12b6740>] ? drm_mode_obj_set_property_ioctl+0x3c0/0x3c0
 [<c12b676e>] ? drm_mode_connector_property_set_ioctl+0x2e/0x40
 [<c12a7306>] ? drm_ioctl+0x3e6/0x480
 [<c12b6740>] ? drm_mode_obj_set_property_ioctl+0x3c0/0x3c0
 [<c1469491>] ? sock_aio_read+0xd1/0x100
 [<c12a6f20>] ? drm_copy_field+0x60/0x60
 [<c1123faf>] ? do_vfs_ioctl+0x34f/0x540
 [<c11148d9>] ? vfs_read+0xd9/0x120
 [<c11241da>] ? SyS_ioctl+0x3a/0x80
 [<c14ff93e>] ? sysenter_do_call+0x12/0x26
Code: e8 c7 c3 3e 00 eb df f7 45 00 00 c0 00 00 74 1b 8b 45 00 31 d2 f6 c4 40 74 03 8b 55 38 83 c4 08 89 e8 5b 5e 5f 5d e9 f6 c3 fc ff <0f> 0b eb 12 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
EIP: [<c110b22a>] kfree+0xaa/0xc0 SS:ESP 0068:f2213afc
Comment 4 Stuart Foster 2013-09-27 22:58:02 UTC
Removed radeon.audio=1 from boot file and rebuilt with latest Aruba/Tahiti firmware resulted in xrandr sucessfully enabling audio and the system appears stable (power managment also enabled).

thanks.