[PATCH 2/6] drm/radeon: remove HDMI interrupts on Evergreen

Rafał Miłecki zajec5 at gmail.com
Sun Apr 21 12:14:38 PDT 2013


2013/4/14 Alex Deucher <alexdeucher at gmail.com>:
> On Sat, Apr 13, 2013 at 7:26 PM, Rafał Miłecki <zajec5 at gmail.com> wrote:
>> We need interrupts on format change for R6xx only, where hardware seems
>> to be somehow bugged and requires setting audio info manually.
>
> Can you confirm that this is actually needed on older chips?  AFAIK,
> it shouldn't be required for any chips.  It's mainly for debugging.

I've finally managed to install, run and debug fglrx on RV620. That
was really painful and ignoring Xorg 1.13 release in fglrx legacy
didn't help :|

Please take a look at attached log from fglrx. It seems that fglrx on
every audio format change does:
1) Read audio status (R600_AUDIO_STATUS_BITS, R600_AUDIO_RATE_BPS_CHANNEL)
2) Writes sth to HDMI0_STATUS and HDMI0_INFOFRAME_CONTROL0
3) Updates audio info frame
4) Recalculates checksum of audio info frame
5) Triggers update with HDMI0_AUDIO_INFO_UPDATE bit

That are some extra reads that look like polling, probably for some frame sync.

In the attached logs you can't see any real changes in audio info
frame, because I wasn't able to play more that 2 channels (because of
lacking support for multichannel audio in alsa). However I start
thinking we may need audio interrupts for all ASICs. And removing them
wasn't a good idea at al. After all, how we could handle audio
infoframe update on audio format change?

The thing we may try dropping is code updating HDMI0_60958_0 and
HDMI0_60958_1 registers. I don't see fglrx writing to that registers
on audio format change, so maybe hardware does handle that
automatically? That needs verifying with fglrx and radeon.

-- 
Rafał
-------------- next part --------------
sudo mplayer -ao alsa:device=hw=1.3 01.flac -srate 44100

