All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Henningsson <david.henningsson@canonical.com>
To: "Deucher, Alexander" <Alexander.Deucher@amd.com>,
	Takashi Iwai <tiwai@suse.de>
Cc: Anssi Hannula <anssi.hannula@iki.fi>,
	"alsa-devel@alsa-project.org" <alsa-devel@alsa-project.org>
Subject: Re: Radeon unconnected HDMI eats samples at 280 kHz
Date: Tue, 23 Sep 2014 11:47:44 +0200	[thread overview]
Message-ID: <542141C0.3010503@canonical.com> (raw)
In-Reply-To: <A3397C8B8B789E45844E7EC5DEAD89D05992B76D@satlexdag05.amd.com>



On 2014-09-22 16:52, Deucher, Alexander wrote:
>> -----Original Message-----
>> From: David Henningsson [mailto:david.henningsson@canonical.com]
>> Sent: Monday, September 22, 2014 10:39 AM
>> To: Deucher, Alexander; Takashi Iwai
>> Cc: Anssi Hannula; alsa-devel@alsa-project.org
>> Subject: Re: [alsa-devel] Radeon unconnected HDMI eats samples at 280 kHz
>>
>> On 2014-09-22 14:46, Deucher, Alexander wrote:
>>>> -----Original Message-----
>>>> From: David Henningsson [mailto:david.henningsson@canonical.com]
>>>> Sent: Friday, September 19, 2014 8:07 PM
>>>> To: Deucher, Alexander; Takashi Iwai
>>>> Cc: Anssi Hannula; alsa-devel@alsa-project.org
>>>> Subject: Re: [alsa-devel] Radeon unconnected HDMI eats samples at 280
>> kHz
>>>>
>>>> Btw, is there a register dump utility I could use to get the current
>>>> register value, e g by reading sysfs or procfs? It could be interesting
>>>> to see if anything we do on the audio side would affect this register.
>>>
>>> You can use the radeonreg tool to dump registers:
>>> http://cgit.freedesktop.org/~airlied/radeontool
>>
>> Thanks, I have now tried this, together with the kernel from
>> drm-next-3.18-wip.
>>
>>   From your patches it looks like I should look at the dumped register
>> 0x7300, is that correct?
>
> What GPU do you have?  The offset of that register varies between generations.

Not sure exactly what GPU info you need, but here's the lspci info:

01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. 
[AMD/ATI] RV710 [Radeon HD 4550] [1002:9540] (prog-if 00 [VGA controller])
         Subsystem: PC Partner Limited / Sapphire Technology Device 
[174b:e106]

>> At boot up, this register is 001000f0. (Out of curiousity, I tried
>> disabling unsol events from the audio side, but this did not change the
>> register.)
>> After HDMI plug in, the register changed to 0x8f1000f0, the jack
>> reported being plugged in, and audio worked.
>>
>> After HDMI unplugged again, the register remained at 0x8f1000f0, and
>> "xrandr --output HDMI-0 --off" did not help.
>>
>> However, when looking at your code, I also spotted something in the
>> patch called "disable audio when we disable hdmi":
>>
>> if (!enable && dig->afmt->pin) {
>>       r600_audio_enable(rdev, dig->afmt->pin, 0xf);
>>                                               ^^^
>> If enable is false, should we not set the last parameter to 0 instead of
>> 0xf?
>
> Yup.  Good catch.  I've fixed that up and pushed a new drm-next-3.18-wip branch.

Ok, I have tested this now, with mixed results. One time when I 
unplugged I believe it correctly switched back to unplugged on the audio 
side (after running "xrandr", with no parameters). But the next time it 
did not.

So far, it looks like whenever the audio side reports presence, the 
0x7300 register is set to 0x8f1000f0. So as long as we can get the video 
side to correctly turn off the right bits of that register when the 
monitor is disabled/disconnected, things should be working on the audio 
side.


-- 
David Henningsson, Canonical Ltd.
https://launchpad.net/~diwic

  reply	other threads:[~2014-09-23  9:47 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-17 13:40 Radeon unconnected HDMI eats samples at 280 kHz David Henningsson
2014-09-17 21:26 ` Anssi Hannula
2014-09-18  4:13   ` David Henningsson
2014-09-18  7:33     ` Takashi Iwai
2014-09-18  7:54       ` David Henningsson
2014-09-18 22:29         ` Deucher, Alexander
2014-09-19 13:38           ` David Henningsson
2014-09-19 14:14             ` Deucher, Alexander
2014-09-19 17:47               ` David Henningsson
2014-09-19 18:19                 ` Alexander E. Patrakov
2014-09-19 23:35                   ` David Henningsson
2014-09-20  9:37                     ` Anssi Hannula
2014-09-20  9:39                     ` Alexander E. Patrakov
2014-09-19 23:32                 ` Deucher, Alexander
2014-09-20  0:06                   ` David Henningsson
2014-09-20  9:31                     ` Alexander E. Patrakov
2014-09-22 12:46                     ` Deucher, Alexander
2014-09-22 14:39                       ` David Henningsson
2014-09-22 14:52                         ` Deucher, Alexander
2014-09-23  9:47                           ` David Henningsson [this message]
2014-09-23 14:07                             ` Deucher, Alexander
2014-09-24  9:27                               ` David Henningsson
2014-09-24 21:37                                 ` Deucher, Alexander
2014-09-30 12:24                                   ` David Henningsson
2014-09-30 12:45                                     ` Deucher, Alexander

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=542141C0.3010503@canonical.com \
    --to=david.henningsson@canonical.com \
    --cc=Alexander.Deucher@amd.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=anssi.hannula@iki.fi \
    --cc=tiwai@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.