Bug 28030

Summary: HDMI audio does not work with HD4200 IGP but does work with radeonhd
Product: DRI Reporter: sean finney <seanius>
Component: DRM/RadeonAssignee: Default DRI bug account <dri-devel>
Status: RESOLVED MOVED QA Contact:
Severity: normal    
Priority: medium    
Version: XOrg git   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Patch against 2.6.34-rc6 to fix the problem none

Description sean finney 2010-05-08 04:16:47 UTC
I've been using the radeonhd driver for some time due to the fact that it supports audio over HDMI, so i can have everything routed to my HDMI receiver over one cable.

I read that recently the radeon driver was supposed to offer support for this as well, and since it's otherwise a better driver i thought i'd give it a go.  unfortunately, i am greeted with the sound of silence, and not hte simon and garfunkel version (which would equally be surprising, but...).  if i switch my xorg config to use the radonhd driver audio still works on this machine, but without running x or with x running and radeon driver loaded, nothing.

alsa sees the devices, and I can play to it via sox, but I don't hear anything.

here's some info that might be useful, please let me know if you need anything else.

lspci:

01:05.0 VGA compatible controller: ATI Technologies Inc RS880 [Radeon HD 4200]
01:05.1 Audio device: ATI Technologies Inc RS880 Audio Device [Radeon HD 4200]

kernel:

Linux htpc 2.6.34-rc6 #1 SMP Fri Apr 30 18:58:36 CEST 2010 x86_64 GNU/Linux

dmesg | grep -i radeon:

[   28.209345] [drm] radeon kernel modesetting enabled.
[   28.209617] radeon 0000:01:05.0: setting latency timer to 64
[   28.216607] [drm] radeon: power management initialized
[   28.216623] radeon 0000:01:05.0: VRAM: 256M 0xC0000000 - 0xCFFFFFFF (256M used)
[   28.216630] radeon 0000:01:05.0: GTT: 512M 0xA0000000 - 0xBFFFFFFF
[   28.219976] [drm] radeon: 256M of VRAM memory ready
[   28.219980] [drm] radeon: 512M of GTT memory ready.
[   28.220065] [drm] radeon: irq initialized.
[   28.221688] platform radeon_cp.0: firmware: requesting radeon/RS780_pfp.bin
[   28.273545] platform radeon_cp.0: firmware: requesting radeon/RS780_me.bin
[   28.280034] platform radeon_cp.0: firmware: requesting radeon/R600_rlc.bin
[   28.320843] [drm] radeon: ib pool ready.
[   28.321217] [drm] Radeon Display Connectors
[   28.650110] fb0: radeondrmfb frame buffer device
[   28.650115] [drm] Initialized radeon 2.3.0 20080528 for 0000:01:05.0 on minor 0


kernel options:

options radeon modeset=1 audio=1 (also tried with modeset=0)

aplay -L:

null
    Discard all samples (playback) or generate zero samples (capture)
front:CARD=SB,DEV=0
    HDA ATI SB, ALC889A Analog
    Front speakers
surround40:CARD=SB,DEV=0
    HDA ATI SB, ALC889A Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=SB,DEV=0
    HDA ATI SB, ALC889A Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=SB,DEV=0
    HDA ATI SB, ALC889A Analog
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=SB,DEV=0
    HDA ATI SB, ALC889A Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=SB,DEV=0
    HDA ATI SB, ALC889A Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=SB,DEV=0
    HDA ATI SB, ALC889A Digital
    IEC958 (S/PDIF) Digital Audio Output
hdmi:CARD=HDMI
    HDA ATI HDMI, ATI HDMI
    HDMI Audio Output


lsmod:

Module                  Size  Used by
nls_utf8                1240  0 
nls_cp437               5825  0 
btrfs                 375614  0 
zlib_deflate           17634  1 btrfs
crc32c                  2584  1 
libcrc32c                986  1 btrfs
ufs                    57094  0 
qnx4                    6345  0 
hfsplus                64974  0 
hfs                    37094  0 
minix                  21517  0 
ntfs                  158011  0 
vfat                    7832  0 
msdos                   6265  0 
fat                    39741  2 vfat,msdos
jfs                   137530  0 
xfs                   736926  0 
exportfs                3066  1 xfs
reiserfs              193312  0 
ext4                  273039  0 
jbd2                   61357  1 ext4
crc16                   1311  1 ext4
ext2                   53155  0 
cryptd                  5422  0 
aes_x86_64              7380  2 
aes_generic            26090  1 aes_x86_64
ppdev                   5299  0 
lp                      8078  0 
parport                25598  2 ppdev,lp
acpi_cpufreq            5673  0 
cpufreq_stats           2649  0 
cpufreq_conservative     7886  0 
cpufreq_powersave        926  0 
cpufreq_userspace       1904  0 
binfmt_misc             6446  1 
uinput                  6654  1 
fuse                   50041  5 
loop                   12218  0 
joydev                  8344  0 
snd_hda_codec_idt      44345  1 
arc4                    1314  2 
snd_hda_intel          19402  1 
ecb                     1865  2 
snd_hda_codec          64924  2 snd_hda_codec_idt,snd_hda_intel
snd_hwdep               5468  1 snd_hda_codec
snd_pcm_oss            31980  0 
snd_mixer_oss          12687  1 snd_pcm_oss
pcmcia                 29415  0 
snd_pcm                61553  3 snd_hda_intel,snd_hda_codec,snd_pcm_oss
snd_seq_midi            4454  0 
snd_rawmidi            15945  1 snd_seq_midi
snd_seq_midi_event      4738  1 snd_seq_midi
iwl3945                51692  0 
snd_seq                42374  2 snd_seq_midi,snd_seq_midi_event
iwlcore                84262  1 iwl3945
nouveau               366209  3 
snd_timer              16288  2 snd_pcm,snd_seq
snd_seq_device          4515  3 snd_seq_midi,snd_rawmidi,snd_seq
mac80211              148124  2 iwl3945,iwlcore
dell_wmi                2579  0 
ttm                    39325  1 nouveau
drm_kms_helper         19995  1 nouveau
cfg80211              114001  3 iwl3945,iwlcore,mac80211
yenta_socket           18897  0 
rsrc_nonstatic          6873  1 yenta_socket
psmouse                44995  0 
dell_laptop             5040  0 
video                  18189  0 
tpm_tis                 7349  0 
tpm                     9843  1 tpm_tis
tpm_bios                4629  1 tpm
dcdbas                  4992  1 dell_laptop
evdev                   7426  24 
pcmcia_core            11412  3 pcmcia,yenta_socket,rsrc_nonstatic
serio_raw               3726  0 
snd                    46659  13 snd_hda_codec_idt,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
wmi                     5443  1 dell_wmi
i2c_i801                7822  0 
rfkill                 13314  3 cfg80211,dell_laptop
output                  1732  1 video
battery                 5518  0 
ac                      2200  0 
drm                   143465  5 nouveau,ttm,drm_kms_helper
i2c_algo_bit            4297  1 nouveau
rng_core                3166  0 
processor              28802  3 acpi_cpufreq
i2c_core               15804  5 nouveau,drm_kms_helper,i2c_i801,drm,i2c_algo_bit
button                  4706  1 nouveau
soundcore               4726  1 snd
snd_page_alloc          6097  2 snd_hda_intel,snd_pcm
intel_agp              25635  0 
dm_snapshot            24498  0 
dm_mirror              11626  0 
dm_region_hash          6640  1 dm_mirror
dm_log                  7645  2 dm_mirror,dm_region_hash
ext3                  105714  3 
jbd                    36203  1 ext3
mbcache                 5152  3 ext4,ext2,ext3
dm_mod                 54789  9 dm_snapshot,dm_mirror,dm_log
raid1                  18423  0 
md_mod                 76980  1 raid1
sg                     19029  0 
sr_mod                 12711  0 
sd_mod                 30243  5 
crc_t10dif              1284  1 sd_mod
cdrom                  29769  1 sr_mod
ata_generic             3023  0 
ata_piix               20556  5 
libata                132830  2 ata_generic,ata_piix
uhci_hcd               18218  0 
scsi_mod              124407  4 sg,sr_mod,sd_mod,libata
tg3                   104200  0 
ide_pci_generic         2828  0 
ehci_hcd               29920  0 
libphy                 14000  1 tg3
ide_core               76791  1 ide_pci_generic
usbcore               124669  3 uhci_hcd,ehci_hcd
nls_base                6369  9 nls_utf8,nls_cp437,hfsplus,hfs,ntfs,vfat,fat,jfs,usbcore
thermal                12046  0 
thermal_sys            12036  3 video,processor,thermal
Comment 1 Christian König 2010-05-09 11:53:30 UTC
Created attachment 35528 [details] [review]
Patch against 2.6.34-rc6 to fix the problem
Comment 2 Christian König 2010-05-09 11:56:10 UTC
The initialisation path for the IGP version of the chipset is missing a call to r600_audio_init, so audio isn't enabled on those chipsets.

I've attached a patch to fix the problem, but beside from a compile check its completely untestet since i don't have access to an IGP version of the chipset.
Comment 3 sean finney 2010-05-09 14:31:46 UTC
(In reply to comment #2)
> The initialisation path for the IGP version of the chipset is missing a call to
> r600_audio_init, so audio isn't enabled on those chipsets.
> 
> I've attached a patch to fix the problem, but beside from a compile check its
> completely untestet since i don't have access to an IGP version of the chipset.

awesome.  i'll give it a whirl and get back to you.
Comment 4 sean finney 2010-05-09 15:23:38 UTC
(In reply to comment #3)
> (In reply to comment #2)
> > The initialisation path for the IGP version of the chipset is missing a call to
> > r600_audio_init, so audio isn't enabled on those chipsets.
> > 
> > I've attached a patch to fix the problem, but beside from a compile check its
> > completely untestet since i don't have access to an IGP version of the chipset.
> 
> awesome.  i'll give it a whirl and get back to you.

sadly, no love, still silence.  thsi is the last i see in dmesg:

[   29.907791] [drm] Setting GART location based on new memory map
[   29.908307] [drm] Loading RS780 CP Microcode
[   29.908314] platform r600_cp.0: firmware: requesting radeon/RS780_pfp.bin
[   30.039783] platform r600_cp.0: firmware: requesting radeon/RS780_me.bin
[   30.083629] [drm] Resetting GPU
[   30.083688] [drm] writeback test succeeded in 1 usecs
[  109.590761] hda-intel: IRQ timing workaround is activated for card #1. Suggest a bigger bdl_pos_adj.
Comment 5 sean finney 2010-05-10 13:26:13 UTC
okay, this is really interesting... when the system starts up after booting/rebooting, the audio does not work.  attempting to play to the alsa audio device will result in various errors having to do with sysctl requests *but*, if i restart the graphical user session (i.e. /etc/init.d/gdm restart), the audio works!

it only seems to be in 2-channel stereo though, but i'm not sure if that's just me needing to find the right modprobe option foo to snd-hda-intel.
Comment 6 Martin Peres 2019-11-19 08:12:30 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/drm/amd/issues/124.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.