RREG32(0x00007404); -> 0x00e00000	HDMI0_STATUS
RREG32(0x00000330); -> 0x00000000
RREG32(0x00000338); -> 0x00000000
RREG32(0x000060f8); -> 0x00000003
RREG32(0x000068a0); -> 0x05e200a5
RREG32(0x000068a0); -> 0x08540109
RREG32(0x0000689c); -> 0x00020002
RREG32(0x00000330); -> 0x00000000
RREG32(0x00000338); -> 0x00000000
RREG32(0x000060f8); -> 0x00000003
RREG32(0x000068a0); -> 0x088602f4
RREG32(0x000068a0); -> 0x02910356
RREG32(0x0000689c); -> 0x00010002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020009
RREG32(0x00007408); -> 0x10020011	HDMI0_AUDIO_PACKET_CONTROL
RREG32(0x000073d8); -> 0x00000001	R600_AUDIO_STATUS_BITS
RREG32(0x000073c0); -> 0x00004011	R600_AUDIO_RATE_BPS_CHANNEL
RREG32(0x00007400); -> 0x00000010	HDMI0_STATUS
WREG32(0x00007400, 0x00000110);		HDMI0_STATUS			|= 1 << 8
RREG32(0x00007414); -> 0x00000013	HDMI0_INFOFRAME_CONTROL0
WREG32(0x00007414, 0x00000013);		HDMI0_INFOFRAME_CONTROL0
RREG32(0x000074cc); -> 0x00000170	HDMI0_AUDIO_INFO0
WREG32(0x000074cc, 0x00000170);		HDMI0_AUDIO_INFO0
RREG32(0x000074cc); -> 0x00000170	HDMI0_AUDIO_INFO0
RREG32(0x000074d0); -> 0x00000000	HDMI0_AUDIO_INFO1
WREG32(0x000074cc, 0x00000170);		HDMI0_AUDIO_INFO0
RREG32(0x00007414); -> 0x00000013	HDMI0_INFOFRAME_CONTROL0
WREG32(0x00007414, 0x000000b3);		HDMI0_INFOFRAME_CONTROL0	|= HDMI0_AUDIO_INFO_UPDATE
RREG32(0x00007404); -> 0x00e00010	HDMI0_STATUS
RREG32(0x00000330); -> 0x00000000
RREG32(0x00000338); -> 0x00000000
RREG32(0x000060f8); -> 0x00000003
RREG32(0x000068a0); -> 0x01c301f6
RREG32(0x000068a0); -> 0x065f025a
RREG32(0x0000689c); -> 0x00020002
RREG32(0x00000330); -> 0x00000000
RREG32(0x00000338); -> 0x00000000
RREG32(0x000060f8); -> 0x00000003
RREG32(0x000068a0); -> 0x0884044a
RREG32(0x000068a0); -> 0x00ad0049
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020009
RREG32(0x00007408); -> 0x10020011	HDMI0_AUDIO_PACKET_CONTROL
RREG32(0x000073d8); -> 0x00000001	R600_AUDIO_STATUS_BITS
RREG32(0x000073c0); -> 0x00004011	R600_AUDIO_RATE_BPS_CHANNEL
RREG32(0x00007400); -> 0x00000010	HDMI0_STATUS
WREG32(0x00007400, 0x00000110);		HDMI0_STATUS			|= 1 << 8
RREG32(0x00007414); -> 0x00000033	HDMI0_INFOFRAME_CONTROL0
WREG32(0x00007414, 0x00000033);		HDMI0_INFOFRAME_CONTROL0
RREG32(0x000074cc); -> 0x00000170	HDMI0_AUDIO_INFO0
WREG32(0x000074cc, 0x00000170);		HDMI0_AUDIO_INFO0
RREG32(0x000074cc); -> 0x00000170	HDMI0_AUDIO_INFO0
RREG32(0x000074d0); -> 0x00000000	HDMI0_AUDIO_INFO1
WREG32(0x000074cc, 0x00000170);		HDMI0_AUDIO_INFO0
RREG32(0x00007414); -> 0x00000033	HDMI0_INFOFRAME_CONTROL0
WREG32(0x00007414, 0x000000b3);		HDMI0_INFOFRAME_CONTROL0	|= HDMI0_AUDIO_INFO_UPDATE
RREG32(0x00007404); -> 0x00e00010	HDMI0_STATUS
RREG32(0x00000330); -> 0x00000000
RREG32(0x00000338); -> 0x00000000
RREG32(0x000060f8); -> 0x00000003
RREG32(0x000068a0); -> 0x03ab01ea
RREG32(0x000068a0); -> 0x0856024b
RREG32(0x0000689c); -> 0x00020002
RREG32(0x00000330); -> 0x00000000
RREG32(0x00000338); -> 0x00000000
RREG32(0x000060f8); -> 0x00000003
RREG32(0x000068a0); -> 0x05260433
RREG32(0x000068a0); -> 0x07b50030
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020009
RREG32(0x00007408); -> 0x10020011	HDMI0_AUDIO_PACKET_CONTROL
RREG32(0x000073d8); -> 0x00000001	R600_AUDIO_STATUS_BITS
RREG32(0x000073c0); -> 0x00004011	R600_AUDIO_RATE_BPS_CHANNEL
RREG32(0x00007400); -> 0x00000010	HDMI0_STATUS
WREG32(0x00007400, 0x00000110);		HDMI0_STATUS			|= 1 << 8
RREG32(0x00007414); -> 0x00000033	HDMI0_INFOFRAME_CONTROL0
WREG32(0x00007414, 0x00000033);		HDMI0_INFOFRAME_CONTROL0
RREG32(0x000074cc); -> 0x00000170	HDMI0_AUDIO_INFO0
WREG32(0x000074cc, 0x00000170);		HDMI0_AUDIO_INFO0
RREG32(0x000074cc); -> 0x00000170	HDMI0_AUDIO_INFO0
RREG32(0x000074d0); -> 0x00000000	HDMI0_AUDIO_INFO1
WREG32(0x000074cc, 0x00000170);		HDMI0_AUDIO_INFO0
RREG32(0x00007414); -> 0x00000033	HDMI0_INFOFRAME_CONTROL0
WREG32(0x00007414, 0x000000b3);		HDMI0_INFOFRAME_CONTROL0	|= HDMI0_AUDIO_INFO_UPDATE



