[next][PATCH 2/3] drm/radeon/hdmi: update modesetting
Rafał Miłecki
zajec5 at gmail.com
Sun May 27 11:50:19 PDT 2012
2012/5/27 Alex Deucher <alexdeucher at gmail.com>:
> On Sat, May 26, 2012 at 5:40 PM, Rafał Miłecki <zajec5 at gmail.com> wrote:
>> 2012/5/26 Rafał Miłecki <zajec5 at gmail.com>:
>>> 2012/5/26 Rafał Miłecki <zajec5 at gmail.com>:
>>>> 2012/5/6 Rafał Miłecki <zajec5 at gmail.com>:
>>>>> + WREG32(HDMI0_AUDIO_PACKET_CONTROL + offset,
>>>>> + HDMI0_AUDIO_SAMPLE_SEND | /* send audio packets */
>>>>> + HDMI0_AUDIO_DELAY_EN(1) | /* default audio delay */
>>>>> + HDMI0_AUDIO_SEND_MAX_PACKETS | /* send NULL packets if no audio is available */
>>>>> + HDMI0_AUDIO_PACKETS_PER_LINE(3) | /* should be suffient for all audio modes and small enough for all hblanks */
>>>>> + HDMI0_60958_CS_UPDATE); /* allow 60958 channel status fields to be updated */
>>>>
>>>> Alex, I've problem with the above code. I've arrived to my parent's
>>>> house and I noticed audio doesn't work anymore with Onkyo TX-SR605.
>>>> The problem is caused by:
>>>> HDMI0_AUDIO_SEND_MAX_PACKETS
>>>>
>>>> Setting this bit doesn't seem to be problem for my Denon 1912, so I
>>>> didn't notice that earlier. Before the rewrite modesetting we weren't
>>>> set that bit, so it's actually a regression for my case with Onkyo.
>>>>
>>>> Can you say something more about this bit? My only solution is to just
>>>> don't set it, but maybe there's a better one?
>>>
>>> The same happens when I connect my RV620 directly to the TV (not using
>>> Onkyo between as audio receiver). My TV is Sony BRAVIA KDL-52X3500.
>>> Setting bit HDMI0_AUDIO_SEND_MAX_PACKETS also causes no audio in TV.
>>
>> Last e-mail for today (well, it's only 25 minutes left here ;) ). I've
>> decided to give fglrx a chance (12.4).
>>
>> 1) RV620 connected directly to Sony BRAVIA KDL-52X3500
>> [ 234.399] (WW) fglrx(0): Incorrect HDMI dongle found, HDMI audio disabled.
>> I couldn't play anything.
>>
>> 2) RV620 connected to Onkyo TX-SR605
>> Audio playing, but fglrx set 0x7408 to:
>> 0x10020011
>> so it seems fglrx isn't using
>> HDMI0_AUDIO_SEND_MAX_PACKETS == 0x100
>> Setting that bit while using fglrx broke audio.
>>
>>
>> I did one more test with a different TV: Sony BRAVIA KDL-40S40xx. The
>> results are the same. fglrx sets 0x7408 to: 0x10020011 (so
>> HDMI0_AUDIO_SEND_MAX_PACKETS is not set). Setting that bit manually
>> (while using fglrx) breaks audio.
>>
>>
>> It just seems to me we shouldn't set that bit at all...
>
> If it breaks things, might as well not set it. I only set it because
> some of the documents said it needed to be set. That bit causes the
> hw to send null packets if audio data is not available. Maybe some
> receivers don't deal well with null packets. Might as well disable it
> for now and I can ask the display guys more about it next week.
Thanks for answer. It seems this bit works somehow differently than
your docs says.
I could understand NULL packets breaking display when not playing
audio. However this bit broke audio totally, even when feeding GPU
with audio, my receivers still couldn't play anything.
I've just arrived my home and tested my home configuration: Denon 1912
+ Sony UE55D7000. This set handles audio correctly even when setting
HDMI0_AUDIO_SEND_MAX_PACKETS. However dumping regs while using fglrx
has showed this bit is not being set (by fglrx).
So there isn't any magical detection of HDMI0_AUDIO_SEND_MAX_PACKETS
receiver-acceptance in fglrx code. fglrx just doesn't set
HDMI0_AUDIO_SEND_MAX_PACKETS no matter if this would work with the
attached receivers. Maybe fglrx programmers detected problem with that
bit/feature and disabled it, ignoring specs at this single point.
--
Rafał
More information about the dri-devel
mailing list