sudo mplayer -ao alsa:device=hw=1.3 01.flac -srate 48000

RREG32(0x00007404); -> 0x00e00000	HDMI0_STATUS
RREG32(0x00000330); -> 0x00000000
RREG32(0x00000338); -> 0x00000000
RREG32(0x000060f8); -> 0x00000003
RREG32(0x000068a0); -> 0x03f3031c
RREG32(0x000068a0); -> 0x06ca0382
RREG32(0x0000689c); -> 0x00020002
RREG32(0x00000330); -> 0x00000000
RREG32(0x00000338); -> 0x00000000
RREG32(0x000060f8); -> 0x00000003
RREG32(0x000068a0); -> 0x0511010a
RREG32(0x000068a0); -> 0x02f7016c
RREG32(0x0000689c); -> 0x00010002
RREG32(0x0000689c); -> 0x00010002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020009
RREG32(0x00007408); -> 0x10020011	HDMI0_AUDIO_PACKET_CONTROL
RREG32(0x000073d8); -> 0x00000001	R600_AUDIO_STATUS_BITS
RREG32(0x000073c0); -> 0x00000011	R600_AUDIO_RATE_BPS_CHANNEL
RREG32(0x00007400); -> 0x00000010	HDMI0_STATUS
WREG32(0x00007400, 0x00000110);		HDMI0_STATUS			|= 1 << 8
RREG32(0x00007414); -> 0x00000033	HDMI0_INFOFRAME_CONTROL0
WREG32(0x00007414, 0x00000033);		HDMI0_INFOFRAME_CONTROL0
RREG32(0x000074cc); -> 0x00000170	HDMI0_AUDIO_INFO0
WREG32(0x000074cc, 0x00000170);		HDMI0_AUDIO_INFO0
RREG32(0x000074cc); -> 0x00000170	HDMI0_AUDIO_INFO0
RREG32(0x000074d0); -> 0x00000000	HDMI0_AUDIO_INFO1
WREG32(0x000074cc, 0x00000170);		HDMI0_AUDIO_INFO0
RREG32(0x00007414); -> 0x00000033	HDMI0_INFOFRAME_CONTROL0
WREG32(0x00007414, 0x000000b3);		HDMI0_INFOFRAME_CONTROL0	|= HDMI0_AUDIO_INFO_UPDATE
RREG32(0x00007404); -> 0x00e00010	HDMI0_STATUS
RREG32(0x00000330); -> 0x00000000
RREG32(0x00000338); -> 0x00000000
RREG32(0x000060f8); -> 0x00000003
RREG32(0x000068a0); -> 0x02ad01f9
RREG32(0x000068a0); -> 0x0434025d
RREG32(0x0000689c); -> 0x00000002
RREG32(0x00000330); -> 0x00000000
RREG32(0x00000338); -> 0x00000000
RREG32(0x000060f8); -> 0x00000003
RREG32(0x000068a0); -> 0x033b0448
RREG32(0x000068a0); -> 0x01a00045
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00010002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00010002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00050002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00050009
RREG32(0x00007408); -> 0x10020011	HDMI0_AUDIO_PACKET_CONTROL
RREG32(0x000073d8); -> 0x00000001	R600_AUDIO_STATUS_BITS
RREG32(0x000073c0); -> 0x00000011	R600_AUDIO_RATE_BPS_CHANNEL
RREG32(0x00007400); -> 0x00000010	HDMI0_STATUS
WREG32(0x00007400, 0x00000110);		HDMI0_STATUS			|= 1 << 8
RREG32(0x00007414); -> 0x00000033	HDMI0_INFOFRAME_CONTROL0
WREG32(0x00007414, 0x00000033);		HDMI0_INFOFRAME_CONTROL0
RREG32(0x000074cc); -> 0x00000170	HDMI0_AUDIO_INFO0
WREG32(0x000074cc, 0x00000170);		HDMI0_AUDIO_INFO0
RREG32(0x000074cc); -> 0x00000170	HDMI0_AUDIO_INFO0
RREG32(0x000074d0); -> 0x00000000	HDMI0_AUDIO_INFO1
WREG32(0x000074cc, 0x00000170);		HDMI0_AUDIO_INFO0
RREG32(0x00007414); -> 0x00000033	HDMI0_INFOFRAME_CONTROL0
WREG32(0x00007414, 0x000000b3);		HDMI0_INFOFRAME_CONTROL0	|= HDMI0_AUDIO_INFO_UPDATE



sudo mplayer -ao alsa:device=hw=1.3 01.flac -srate 48000

RREG32(0x00007404); -> 0x00e00000	HDMI0_STATUS
RREG32(0x00000330); -> 0x00000000
RREG32(0x00000338); -> 0x00000000
RREG32(0x000060f8); -> 0x00000003
RREG32(0x000068a0); -> 0x08380306
RREG32(0x000068a0); -> 0x07200369
RREG32(0x0000689c); -> 0x00020002
RREG32(0x00000330); -> 0x00000000
RREG32(0x00000338); -> 0x00000000
RREG32(0x000060f8); -> 0x00000003
RREG32(0x000068a0); -> 0x069d00f2
RREG32(0x000068a0); -> 0x03910154
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00000002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00000002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020008
RREG32(0x0000689c); -> 0x00000002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00010002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020009
RREG32(0x00007408); -> 0x10020011	HDMI0_AUDIO_PACKET_CONTROL
RREG32(0x000073d8); -> 0x00000001	R600_AUDIO_STATUS_BITS
RREG32(0x000073c0); -> 0x00000011	R600_AUDIO_RATE_BPS_CHANNEL
RREG32(0x00007400); -> 0x00000010	HDMI0_STATUS
WREG32(0x00007400, 0x00000110);		HDMI0_STATUS			|= 1 << 8
RREG32(0x00007414); -> 0x00000033	HDMI0_INFOFRAME_CONTROL0
WREG32(0x00007414, 0x00000033);		HDMI0_INFOFRAME_CONTROL0
RREG32(0x000074cc); -> 0x00000170	HDMI0_AUDIO_INFO0
WREG32(0x000074cc, 0x00000170);		HDMI0_AUDIO_INFO0
RREG32(0x000074cc); -> 0x00000170	HDMI0_AUDIO_INFO0
RREG32(0x000074d0); -> 0x00000000	HDMI0_AUDIO_INFO1
WREG32(0x000074cc, 0x00000170);		HDMI0_AUDIO_INFO0
RREG32(0x00007414); -> 0x00000033	HDMI0_INFOFRAME_CONTROL0
WREG32(0x00007414, 0x000000b3);		HDMI0_INFOFRAME_CONTROL0	|= HDMI0_AUDIO_INFO_UPDATE
RREG32(0x00007404); -> 0x00e00010	HDMI0_STATUS
RREG32(0x00000330); -> 0x00000000
RREG32(0x00000338); -> 0x00000000
RREG32(0x000060f8); -> 0x00000003
RREG32(0x000068a0); -> 0x039f0201
RREG32(0x000068a0); -> 0x02830264
RREG32(0x0000689c); -> 0x00020002
RREG32(0x00000330); -> 0x00000000
RREG32(0x00000338); -> 0x00000000
RREG32(0x000060f8); -> 0x00000003
RREG32(0x000068a0); -> 0x013a044f
RREG32(0x000068a0); -> 0x0220004b
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00000002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00050002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00000002
RREG32(0x0000689c); -> 0x00020009
RREG32(0x00007408); -> 0x10020011	HDMI0_AUDIO_PACKET_CONTROL
RREG32(0x000073d8); -> 0x00000001	R600_AUDIO_STATUS_BITS
RREG32(0x000073c0); -> 0x00000011	R600_AUDIO_RATE_BPS_CHANNEL
RREG32(0x00007400); -> 0x00000010	HDMI0_STATUS
WREG32(0x00007400, 0x00000110);		HDMI0_STATUS			|= 1 << 8
RREG32(0x00007414); -> 0x00000033	HDMI0_INFOFRAME_CONTROL0
WREG32(0x00007414, 0x00000033);		HDMI0_INFOFRAME_CONTROL0
RREG32(0x000074cc); -> 0x00000170	HDMI0_AUDIO_INFO0
WREG32(0x000074cc, 0x00000170);		HDMI0_AUDIO_INFO0
RREG32(0x000074cc); -> 0x00000170	HDMI0_AUDIO_INFO0
RREG32(0x000074d0); -> 0x00000000	HDMI0_AUDIO_INFO1
WREG32(0x000074cc, 0x00000170);		HDMI0_AUDIO_INFO0
RREG32(0x00007414); -> 0x00000033	HDMI0_INFOFRAME_CONTROL0
WREG32(0x00007414, 0x000000b3);		HDMI0_INFOFRAME_CONTROL0	|= HDMI0_AUDIO_INFO_UPDATE
RREG32(0x00007404); -> 0x00e00010	HDMI0_STATUS
RREG32(0x00000330); -> 0x00000000
RREG32(0x00000338); -> 0x00000000
RREG32(0x000060f8); -> 0x00000003
RREG32(0x000068a0); -> 0x04f501ef
RREG32(0x000068a0); -> 0x03270251
RREG32(0x0000689c); -> 0x00020002
RREG32(0x00000330); -> 0x00000000
RREG32(0x00000338); -> 0x00000000
RREG32(0x000060f8); -> 0x00000003
RREG32(0x000068a0); -> 0x02ab043c
RREG32(0x000068a0); -> 0x07000037
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00050002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x0002000d
RREG32(0x00007408); -> 0x10020011	HDMI0_AUDIO_PACKET_CONTROL
RREG32(0x000073d8); -> 0x00000001	R600_AUDIO_STATUS_BITS
RREG32(0x000073c0); -> 0x00000011	R600_AUDIO_RATE_BPS_CHANNEL
RREG32(0x00007400); -> 0x00000010	HDMI0_STATUS
WREG32(0x00007400, 0x00000110);		HDMI0_STATUS			|= 1 << 8
RREG32(0x00007414); -> 0x00000033	HDMI0_INFOFRAME_CONTROL0
WREG32(0x00007414, 0x00000033);		HDMI0_INFOFRAME_CONTROL0
RREG32(0x000074cc); -> 0x00000170	HDMI0_AUDIO_INFO0
WREG32(0x000074cc, 0x00000170);		HDMI0_AUDIO_INFO0
RREG32(0x000074cc); -> 0x00000170	HDMI0_AUDIO_INFO0
RREG32(0x000074d0); -> 0x00000000	HDMI0_AUDIO_INFO1
WREG32(0x000074cc, 0x00000170);		HDMI0_AUDIO_INFO0
RREG32(0x00007414); -> 0x00000033	HDMI0_INFOFRAME_CONTROL0
WREG32(0x00007414, 0x000000b3);		HDMI0_INFOFRAME_CONTROL0	|= HDMI0_AUDIO_INFO_UPDATE



sudo mplayer -ao alsa:device=hw=1.3 -ac hwac3 Broadway-5.1-48khz-448kbit.ac3

RREG32(0x00007404); -> 0x00e00010	HDMI0_STATUS
RREG32(0x00000330); -> 0x00000000
RREG32(0x00000338); -> 0x00000000
RREG32(0x000060f8); -> 0x00000003
RREG32(0x000068a0); -> 0x05dc01f2
RREG32(0x000068a0); -> 0x06ba0253
RREG32(0x0000689c); -> 0x00020002
RREG32(0x00000330); -> 0x00000000
RREG32(0x00000338); -> 0x00000000
RREG32(0x000060f8); -> 0x00000003
RREG32(0x000068a0); -> 0x03f4043a
RREG32(0x000068a0); -> 0x0803003a
RREG32(0x0000689c); -> 0x00010002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00010002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00010002
RREG32(0x0000689c); -> 0x00020009
RREG32(0x00007408); -> 0x10020011	HDMI0_AUDIO_PACKET_CONTROL
RREG32(0x000073d8); -> 0x00000001	R600_AUDIO_STATUS_BITS
RREG32(0x000073c0); -> 0x00000011	R600_AUDIO_RATE_BPS_CHANNEL
RREG32(0x00007400); -> 0x00000010	HDMI0_STATUS
WREG32(0x00007400, 0x00000110);		HDMI0_STATUS			|= 1 << 8
RREG32(0x00007414); -> 0x00000033	HDMI0_INFOFRAME_CONTROL0
WREG32(0x00007414, 0x00000033);		HDMI0_INFOFRAME_CONTROL0
RREG32(0x000074cc); -> 0x00000170	HDMI0_AUDIO_INFO0
WREG32(0x000074cc, 0x00000170);		HDMI0_AUDIO_INFO0
RREG32(0x000074cc); -> 0x00000170	HDMI0_AUDIO_INFO0
RREG32(0x000074d0); -> 0x00000000	HDMI0_AUDIO_INFO1
WREG32(0x000074cc, 0x00000170);		HDMI0_AUDIO_INFO0
RREG32(0x00007414); -> 0x00000033	HDMI0_INFOFRAME_CONTROL0
WREG32(0x00007414, 0x000000b3);		HDMI0_INFOFRAME_CONTROL0	|= HDMI0_AUDIO_INFO_UPDATE
RREG32(0x00007404); -> 0x00e00010	HDMI0_STATUS
RREG32(0x00000330); -> 0x00000000
RREG32(0x00000338); -> 0x00000000
RREG32(0x000060f8); -> 0x00000003
RREG32(0x000068a0); -> 0x048d01dc
RREG32(0x000068a0); -> 0x0229023d
RREG32(0x0000689c); -> 0x00020002
RREG32(0x00000330); -> 0x00000000
RREG32(0x00000338); -> 0x00000000
RREG32(0x000060f8); -> 0x00000003
RREG32(0x000068a0); -> 0x072c0423
RREG32(0x000068a0); -> 0x07150023
RREG32(0x0000689c); -> 0x00000002
RREG32(0x0000689c); -> 0x00010002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020008
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020011
RREG32(0x00007408); -> 0x10020011	HDMI0_AUDIO_PACKET_CONTROL
RREG32(0x000073d8); -> 0x00000001	R600_AUDIO_STATUS_BITS
RREG32(0x000073c0); -> 0x00000011	R600_AUDIO_RATE_BPS_CHANNEL
RREG32(0x00007400); -> 0x00000010	HDMI0_STATUS
WREG32(0x00007400, 0x00000110);		HDMI0_STATUS			|= 1 << 8
RREG32(0x00007414); -> 0x00000033	HDMI0_INFOFRAME_CONTROL0
WREG32(0x00007414, 0x00000033);		HDMI0_INFOFRAME_CONTROL0
RREG32(0x000074cc); -> 0x00000170	HDMI0_AUDIO_INFO0
WREG32(0x000074cc, 0x00000170);		HDMI0_AUDIO_INFO0
RREG32(0x000074cc); -> 0x00000170	HDMI0_AUDIO_INFO0
RREG32(0x000074d0); -> 0x00000000	HDMI0_AUDIO_INFO1
WREG32(0x000074cc, 0x00000170);		HDMI0_AUDIO_INFO0
RREG32(0x00007414); -> 0x00000033	HDMI0_INFOFRAME_CONTROL0
WREG32(0x00007414, 0x000000b3);		HDMI0_INFOFRAME_CONTROL0	|= HDMI0_AUDIO_INFO_UPDATE
RREG32(0x00007404); -> 0x00e00010	HDMI0_STATUS
RREG32(0x00000330); -> 0x00000000
RREG32(0x00000338); -> 0x00000000
RREG32(0x000060f8); -> 0x00000003
RREG32(0x000068a0); -> 0x03f501f2
RREG32(0x000068a0); -> 0x04cf0254
RREG32(0x0000689c); -> 0x00010002
RREG32(0x00000330); -> 0x00000000
RREG32(0x00000338); -> 0x00000000
RREG32(0x000060f8); -> 0x00000003
RREG32(0x000068a0); -> 0x0636043b
RREG32(0x000068a0); -> 0x001f0037
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00010002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00000002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020009
RREG32(0x00007408); -> 0x10020011	HDMI0_AUDIO_PACKET_CONTROL
RREG32(0x000073d8); -> 0x00000001	R600_AUDIO_STATUS_BITS
RREG32(0x000073c0); -> 0x00000011	R600_AUDIO_RATE_BPS_CHANNEL
RREG32(0x00007400); -> 0x00000010	HDMI0_STATUS
WREG32(0x00007400, 0x00000110);		HDMI0_STATUS			|= 1 << 8
RREG32(0x00007414); -> 0x00000033	HDMI0_INFOFRAME_CONTROL0
WREG32(0x00007414, 0x00000033);		HDMI0_INFOFRAME_CONTROL0
RREG32(0x000074cc); -> 0x00000170	HDMI0_AUDIO_INFO0
WREG32(0x000074cc, 0x00000170);		HDMI0_AUDIO_INFO0
RREG32(0x000074cc); -> 0x00000170	HDMI0_AUDIO_INFO0
RREG32(0x000074d0); -> 0x00000000	HDMI0_AUDIO_INFO1
WREG32(0x000074cc, 0x00000170);		HDMI0_AUDIO_INFO0
RREG32(0x00007414); -> 0x00000033	HDMI0_INFOFRAME_CONTROL0
WREG32(0x00007414, 0x000000b3);		HDMI0_INFOFRAME_CONTROL0	|= HDMI0_AUDIO_INFO_UPDATE



sudo mplayer -ao alsa:device=hw=1.3 -ac hwdts 06_NEW_JAZZ_SSQ3_ENERGY_DTS.wav

RREG32(0x00007404); -> 0x00e00000	HDMI0_STATUS
RREG32(0x00000330); -> 0x00000000
RREG32(0x00000338); -> 0x00000000
RREG32(0x000060f8); -> 0x00000003
RREG32(0x000068a0); -> 0x08750083
RREG32(0x000068a0); -> 0x04c900e6
RREG32(0x0000689c); -> 0x00020002
RREG32(0x00000330); -> 0x00000000
RREG32(0x00000338); -> 0x00000000
RREG32(0x000060f8); -> 0x00000003
RREG32(0x000068a0); -> 0x071302d2
RREG32(0x000068a0); -> 0x063e0334
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020008
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00010002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020000
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00010002
RREG32(0x0000689c); -> 0x0002000d
RREG32(0x00007408); -> 0x10020011	HDMI0_AUDIO_PACKET_CONTROL
RREG32(0x000073d8); -> 0x00000001	R600_AUDIO_STATUS_BITS
RREG32(0x000073c0); -> 0x00004011	R600_AUDIO_RATE_BPS_CHANNEL
RREG32(0x00007400); -> 0x00000010	HDMI0_STATUS
WREG32(0x00007400, 0x00000110);		HDMI0_STATUS			|= 1 << 8
RREG32(0x00007414); -> 0x00000033	HDMI0_INFOFRAME_CONTROL0
WREG32(0x00007414, 0x00000033);		HDMI0_INFOFRAME_CONTROL0
RREG32(0x000074cc); -> 0x00000170	HDMI0_AUDIO_INFO0
WREG32(0x000074cc, 0x00000170);		HDMI0_AUDIO_INFO0
RREG32(0x000074cc); -> 0x00000170	HDMI0_AUDIO_INFO0
RREG32(0x000074d0); -> 0x00000000	HDMI0_AUDIO_INFO1
WREG32(0x000074cc, 0x00000170);		HDMI0_AUDIO_INFO0
RREG32(0x00007414); -> 0x00000033	HDMI0_INFOFRAME_CONTROL0
WREG32(0x00007414, 0x000000b3);		HDMI0_INFOFRAME_CONTROL0	|= HDMI0_AUDIO_INFO_UPDATE
RREG32(0x00007404); -> 0x00e00010	HDMI0_STATUS
RREG32(0x00000330); -> 0x00000000
RREG32(0x00000338); -> 0x00000000
RREG32(0x000060f8); -> 0x00000003
RREG32(0x000068a0); -> 0x009f01ca
RREG32(0x000068a0); -> 0x0115022d
RREG32(0x0000689c); -> 0x00020002
RREG32(0x00000330); -> 0x00000000
RREG32(0x00000338); -> 0x00000000
RREG32(0x000060f8); -> 0x00000003
RREG32(0x000068a0); -> 0x00f50412
RREG32(0x000068a0); -> 0x07a10012
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00010002
RREG32(0x0000689c); -> 0x00020008
RREG32(0x0000689c); -> 0x00020000
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00050002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00010002
RREG32(0x0000689c); -> 0x00010002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020009
RREG32(0x00007408); -> 0x10020011	HDMI0_AUDIO_PACKET_CONTROL
RREG32(0x000073d8); -> 0x00000001	R600_AUDIO_STATUS_BITS
RREG32(0x000073c0); -> 0x00004011	R600_AUDIO_RATE_BPS_CHANNEL
RREG32(0x00007400); -> 0x00000010	HDMI0_STATUS
WREG32(0x00007400, 0x00000110);		HDMI0_STATUS			|= 1 << 8
RREG32(0x00007414); -> 0x00000033	HDMI0_INFOFRAME_CONTROL0
WREG32(0x00007414, 0x00000033);		HDMI0_INFOFRAME_CONTROL0
RREG32(0x000074cc); -> 0x00000170	HDMI0_AUDIO_INFO0
WREG32(0x000074cc, 0x00000170);		HDMI0_AUDIO_INFO0
RREG32(0x000074cc); -> 0x00000170	HDMI0_AUDIO_INFO0
RREG32(0x000074d0); -> 0x00000000	HDMI0_AUDIO_INFO1
WREG32(0x000074cc, 0x00000170);		HDMI0_AUDIO_INFO0
RREG32(0x00007414); -> 0x00000033	HDMI0_INFOFRAME_CONTROL0
WREG32(0x00007414, 0x000000b3);		HDMI0_INFOFRAME_CONTROL0	|= HDMI0_AUDIO_INFO_UPDATE
RREG32(0x00007404); -> 0x00e00010	HDMI0_STATUS
RREG32(0x00000330); -> 0x00000000
RREG32(0x00000338); -> 0x00000000
RREG32(0x000060f8); -> 0x00000003
RREG32(0x000068a0); -> 0x06d901e3
RREG32(0x000068a0); -> 0x01370244
RREG32(0x0000689c); -> 0x00020002
RREG32(0x00000330); -> 0x00000000
RREG32(0x00000338); -> 0x00000000
RREG32(0x000060f8); -> 0x00000003
RREG32(0x000068a0); -> 0x06d70428
RREG32(0x000068a0); -> 0x046b0027
RREG32(0x0000689c); -> 0x00050002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00000002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020008
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00010002
RREG32(0x0000689c); -> 0x00000002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020000
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00010002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00000002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020002
RREG32(0x0000689c); -> 0x00020009
RREG32(0x00007408); -> 0x10020011	HDMI0_AUDIO_PACKET_CONTROL
RREG32(0x000073d8); -> 0x00000001	R600_AUDIO_STATUS_BITS
RREG32(0x000073c0); -> 0x00004011	R600_AUDIO_RATE_BPS_CHANNEL
RREG32(0x00007400); -> 0x00000010	HDMI0_STATUS
WREG32(0x00007400, 0x00000110);		HDMI0_STATUS			|= 1 << 8
RREG32(0x00007414); -> 0x00000033	HDMI0_INFOFRAME_CONTROL0
WREG32(0x00007414, 0x00000033);		HDMI0_INFOFRAME_CONTROL0
RREG32(0x000074cc); -> 0x00000170	HDMI0_AUDIO_INFO0
WREG32(0x000074cc, 0x00000170);		HDMI0_AUDIO_INFO0
RREG32(0x000074cc); -> 0x00000170	HDMI0_AUDIO_INFO0
RREG32(0x000074d0); -> 0x00000000	HDMI0_AUDIO_INFO1
WREG32(0x000074cc, 0x00000170);		HDMI0_AUDIO_INFO0
RREG32(0x00007414); -> 0x00000033	HDMI0_INFOFRAME_CONTROL0
WREG32(0x00007414, 0x000000b3);		HDMI0_INFOFRAME_CONTROL0	|= HDMI0_AUDIO_INFO_UPDATE


More information about the dri-devel mailing list