From: "Christian König" <deathsimple@vodafone.de>
To: "\"Miłecki, Rafał\"" <zajec5@gmail.com>
Cc: Alex Deucher <alexander.deucher@amd.com>,
dri-devel@lists.freedesktop.org
Subject: Re: [PATCH] drm/radeon/kms: add register definitions for audio
Date: Thu, 29 Mar 2012 09:53:18 +0200 [thread overview]
Message-ID: <4F7414EE.4050004@vodafone.de> (raw)
In-Reply-To: <1332955146-17331-1-git-send-email-alexdeucher@gmail.com>
Oh YES! Finally!
Just as a side note before it went unnoticed: That is the official HDMI
register documentation from R6xx - NI hardware, not just something
reverse engineered! @Rafał and the rest of the community: We hoped that
you could stick with it and cleanup the current implementation with this
new informations.
Well, it's auto-generated, so you can't do much wrong, but anyway:
Reviewed by: Christian König <christian.koenig@amd.com>
On 28.03.2012 19:19, alexdeucher@gmail.com wrote:
> From: Alex Deucher<alexander.deucher@amd.com>
>
> This adds register definitions for HDMI/DP audio on
> DCE2/3/4/5 hardware.
>
> Signed-off-by: Alex Deucher<alexander.deucher@amd.com>
> ---
> drivers/gpu/drm/radeon/evergreend.h | 220 ++++++++++++++++++++++++++++++++
> drivers/gpu/drm/radeon/r600d.h | 236 +++++++++++++++++++++++++++++++++++
> drivers/gpu/drm/radeon/rs600d.h | 14 ++
> drivers/gpu/drm/radeon/rv770d.h | 191 ++++++++++++++++++++++++++++
> 4 files changed, 661 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/evergreend.h b/drivers/gpu/drm/radeon/evergreend.h
> index eb5708c..3955d98 100644
> --- a/drivers/gpu/drm/radeon/evergreend.h
> +++ b/drivers/gpu/drm/radeon/evergreend.h
> @@ -112,6 +112,226 @@
> #define CP_SEM_INCOMPLETE_TIMER_CNTL 0x85C8
> #define CP_DEBUG 0xC1FC
>
> +/* Audio clocks */
> +#define DCCG_AUDIO_DTO_SOURCE 0x05ac
> +# define DCCG_AUDIO_DTO0_SOURCE_SEL(x) ((x)<< 0) /* crtc0 - crtc5 */
> +# define DCCG_AUDIO_DTO_SEL (1<< 4) /* 0=dto0 1=dto1 */
> +
> +#define DCCG_AUDIO_DTO0_PHASE 0x05b0
> +#define DCCG_AUDIO_DTO0_MODULE 0x05b4
> +#define DCCG_AUDIO_DTO0_LOAD 0x05b8
> +#define DCCG_AUDIO_DTO0_CNTL 0x05bc
> +
> +#define DCCG_AUDIO_DTO1_PHASE 0x05c0
> +#define DCCG_AUDIO_DTO1_MODULE 0x05c4
> +#define DCCG_AUDIO_DTO1_LOAD 0x05c8
> +#define DCCG_AUDIO_DTO1_CNTL 0x05cc
> +
> +/* DCE 4.0 AFMT */
> +#define HDMI_CONTROL 0x7030
> +# define HDMI_KEEPOUT_MODE (1<< 0)
> +# define HDMI_PACKET_GEN_VERSION (1<< 4) /* 0 = r6xx compat */
> +# define HDMI_ERROR_ACK (1<< 8)
> +# define HDMI_ERROR_MASK (1<< 9)
> +# define HDMI_DEEP_COLOR_ENABLE (1<< 24)
> +# define HDMI_DEEP_COLOR_DEPTH (((x)& 3)<< 28)
> +# define HDMI_24BIT_DEEP_COLOR 0
> +# define HDMI_30BIT_DEEP_COLOR 1
> +# define HDMI_36BIT_DEEP_COLOR 2
> +#define HDMI_STATUS 0x7034
> +# define HDMI_ACTIVE_AVMUTE (1<< 0)
> +# define HDMI_AUDIO_PACKET_ERROR (1<< 16)
> +# define HDMI_VBI_PACKET_ERROR (1<< 20)
> +#define HDMI_AUDIO_PACKET_CONTROL 0x7038
> +# define HDMI_AUDIO_DELAY_EN(x) (((x)& 3)<< 4)
> +# define HDMI_AUDIO_PACKETS_PER_LINE(x) (((x)& 0x1f)<< 16)
> +#define HDMI_ACR_PACKET_CONTROL 0x703c
> +# define HDMI_ACR_SEND (1<< 0)
> +# define HDMI_ACR_CONT (1<< 1)
> +# define HDMI_ACR_SELECT(x) (((x)& 3)<< 4)
> +# define HDMI_ACR_HW 0
> +# define HDMI_ACR_32 1
> +# define HDMI_ACR_44 2
> +# define HDMI_ACR_48 3
> +# define HDMI_ACR_SOURCE (1<< 8) /* 0 - hw; 1 - cts value */
> +# define HDMI_ACR_AUTO_SEND (1<< 12)
> +# define HDMI_ACR_N_MULTIPLE(x) (((x)& 7)<< 16)
> +# define HDMI_ACR_X1 1
> +# define HDMI_ACR_X2 2
> +# define HDMI_ACR_X4 4
> +# define HDMI_ACR_AUDIO_PRIORITY (1<< 31)
> +#define HDMI_VBI_PACKET_CONTROL 0x7040
> +# define HDMI_NULL_SEND (1<< 0)
> +# define HDMI_GC_SEND (1<< 4)
> +# define HDMI_GC_CONT (1<< 5) /* 0 - once; 1 - every frame */
> +#define HDMI_INFOFRAME_CONTROL0 0x7044
> +# define HDMI_AVI_INFO_SEND (1<< 0)
> +# define HDMI_AVI_INFO_CONT (1<< 1)
> +# define HDMI_AUDIO_INFO_SEND (1<< 4)
> +# define HDMI_AUDIO_INFO_CONT (1<< 5)
> +# define HDMI_MPEG_INFO_SEND (1<< 8)
> +# define HDMI_MPEG_INFO_CONT (1<< 9)
> +#define HDMI_INFOFRAME_CONTROL1 0x7048
> +# define HDMI_AVI_INFO_LINE(x) (((x)& 0x3f)<< 0)
> +# define HDMI_AUDIO_INFO_LINE(x) (((x)& 0x3f)<< 8)
> +# define HDMI_MPEG_INFO_LINE(x) (((x)& 0x3f)<< 16)
> +#define HDMI_GENERIC_PACKET_CONTROL 0x704c
> +# define HDMI_GENERIC0_SEND (1<< 0)
> +# define HDMI_GENERIC0_CONT (1<< 1)
> +# define HDMI_GENERIC1_SEND (1<< 4)
> +# define HDMI_GENERIC1_CONT (1<< 5)
> +# define HDMI_GENERIC0_LINE(x) (((x)& 0x3f)<< 16)
> +# define HDMI_GENERIC1_LINE(x) (((x)& 0x3f)<< 24)
> +#define HDMI_GC 0x7058
> +# define HDMI_GC_AVMUTE (1<< 0)
> +# define HDMI_GC_AVMUTE_CONT (1<< 2)
> +#define AFMT_AUDIO_PACKET_CONTROL2 0x705c
> +# define AFMT_AUDIO_LAYOUT_OVRD (1<< 0)
> +# define AFMT_AUDIO_LAYOUT_SELECT (1<< 1)
> +# define AFMT_60958_CS_SOURCE (1<< 4)
> +# define AFMT_AUDIO_CHANNEL_ENABLE(x) (((x)& 0xff)<< 8)
> +# define AFMT_DP_AUDIO_STREAM_ID(x) (((x)& 0xff)<< 16)
> +#define AFMT_AVI_INFO0 0x7084
> +# define AFMT_AVI_INFO_CHECKSUM(x) (((x)& 0xff)<< 0)
> +# define AFMT_AVI_INFO_S(x) (((x)& 3)<< 8)
> +# define AFMT_AVI_INFO_B(x) (((x)& 3)<< 10)
> +# define AFMT_AVI_INFO_A(x) (((x)& 1)<< 12)
> +# define AFMT_AVI_INFO_Y(x) (((x)& 3)<< 13)
> +# define AFMT_AVI_INFO_Y_RGB 0
> +# define AFMT_AVI_INFO_Y_YCBCR422 1
> +# define AFMT_AVI_INFO_Y_YCBCR444 2
> +# define AFMT_AVI_INFO_Y_A_B_S(x) (((x)& 0xff)<< 8)
> +# define AFMT_AVI_INFO_R(x) (((x)& 0xf)<< 16)
> +# define AFMT_AVI_INFO_M(x) (((x)& 0x3)<< 20)
> +# define AFMT_AVI_INFO_C(x) (((x)& 0x3)<< 22)
> +# define AFMT_AVI_INFO_C_M_R(x) (((x)& 0xff)<< 16)
> +# define AFMT_AVI_INFO_SC(x) (((x)& 0x3)<< 24)
> +# define AFMT_AVI_INFO_Q(x) (((x)& 0x3)<< 26)
> +# define AFMT_AVI_INFO_EC(x) (((x)& 0x3)<< 28)
> +# define AFMT_AVI_INFO_ITC(x) (((x)& 0x1)<< 31)
> +# define AFMT_AVI_INFO_ITC_EC_Q_SC(x) (((x)& 0xff)<< 24)
> +#define AFMT_AVI_INFO1 0x7088
> +# define AFMT_AVI_INFO_VIC(x) (((x)& 0x7f)<< 0) /* don't use avi infoframe v1 */
> +# define AFMT_AVI_INFO_PR(x) (((x)& 0xf)<< 8) /* don't use avi infoframe v1 */
> +# define AFMT_AVI_INFO_CN(x) (((x)& 0x3)<< 12)
> +# define AFMT_AVI_INFO_YQ(x) (((x)& 0x3)<< 14)
> +# define AFMT_AVI_INFO_TOP(x) (((x)& 0xffff)<< 16)
> +#define AFMT_AVI_INFO2 0x708c
> +# define AFMT_AVI_INFO_BOTTOM(x) (((x)& 0xffff)<< 0)
> +# define AFMT_AVI_INFO_LEFT(x) (((x)& 0xffff)<< 16)
> +#define AFMT_AVI_INFO3 0x7090
> +# define AFMT_AVI_INFO_RIGHT(x) (((x)& 0xffff)<< 0)
> +# define AFMT_AVI_INFO_VERSION(x) (((x)& 3)<< 24)
> +#define AFMT_MPEG_INFO0 0x7094
> +# define AFMT_MPEG_INFO_CHECKSUM(x) (((x)& 0xff)<< 0)
> +# define AFMT_MPEG_INFO_MB0(x) (((x)& 0xff)<< 8)
> +# define AFMT_MPEG_INFO_MB1(x) (((x)& 0xff)<< 16)
> +# define AFMT_MPEG_INFO_MB2(x) (((x)& 0xff)<< 24)
> +#define AFMT_MPEG_INFO1 0x7098
> +# define AFMT_MPEG_INFO_MB3(x) (((x)& 0xff)<< 0)
> +# define AFMT_MPEG_INFO_MF(x) (((x)& 3)<< 8)
> +# define AFMT_MPEG_INFO_FR(x) (((x)& 1)<< 12)
> +#define AFMT_GENERIC0_HDR 0x709c
> +#define AFMT_GENERIC0_0 0x70a0
> +#define AFMT_GENERIC0_1 0x70a4
> +#define AFMT_GENERIC0_2 0x70a8
> +#define AFMT_GENERIC0_3 0x70ac
> +#define AFMT_GENERIC0_4 0x70b0
> +#define AFMT_GENERIC0_5 0x70b4
> +#define AFMT_GENERIC0_6 0x70b8
> +#define AFMT_GENERIC1_HDR 0x70bc
> +#define AFMT_GENERIC1_0 0x70c0
> +#define AFMT_GENERIC1_1 0x70c4
> +#define AFMT_GENERIC1_2 0x70c8
> +#define AFMT_GENERIC1_3 0x70cc
> +#define AFMT_GENERIC1_4 0x70d0
> +#define AFMT_GENERIC1_5 0x70d4
> +#define AFMT_GENERIC1_6 0x70d8
> +#define HDMI_ACR_32_0 0x70dc
> +# define HDMI_ACR_CTS_32(x) (((x)& 0xfffff)<< 12)
> +#define HDMI_ACR_32_1 0x70e0
> +# define HDMI_ACR_N_32(x) (((x)& 0xfffff)<< 0)
> +#define HDMI_ACR_44_0 0x70e4
> +# define HDMI_ACR_CTS_44(x) (((x)& 0xfffff)<< 12)
> +#define HDMI_ACR_44_1 0x70e8
> +# define HDMI_ACR_N_44(x) (((x)& 0xfffff)<< 0)
> +#define HDMI_ACR_48_0 0x70ec
> +# define HDMI_ACR_CTS_48(x) (((x)& 0xfffff)<< 12)
> +#define HDMI_ACR_48_1 0x70f0
> +# define HDMI_ACR_N_48(x) (((x)& 0xfffff)<< 0)
> +#define HDMI_ACR_STATUS_0 0x70f4
> +#define HDMI_ACR_STATUS_1 0x70f8
> +#define AFMT_AUDIO_INFO0 0x70fc
> +# define AFMT_AUDIO_INFO_CHECKSUM(x) (((x)& 0xff)<< 0)
> +# define AFMT_AUDIO_INFO_CC(x) (((x)& 7)<< 8)
> +# define AFMT_AUDIO_INFO_CT(x) (((x)& 0xf)<< 11)
> +# define AFMT_AUDIO_INFO_CHECKSUM_OFFSET(x) (((x)& 0xff)<< 16)
> +# define AFMT_AUDIO_INFO_CXT(x) (((x)& 0x1f)<< 24)
> +#define AFMT_AUDIO_INFO1 0x7100
> +# define AFMT_AUDIO_INFO_CA(x) (((x)& 0xff)<< 0)
> +# define AFMT_AUDIO_INFO_LSV(x) (((x)& 0xf)<< 11)
> +# define AFMT_AUDIO_INFO_DM_INH(x) (((x)& 1)<< 15)
> +# define AFMT_AUDIO_INFO_DM_INH_LSV(x) (((x)& 0xff)<< 8)
> +# define AFMT_AUDIO_INFO_LFEBPL(x) (((x)& 3)<< 16)
> +#define AFMT_60958_0 0x7104
> +# define AFMT_60958_CS_A(x) (((x)& 1)<< 0)
> +# define AFMT_60958_CS_B(x) (((x)& 1)<< 1)
> +# define AFMT_60958_CS_C(x) (((x)& 1)<< 2)
> +# define AFMT_60958_CS_D(x) (((x)& 3)<< 3)
> +# define AFMT_60958_CS_MODE(x) (((x)& 3)<< 6)
> +# define AFMT_60958_CS_CATEGORY_CODE(x) (((x)& 0xff)<< 8)
> +# define AFMT_60958_CS_SOURCE_NUMBER(x) (((x)& 0xf)<< 16)
> +# define AFMT_60958_CS_CHANNEL_NUMBER_L(x) (((x)& 0xf)<< 20)
> +# define AFMT_60958_CS_SAMPLING_FREQUENCY(x) (((x)& 0xf)<< 24)
> +# define AFMT_60958_CS_CLOCK_ACCURACY(x) (((x)& 3)<< 28)
> +#define AFMT_60958_1 0x7108
> +# define AFMT_60958_CS_WORD_LENGTH(x) (((x)& 0xf)<< 0)
> +# define AFMT_60958_CS_ORIGINAL_SAMPLING_FREQUENCY(x) (((x)& 0xf)<< 4)
> +# define AFMT_60958_CS_VALID_L(x) (((x)& 1)<< 16)
> +# define AFMT_60958_CS_VALID_R(x) (((x)& 1)<< 18)
> +# define AFMT_60958_CS_CHANNEL_NUMBER_R(x) (((x)& 0xf)<< 20)
> +#define AFMT_AUDIO_CRC_CONTROL 0x710c
> +# define AFMT_AUDIO_CRC_EN (1<< 0)
> +#define AFMT_RAMP_CONTROL0 0x7110
> +# define AFMT_RAMP_MAX_COUNT(x) (((x)& 0xffffff)<< 0)
> +# define AFMT_RAMP_DATA_SIGN (1<< 31)
> +#define AFMT_RAMP_CONTROL1 0x7114
> +# define AFMT_RAMP_MIN_COUNT(x) (((x)& 0xffffff)<< 0)
> +# define AFMT_AUDIO_TEST_CH_DISABLE(x) (((x)& 0xff)<< 24)
> +#define AFMT_RAMP_CONTROL2 0x7118
> +# define AFMT_RAMP_INC_COUNT(x) (((x)& 0xffffff)<< 0)
> +#define AFMT_RAMP_CONTROL3 0x711c
> +# define AFMT_RAMP_DEC_COUNT(x) (((x)& 0xffffff)<< 0)
> +#define AFMT_60958_2 0x7120
> +# define AFMT_60958_CS_CHANNEL_NUMBER_2(x) (((x)& 0xf)<< 0)
> +# define AFMT_60958_CS_CHANNEL_NUMBER_3(x) (((x)& 0xf)<< 4)
> +# define AFMT_60958_CS_CHANNEL_NUMBER_4(x) (((x)& 0xf)<< 8)
> +# define AFMT_60958_CS_CHANNEL_NUMBER_5(x) (((x)& 0xf)<< 12)
> +# define AFMT_60958_CS_CHANNEL_NUMBER_6(x) (((x)& 0xf)<< 16)
> +# define AFMT_60958_CS_CHANNEL_NUMBER_7(x) (((x)& 0xf)<< 20)
> +#define AFMT_STATUS 0x7128
> +# define AFMT_AUDIO_ENABLE (1<< 4)
> +# define AFMT_AUDIO_HBR_ENABLE (1<< 8)
> +# define AFMT_AZ_FORMAT_WTRIG (1<< 28)
> +# define AFMT_AZ_FORMAT_WTRIG_INT (1<< 29)
> +# define AFMT_AZ_AUDIO_ENABLE_CHG (1<< 30)
> +#define AFMT_AUDIO_PACKET_CONTROL 0x712c
> +# define AFMT_AUDIO_SAMPLE_SEND (1<< 0)
> +# define AFMT_RESET_FIFO_WHEN_AUDIO_DIS (1<< 11) /* set to 1 */
> +# define AFMT_AUDIO_TEST_EN (1<< 12)
> +# define AFMT_AUDIO_CHANNEL_SWAP (1<< 24)
> +# define AFMT_60958_CS_UPDATE (1<< 26)
> +# define AFMT_AZ_AUDIO_ENABLE_CHG_MASK (1<< 27)
> +# define AFMT_AZ_FORMAT_WTRIG_MASK (1<< 28)
> +# define AFMT_AZ_FORMAT_WTRIG_ACK (1<< 29)
> +# define AFMT_AZ_AUDIO_ENABLE_CHG_ACK (1<< 30)
> +#define AFMT_VBI_PACKET_CONTROL 0x7130
> +# define AFMT_GENERIC0_UPDATE (1<< 2)
> +#define AFMT_INFOFRAME_CONTROL0 0x7134
> +# define AFMT_AUDIO_INFO_SOURCE (1<< 6) /* 0 - sound block; 1 - afmt regs */
> +# define AFMT_AUDIO_INFO_UPDATE (1<< 7)
> +# define AFMT_MPEG_INFO_UPDATE (1<< 10)
> +#define AFMT_GENERIC0_7 0x7138
>
> #define GC_USER_SHADER_PIPE_CONFIG 0x8954
> #define INACTIVE_QD_PIPES(x) ((x)<< 8)
> diff --git a/drivers/gpu/drm/radeon/r600d.h b/drivers/gpu/drm/radeon/r600d.h
> index 3568a2e..7f0c223 100644
> --- a/drivers/gpu/drm/radeon/r600d.h
> +++ b/drivers/gpu/drm/radeon/r600d.h
> @@ -816,6 +816,242 @@
> # define TARGET_LINK_SPEED_MASK (0xf<< 0)
> # define SELECTABLE_DEEMPHASIS (1<< 6)
>
> +/* Audio clocks */
> +#define DCCG_AUDIO_DTO0_PHASE 0x0514
> +#define DCCG_AUDIO_DTO0_MODULE 0x0518
> +#define DCCG_AUDIO_DTO0_LOAD 0x051c
> +# define DTO_LOAD (1<< 31)
> +#define DCCG_AUDIO_DTO0_CNTL 0x0520
> +
> +#define DCCG_AUDIO_DTO1_PHASE 0x0524
> +#define DCCG_AUDIO_DTO1_MODULE 0x0528
> +#define DCCG_AUDIO_DTO1_LOAD 0x052c
> +#define DCCG_AUDIO_DTO1_CNTL 0x0530
> +
> +#define DCCG_AUDIO_DTO_SELECT 0x0534
> +
> +/* digital blocks */
> +#define TMDSA_CNTL 0x7880
> +# define TMDSA_HDMI_EN (1<< 2)
> +#define LVTMA_CNTL 0x7a80
> +# define LVTMA_HDMI_EN (1<< 2)
> +#define DDIA_CNTL 0x7200
> +# define DDIA_HDMI_EN (1<< 2)
> +#define DIG0_CNTL 0x75a0
> +# define DIG_MODE(x) (((x)& 7)<< 8)
> +# define DIG_MODE_DP 0
> +# define DIG_MODE_LVDS 1
> +# define DIG_MODE_TMDS_DVI 2
> +# define DIG_MODE_TMDS_HDMI 3
> +# define DIG_MODE_SDVO 4
> +#define DIG1_CNTL 0x79a0
> +
> +/* rs6xx/rs740 and r6xx share the same HDMI blocks, however, rs6xx has only one
> + * instance of the blocks while r6xx has 2. DCE 3.0 cards are slightly
> + * different due to the new DIG blocks, but also have 2 instances.
> + * DCE 3.0 HDMI blocks are part of each DIG encoder.
> + */
> +
> +/* rs6xx/rs740/r6xx/dce3 */
> +#define HDMI0_CONTROL 0x7400
> +/* rs6xx/rs740/r6xx */
> +# define HDMI0_ENABLE (1<< 0)
> +# define HDMI0_STREAM(x) (((x)& 3)<< 2)
> +# define HDMI0_STREAM_TMDSA 0
> +# define HDMI0_STREAM_LVTMA 1
> +# define HDMI0_STREAM_DVOA 2
> +# define HDMI0_STREAM_DDIA 3
> +/* rs6xx/r6xx/dce3 */
> +# define HDMI0_ERROR_ACK (1<< 8)
> +# define HDMI0_ERROR_MASK (1<< 9)
> +#define HDMI0_STATUS 0x7404
> +# define HDMI0_ACTIVE_AVMUTE (1<< 0)
> +# define HDMI0_AUDIO_ENABLE (1<< 4)
> +# define HDMI0_AZ_FORMAT_WTRIG (1<< 28)
> +# define HDMI0_AZ_FORMAT_WTRIG_INT (1<< 29)
> +#define HDMI0_AUDIO_PACKET_CONTROL 0x7408
> +# define HDMI0_AUDIO_SAMPLE_SEND (1<< 0)
> +# define HDMI0_AUDIO_DELAY_EN(x) (((x)& 3)<< 4)
> +# define HDMI0_AUDIO_SEND_MAX_PACKETS (1<< 8)
> +# define HDMI0_AUDIO_TEST_EN (1<< 12)
> +# define HDMI0_AUDIO_PACKETS_PER_LINE(x) (((x)& 0x1f)<< 16)
> +# define HDMI0_AUDIO_CHANNEL_SWAP (1<< 24)
> +# define HDMI0_60958_CS_UPDATE (1<< 26)
> +# define HDMI0_AZ_FORMAT_WTRIG_MASK (1<< 28)
> +# define HDMI0_AZ_FORMAT_WTRIG_ACK (1<< 29)
> +#define HDMI0_AUDIO_CRC_CONTROL 0x740c
> +# define HDMI0_AUDIO_CRC_EN (1<< 0)
> +#define HDMI0_VBI_PACKET_CONTROL 0x7410
> +# define HDMI0_NULL_SEND (1<< 0)
> +# define HDMI0_GC_SEND (1<< 4)
> +# define HDMI0_GC_CONT (1<< 5) /* 0 - once; 1 - every frame */
> +#define HDMI0_INFOFRAME_CONTROL0 0x7414
> +# define HDMI0_AVI_INFO_SEND (1<< 0)
> +# define HDMI0_AVI_INFO_CONT (1<< 1)
> +# define HDMI0_AUDIO_INFO_SEND (1<< 4)
> +# define HDMI0_AUDIO_INFO_CONT (1<< 5)
> +# define HDMI0_AUDIO_INFO_SOURCE (1<< 6) /* 0 - sound block; 1 - hmdi regs */
> +# define HDMI0_AUDIO_INFO_UPDATE (1<< 7)
> +# define HDMI0_MPEG_INFO_SEND (1<< 8)
> +# define HDMI0_MPEG_INFO_CONT (1<< 9)
> +# define HDMI0_MPEG_INFO_UPDATE (1<< 10)
> +#define HDMI0_INFOFRAME_CONTROL1 0x7418
> +# define HDMI0_AVI_INFO_LINE(x) (((x)& 0x3f)<< 0)
> +# define HDMI0_AUDIO_INFO_LINE(x) (((x)& 0x3f)<< 8)
> +# define HDMI0_MPEG_INFO_LINE(x) (((x)& 0x3f)<< 16)
> +#define HDMI0_GENERIC_PACKET_CONTROL 0x741c
> +# define HDMI0_GENERIC0_SEND (1<< 0)
> +# define HDMI0_GENERIC0_CONT (1<< 1)
> +# define HDMI0_GENERIC0_UPDATE (1<< 2)
> +# define HDMI0_GENERIC1_SEND (1<< 4)
> +# define HDMI0_GENERIC1_CONT (1<< 5)
> +# define HDMI0_GENERIC0_LINE(x) (((x)& 0x3f)<< 16)
> +# define HDMI0_GENERIC1_LINE(x) (((x)& 0x3f)<< 24)
> +#define HDMI0_GC 0x7428
> +# define HDMI0_GC_AVMUTE (1<< 0)
> +#define HDMI0_AVI_INFO0 0x7454
> +# define HDMI0_AVI_INFO_CHECKSUM(x) (((x)& 0xff)<< 0)
> +# define HDMI0_AVI_INFO_S(x) (((x)& 3)<< 8)
> +# define HDMI0_AVI_INFO_B(x) (((x)& 3)<< 10)
> +# define HDMI0_AVI_INFO_A(x) (((x)& 1)<< 12)
> +# define HDMI0_AVI_INFO_Y(x) (((x)& 3)<< 13)
> +# define HDMI0_AVI_INFO_Y_RGB 0
> +# define HDMI0_AVI_INFO_Y_YCBCR422 1
> +# define HDMI0_AVI_INFO_Y_YCBCR444 2
> +# define HDMI0_AVI_INFO_Y_A_B_S(x) (((x)& 0xff)<< 8)
> +# define HDMI0_AVI_INFO_R(x) (((x)& 0xf)<< 16)
> +# define HDMI0_AVI_INFO_M(x) (((x)& 0x3)<< 20)
> +# define HDMI0_AVI_INFO_C(x) (((x)& 0x3)<< 22)
> +# define HDMI0_AVI_INFO_C_M_R(x) (((x)& 0xff)<< 16)
> +# define HDMI0_AVI_INFO_SC(x) (((x)& 0x3)<< 24)
> +# define HDMI0_AVI_INFO_ITC_EC_Q_SC(x) (((x)& 0xff)<< 24)
> +#define HDMI0_AVI_INFO1 0x7458
> +# define HDMI0_AVI_INFO_VIC(x) (((x)& 0x7f)<< 0) /* don't use avi infoframe v1 */
> +# define HDMI0_AVI_INFO_PR(x) (((x)& 0xf)<< 8) /* don't use avi infoframe v1 */
> +# define HDMI0_AVI_INFO_TOP(x) (((x)& 0xffff)<< 16)
> +#define HDMI0_AVI_INFO2 0x745c
> +# define HDMI0_AVI_INFO_BOTTOM(x) (((x)& 0xffff)<< 0)
> +# define HDMI0_AVI_INFO_LEFT(x) (((x)& 0xffff)<< 16)
> +#define HDMI0_AVI_INFO3 0x7460
> +# define HDMI0_AVI_INFO_RIGHT(x) (((x)& 0xffff)<< 0)
> +# define HDMI0_AVI_INFO_VERSION(x) (((x)& 3)<< 24)
> +#define HDMI0_MPEG_INFO0 0x7464
> +# define HDMI0_MPEG_INFO_CHECKSUM(x) (((x)& 0xff)<< 0)
> +# define HDMI0_MPEG_INFO_MB0(x) (((x)& 0xff)<< 8)
> +# define HDMI0_MPEG_INFO_MB1(x) (((x)& 0xff)<< 16)
> +# define HDMI0_MPEG_INFO_MB2(x) (((x)& 0xff)<< 24)
> +#define HDMI0_MPEG_INFO1 0x7468
> +# define HDMI0_MPEG_INFO_MB3(x) (((x)& 0xff)<< 0)
> +# define HDMI0_MPEG_INFO_MF(x) (((x)& 3)<< 8)
> +# define HDMI0_MPEG_INFO_FR(x) (((x)& 1)<< 12)
> +#define HDMI0_GENERIC0_HDR 0x746c
> +#define HDMI0_GENERIC0_0 0x7470
> +#define HDMI0_GENERIC0_1 0x7474
> +#define HDMI0_GENERIC0_2 0x7478
> +#define HDMI0_GENERIC0_3 0x747c
> +#define HDMI0_GENERIC0_4 0x7480
> +#define HDMI0_GENERIC0_5 0x7484
> +#define HDMI0_GENERIC0_6 0x7488
> +#define HDMI0_GENERIC1_HDR 0x748c
> +#define HDMI0_GENERIC1_0 0x7490
> +#define HDMI0_GENERIC1_1 0x7494
> +#define HDMI0_GENERIC1_2 0x7498
> +#define HDMI0_GENERIC1_3 0x749c
> +#define HDMI0_GENERIC1_4 0x74a0
> +#define HDMI0_GENERIC1_5 0x74a4
> +#define HDMI0_GENERIC1_6 0x74a8
> +#define HDMI0_ACR_32_0 0x74ac
> +# define HDMI0_ACR_CTS_32(x) (((x)& 0xfffff)<< 12)
> +#define HDMI0_ACR_32_1 0x74b0
> +# define HDMI0_ACR_N_32(x) (((x)& 0xfffff)<< 0)
> +#define HDMI0_ACR_44_0 0x74b4
> +# define HDMI0_ACR_CTS_44(x) (((x)& 0xfffff)<< 12)
> +#define HDMI0_ACR_44_1 0x74b8
> +# define HDMI0_ACR_N_44(x) (((x)& 0xfffff)<< 0)
> +#define HDMI0_ACR_48_0 0x74bc
> +# define HDMI0_ACR_CTS_48(x) (((x)& 0xfffff)<< 12)
> +#define HDMI0_ACR_48_1 0x74c0
> +# define HDMI0_ACR_N_48(x) (((x)& 0xfffff)<< 0)
> +#define HDMI0_ACR_STATUS_0 0x74c4
> +#define HDMI0_ACR_STATUS_1 0x74c8
> +#define HDMI0_AUDIO_INFO0 0x74cc
> +# define HDMI0_AUDIO_INFO_CHECKSUM(x) (((x)& 0xff)<< 0)
> +# define HDMI0_AUDIO_INFO_CC(x) (((x)& 7)<< 8)
> +#define HDMI0_AUDIO_INFO1 0x74d0
> +# define HDMI0_AUDIO_INFO_CA(x) (((x)& 0xff)<< 0)
> +# define HDMI0_AUDIO_INFO_LSV(x) (((x)& 0xf)<< 11)
> +# define HDMI0_AUDIO_INFO_DM_INH(x) (((x)& 1)<< 15)
> +# define HDMI0_AUDIO_INFO_DM_INH_LSV(x) (((x)& 0xff)<< 8)
> +#define HDMI0_60958_0 0x74d4
> +# define HDMI0_60958_CS_A(x) (((x)& 1)<< 0)
> +# define HDMI0_60958_CS_B(x) (((x)& 1)<< 1)
> +# define HDMI0_60958_CS_C(x) (((x)& 1)<< 2)
> +# define HDMI0_60958_CS_D(x) (((x)& 3)<< 3)
> +# define HDMI0_60958_CS_MODE(x) (((x)& 3)<< 6)
> +# define HDMI0_60958_CS_CATEGORY_CODE(x) (((x)& 0xff)<< 8)
> +# define HDMI0_60958_CS_SOURCE_NUMBER(x) (((x)& 0xf)<< 16)
> +# define HDMI0_60958_CS_CHANNEL_NUMBER_L(x) (((x)& 0xf)<< 20)
> +# define HDMI0_60958_CS_SAMPLING_FREQUENCY(x) (((x)& 0xf)<< 24)
> +# define HDMI0_60958_CS_CLOCK_ACCURACY(x) (((x)& 3)<< 28)
> +#define HDMI0_60958_1 0x74d8
> +# define HDMI0_60958_CS_WORD_LENGTH(x) (((x)& 0xf)<< 0)
> +# define HDMI0_60958_CS_ORIGINAL_SAMPLING_FREQUENCY(x) (((x)& 0xf)<< 4)
> +# define HDMI0_60958_CS_VALID_L(x) (((x)& 1)<< 16)
> +# define HDMI0_60958_CS_VALID_R(x) (((x)& 1)<< 18)
> +# define HDMI0_60958_CS_CHANNEL_NUMBER_R(x) (((x)& 0xf)<< 20)
> +#define HDMI0_ACR_PACKET_CONTROL 0x74dc
> +# define HDMI0_ACR_SEND (1<< 0)
> +# define HDMI0_ACR_CONT (1<< 1)
> +# define HDMI0_ACR_SELECT(x) (((x)& 3)<< 4)
> +# define HDMI0_ACR_HW 0
> +# define HDMI0_ACR_32 1
> +# define HDMI0_ACR_44 2
> +# define HDMI0_ACR_48 3
> +# define HDMI0_ACR_SOURCE (1<< 8) /* 0 - hw; 1 - cts value */
> +# define HDMI0_ACR_AUTO_SEND (1<< 12)
> +#define HDMI0_RAMP_CONTROL0 0x74e0
> +# define HDMI0_RAMP_MAX_COUNT(x) (((x)& 0xffffff)<< 0)
> +#define HDMI0_RAMP_CONTROL1 0x74e4
> +# define HDMI0_RAMP_MIN_COUNT(x) (((x)& 0xffffff)<< 0)
> +#define HDMI0_RAMP_CONTROL2 0x74e8
> +# define HDMI0_RAMP_INC_COUNT(x) (((x)& 0xffffff)<< 0)
> +#define HDMI0_RAMP_CONTROL3 0x74ec
> +# define HDMI0_RAMP_DEC_COUNT(x) (((x)& 0xffffff)<< 0)
> +/* HDMI0_60958_2 is r7xx only */
> +#define HDMI0_60958_2 0x74f0
> +# define HDMI0_60958_CS_CHANNEL_NUMBER_2(x) (((x)& 0xf)<< 0)
> +# define HDMI0_60958_CS_CHANNEL_NUMBER_3(x) (((x)& 0xf)<< 4)
> +# define HDMI0_60958_CS_CHANNEL_NUMBER_4(x) (((x)& 0xf)<< 8)
> +# define HDMI0_60958_CS_CHANNEL_NUMBER_5(x) (((x)& 0xf)<< 12)
> +# define HDMI0_60958_CS_CHANNEL_NUMBER_6(x) (((x)& 0xf)<< 16)
> +# define HDMI0_60958_CS_CHANNEL_NUMBER_7(x) (((x)& 0xf)<< 20)
> +/* r6xx only; second instance starts at 0x7700 */
> +#define HDMI1_CONTROL 0x7700
> +#define HDMI1_STATUS 0x7704
> +#define HDMI1_AUDIO_PACKET_CONTROL 0x7708
> +/* DCE3; second instance starts at 0x7800 NOT 0x7700 */
> +#define DCE3_HDMI1_CONTROL 0x7800
> +#define DCE3_HDMI1_STATUS 0x7804
> +#define DCE3_HDMI1_AUDIO_PACKET_CONTROL 0x7808
> +/* DCE3.2 (for interrupts) */
> +#define AFMT_STATUS 0x7600
> +# define AFMT_AUDIO_ENABLE (1<< 4)
> +# define AFMT_AZ_FORMAT_WTRIG (1<< 28)
> +# define AFMT_AZ_FORMAT_WTRIG_INT (1<< 29)
> +# define AFMT_AZ_AUDIO_ENABLE_CHG (1<< 30)
> +#define AFMT_AUDIO_PACKET_CONTROL 0x7604
> +# define AFMT_AUDIO_SAMPLE_SEND (1<< 0)
> +# define AFMT_AUDIO_TEST_EN (1<< 12)
> +# define AFMT_AUDIO_CHANNEL_SWAP (1<< 24)
> +# define AFMT_60958_CS_UPDATE (1<< 26)
> +# define AFMT_AZ_AUDIO_ENABLE_CHG_MASK (1<< 27)
> +# define AFMT_AZ_FORMAT_WTRIG_MASK (1<< 28)
> +# define AFMT_AZ_FORMAT_WTRIG_ACK (1<< 29)
> +# define AFMT_AZ_AUDIO_ENABLE_CHG_ACK (1<< 30)
> +/* DCE3.2 second instance starts at 0x7800 */
> +#define HDMI_OFFSET0 (0x7400 - 0x7400)
> +#define HDMI_OFFSET1 (0x7800 - 0x7400)
> +
> /*
> * PM4
> */
> diff --git a/drivers/gpu/drm/radeon/rs600d.h b/drivers/gpu/drm/radeon/rs600d.h
> index a27c13a..f1f8941 100644
> --- a/drivers/gpu/drm/radeon/rs600d.h
> +++ b/drivers/gpu/drm/radeon/rs600d.h
> @@ -485,6 +485,20 @@
> #define S_007D18_DC_HOT_PLUG_DETECT2_INT_EN(x) (((x)& 0x1)<< 16)
> #define G_007D18_DC_HOT_PLUG_DETECT2_INT_EN(x) (((x)>> 16)& 0x1)
> #define C_007D18_DC_HOT_PLUG_DETECT2_INT_EN 0xFFFEFFFF
> +#define R_007404_HDMI0_STATUS 0x007404
> +#define S_007404_HDMI0_AZ_FORMAT_WTRIG(x) (((x)& 0x1)<< 28)
> +#define G_007404_HDMI0_AZ_FORMAT_WTRIG(x) (((x)>> 28)& 0x1)
> +#define C_007404_HDMI0_AZ_FORMAT_WTRIG 0xEFFFFFFF
> +#define S_007404_HDMI0_AZ_FORMAT_WTRIG_INT(x) (((x)& 0x1)<< 29)
> +#define G_007404_HDMI0_AZ_FORMAT_WTRIG_INT(x) (((x)>> 29)& 0x1)
> +#define C_007404_HDMI0_AZ_FORMAT_WTRIG_INT 0xDFFFFFFF
> +#define R_007408_HDMI0_AUDIO_PACKET_CONTROL 0x007408
> +#define S_007408_HDMI0_AZ_FORMAT_WTRIG_MASK(x) (((x)& 0x1)<< 28)
> +#define G_007408_HDMI0_AZ_FORMAT_WTRIG_MASK(x) (((x)>> 28)& 0x1)
> +#define C_007408_HDMI0_AZ_FORMAT_WTRIG_MASK 0xEFFFFFFF
> +#define S_007408_HDMI0_AZ_FORMAT_WTRIG_ACK(x) (((x)& 0x1)<< 29)
> +#define G_007408_HDMI0_AZ_FORMAT_WTRIG_ACK(x) (((x)>> 29)& 0x1)
> +#define C_007408_HDMI0_AZ_FORMAT_WTRIG_ACK 0xDFFFFFFF
>
> /* MC registers */
> #define R_000000_MC_STATUS 0x000000
> diff --git a/drivers/gpu/drm/radeon/rv770d.h b/drivers/gpu/drm/radeon/rv770d.h
> index 79fa588..9c549f7 100644
> --- a/drivers/gpu/drm/radeon/rv770d.h
> +++ b/drivers/gpu/drm/radeon/rv770d.h
> @@ -353,6 +353,197 @@
>
> #define SRBM_STATUS 0x0E50
>
> +/* DCE 3.2 HDMI */
> +#define HDMI_CONTROL 0x7400
> +# define HDMI_KEEPOUT_MODE (1<< 0)
> +# define HDMI_PACKET_GEN_VERSION (1<< 4) /* 0 = r6xx compat */
> +# define HDMI_ERROR_ACK (1<< 8)
> +# define HDMI_ERROR_MASK (1<< 9)
> +#define HDMI_STATUS 0x7404
> +# define HDMI_ACTIVE_AVMUTE (1<< 0)
> +# define HDMI_AUDIO_PACKET_ERROR (1<< 16)
> +# define HDMI_VBI_PACKET_ERROR (1<< 20)
> +#define HDMI_AUDIO_PACKET_CONTROL 0x7408
> +# define HDMI_AUDIO_DELAY_EN(x) (((x)& 3)<< 4)
> +# define HDMI_AUDIO_PACKETS_PER_LINE(x) (((x)& 0x1f)<< 16)
> +#define HDMI_ACR_PACKET_CONTROL 0x740c
> +# define HDMI_ACR_SEND (1<< 0)
> +# define HDMI_ACR_CONT (1<< 1)
> +# define HDMI_ACR_SELECT(x) (((x)& 3)<< 4)
> +# define HDMI_ACR_HW 0
> +# define HDMI_ACR_32 1
> +# define HDMI_ACR_44 2
> +# define HDMI_ACR_48 3
> +# define HDMI_ACR_SOURCE (1<< 8) /* 0 - hw; 1 - cts value */
> +# define HDMI_ACR_AUTO_SEND (1<< 12)
> +#define HDMI_VBI_PACKET_CONTROL 0x7410
> +# define HDMI_NULL_SEND (1<< 0)
> +# define HDMI_GC_SEND (1<< 4)
> +# define HDMI_GC_CONT (1<< 5) /* 0 - once; 1 - every frame */
> +#define HDMI_INFOFRAME_CONTROL0 0x7414
> +# define HDMI_AVI_INFO_SEND (1<< 0)
> +# define HDMI_AVI_INFO_CONT (1<< 1)
> +# define HDMI_AUDIO_INFO_SEND (1<< 4)
> +# define HDMI_AUDIO_INFO_CONT (1<< 5)
> +# define HDMI_MPEG_INFO_SEND (1<< 8)
> +# define HDMI_MPEG_INFO_CONT (1<< 9)
> +#define HDMI_INFOFRAME_CONTROL1 0x7418
> +# define HDMI_AVI_INFO_LINE(x) (((x)& 0x3f)<< 0)
> +# define HDMI_AUDIO_INFO_LINE(x) (((x)& 0x3f)<< 8)
> +# define HDMI_MPEG_INFO_LINE(x) (((x)& 0x3f)<< 16)
> +#define HDMI_GENERIC_PACKET_CONTROL 0x741c
> +# define HDMI_GENERIC0_SEND (1<< 0)
> +# define HDMI_GENERIC0_CONT (1<< 1)
> +# define HDMI_GENERIC1_SEND (1<< 4)
> +# define HDMI_GENERIC1_CONT (1<< 5)
> +# define HDMI_GENERIC0_LINE(x) (((x)& 0x3f)<< 16)
> +# define HDMI_GENERIC1_LINE(x) (((x)& 0x3f)<< 24)
> +#define HDMI_GC 0x7428
> +# define HDMI_GC_AVMUTE (1<< 0)
> +#define AFMT_AUDIO_PACKET_CONTROL2 0x742c
> +# define AFMT_AUDIO_LAYOUT_OVRD (1<< 0)
> +# define AFMT_AUDIO_LAYOUT_SELECT (1<< 1)
> +# define AFMT_60958_CS_SOURCE (1<< 4)
> +# define AFMT_AUDIO_CHANNEL_ENABLE(x) (((x)& 0xff)<< 8)
> +# define AFMT_DP_AUDIO_STREAM_ID(x) (((x)& 0xff)<< 16)
> +#define AFMT_AVI_INFO0 0x7454
> +# define AFMT_AVI_INFO_CHECKSUM(x) (((x)& 0xff)<< 0)
> +# define AFMT_AVI_INFO_S(x) (((x)& 3)<< 8)
> +# define AFMT_AVI_INFO_B(x) (((x)& 3)<< 10)
> +# define AFMT_AVI_INFO_A(x) (((x)& 1)<< 12)
> +# define AFMT_AVI_INFO_Y(x) (((x)& 3)<< 13)
> +# define AFMT_AVI_INFO_Y_RGB 0
> +# define AFMT_AVI_INFO_Y_YCBCR422 1
> +# define AFMT_AVI_INFO_Y_YCBCR444 2
> +# define AFMT_AVI_INFO_Y_A_B_S(x) (((x)& 0xff)<< 8)
> +# define AFMT_AVI_INFO_R(x) (((x)& 0xf)<< 16)
> +# define AFMT_AVI_INFO_M(x) (((x)& 0x3)<< 20)
> +# define AFMT_AVI_INFO_C(x) (((x)& 0x3)<< 22)
> +# define AFMT_AVI_INFO_C_M_R(x) (((x)& 0xff)<< 16)
> +# define AFMT_AVI_INFO_SC(x) (((x)& 0x3)<< 24)
> +# define AFMT_AVI_INFO_Q(x) (((x)& 0x3)<< 26)
> +# define AFMT_AVI_INFO_EC(x) (((x)& 0x3)<< 28)
> +# define AFMT_AVI_INFO_ITC(x) (((x)& 0x1)<< 31)
> +# define AFMT_AVI_INFO_ITC_EC_Q_SC(x) (((x)& 0xff)<< 24)
> +#define AFMT_AVI_INFO1 0x7458
> +# define AFMT_AVI_INFO_VIC(x) (((x)& 0x7f)<< 0) /* don't use avi infoframe v1 */
> +# define AFMT_AVI_INFO_PR(x) (((x)& 0xf)<< 8) /* don't use avi infoframe v1 */
> +# define AFMT_AVI_INFO_TOP(x) (((x)& 0xffff)<< 16)
> +#define AFMT_AVI_INFO2 0x745c
> +# define AFMT_AVI_INFO_BOTTOM(x) (((x)& 0xffff)<< 0)
> +# define AFMT_AVI_INFO_LEFT(x) (((x)& 0xffff)<< 16)
> +#define AFMT_AVI_INFO3 0x7460
> +# define AFMT_AVI_INFO_RIGHT(x) (((x)& 0xffff)<< 0)
> +# define AFMT_AVI_INFO_VERSION(x) (((x)& 3)<< 24)
> +#define AFMT_MPEG_INFO0 0x7464
> +# define AFMT_MPEG_INFO_CHECKSUM(x) (((x)& 0xff)<< 0)
> +# define AFMT_MPEG_INFO_MB0(x) (((x)& 0xff)<< 8)
> +# define AFMT_MPEG_INFO_MB1(x) (((x)& 0xff)<< 16)
> +# define AFMT_MPEG_INFO_MB2(x) (((x)& 0xff)<< 24)
> +#define AFMT_MPEG_INFO1 0x7468
> +# define AFMT_MPEG_INFO_MB3(x) (((x)& 0xff)<< 0)
> +# define AFMT_MPEG_INFO_MF(x) (((x)& 3)<< 8)
> +# define AFMT_MPEG_INFO_FR(x) (((x)& 1)<< 12)
> +#define AFMT_GENERIC0_HDR 0x746c
> +#define AFMT_GENERIC0_0 0x7470
> +#define AFMT_GENERIC0_1 0x7474
> +#define AFMT_GENERIC0_2 0x7478
> +#define AFMT_GENERIC0_3 0x747c
> +#define AFMT_GENERIC0_4 0x7480
> +#define AFMT_GENERIC0_5 0x7484
> +#define AFMT_GENERIC0_6 0x7488
> +#define AFMT_GENERIC1_HDR 0x748c
> +#define AFMT_GENERIC1_0 0x7490
> +#define AFMT_GENERIC1_1 0x7494
> +#define AFMT_GENERIC1_2 0x7498
> +#define AFMT_GENERIC1_3 0x749c
> +#define AFMT_GENERIC1_4 0x74a0
> +#define AFMT_GENERIC1_5 0x74a4
> +#define AFMT_GENERIC1_6 0x74a8
> +#define HDMI_ACR_32_0 0x74ac
> +# define HDMI_ACR_CTS_32(x) (((x)& 0xfffff)<< 12)
> +#define HDMI_ACR_32_1 0x74b0
> +# define HDMI_ACR_N_32(x) (((x)& 0xfffff)<< 0)
> +#define HDMI_ACR_44_0 0x74b4
> +# define HDMI_ACR_CTS_44(x) (((x)& 0xfffff)<< 12)
> +#define HDMI_ACR_44_1 0x74b8
> +# define HDMI_ACR_N_44(x) (((x)& 0xfffff)<< 0)
> +#define HDMI_ACR_48_0 0x74bc
> +# define HDMI_ACR_CTS_48(x) (((x)& 0xfffff)<< 12)
> +#define HDMI_ACR_48_1 0x74c0
> +# define HDMI_ACR_N_48(x) (((x)& 0xfffff)<< 0)
> +#define HDMI_ACR_STATUS_0 0x74c4
> +#define HDMI_ACR_STATUS_1 0x74c8
> +#define AFMT_AUDIO_INFO0 0x74cc
> +# define AFMT_AUDIO_INFO_CHECKSUM(x) (((x)& 0xff)<< 0)
> +# define AFMT_AUDIO_INFO_CC(x) (((x)& 7)<< 8)
> +# define AFMT_AUDIO_INFO_CHECKSUM_OFFSET(x) (((x)& 0xff)<< 16)
> +#define AFMT_AUDIO_INFO1 0x74d0
> +# define AFMT_AUDIO_INFO_CA(x) (((x)& 0xff)<< 0)
> +# define AFMT_AUDIO_INFO_LSV(x) (((x)& 0xf)<< 11)
> +# define AFMT_AUDIO_INFO_DM_INH(x) (((x)& 1)<< 15)
> +# define AFMT_AUDIO_INFO_DM_INH_LSV(x) (((x)& 0xff)<< 8)
> +#define AFMT_60958_0 0x74d4
> +# define AFMT_60958_CS_A(x) (((x)& 1)<< 0)
> +# define AFMT_60958_CS_B(x) (((x)& 1)<< 1)
> +# define AFMT_60958_CS_C(x) (((x)& 1)<< 2)
> +# define AFMT_60958_CS_D(x) (((x)& 3)<< 3)
> +# define AFMT_60958_CS_MODE(x) (((x)& 3)<< 6)
> +# define AFMT_60958_CS_CATEGORY_CODE(x) (((x)& 0xff)<< 8)
> +# define AFMT_60958_CS_SOURCE_NUMBER(x) (((x)& 0xf)<< 16)
> +# define AFMT_60958_CS_CHANNEL_NUMBER_L(x) (((x)& 0xf)<< 20)
> +# define AFMT_60958_CS_SAMPLING_FREQUENCY(x) (((x)& 0xf)<< 24)
> +# define AFMT_60958_CS_CLOCK_ACCURACY(x) (((x)& 3)<< 28)
> +#define AFMT_60958_1 0x74d8
> +# define AFMT_60958_CS_WORD_LENGTH(x) (((x)& 0xf)<< 0)
> +# define AFMT_60958_CS_ORIGINAL_SAMPLING_FREQUENCY(x) (((x)& 0xf)<< 4)
> +# define AFMT_60958_CS_VALID_L(x) (((x)& 1)<< 16)
> +# define AFMT_60958_CS_VALID_R(x) (((x)& 1)<< 18)
> +# define AFMT_60958_CS_CHANNEL_NUMBER_R(x) (((x)& 0xf)<< 20)
> +#define AFMT_AUDIO_CRC_CONTROL 0x74dc
> +# define AFMT_AUDIO_CRC_EN (1<< 0)
> +#define AFMT_RAMP_CONTROL0 0x74e0
> +# define AFMT_RAMP_MAX_COUNT(x) (((x)& 0xffffff)<< 0)
> +# define AFMT_RAMP_DATA_SIGN (1<< 31)
> +#define AFMT_RAMP_CONTROL1 0x74e4
> +# define AFMT_RAMP_MIN_COUNT(x) (((x)& 0xffffff)<< 0)
> +# define AFMT_AUDIO_TEST_CH_DISABLE(x) (((x)& 0xff)<< 24)
> +#define AFMT_RAMP_CONTROL2 0x74e8
> +# define AFMT_RAMP_INC_COUNT(x) (((x)& 0xffffff)<< 0)
> +#define AFMT_RAMP_CONTROL3 0x74ec
> +# define AFMT_RAMP_DEC_COUNT(x) (((x)& 0xffffff)<< 0)
> +#define AFMT_60958_2 0x74f0
> +# define AFMT_60958_CS_CHANNEL_NUMBER_2(x) (((x)& 0xf)<< 0)
> +# define AFMT_60958_CS_CHANNEL_NUMBER_3(x) (((x)& 0xf)<< 4)
> +# define AFMT_60958_CS_CHANNEL_NUMBER_4(x) (((x)& 0xf)<< 8)
> +# define AFMT_60958_CS_CHANNEL_NUMBER_5(x) (((x)& 0xf)<< 12)
> +# define AFMT_60958_CS_CHANNEL_NUMBER_6(x) (((x)& 0xf)<< 16)
> +# define AFMT_60958_CS_CHANNEL_NUMBER_7(x) (((x)& 0xf)<< 20)
> +#define AFMT_STATUS 0x7600
> +# define AFMT_AUDIO_ENABLE (1<< 4)
> +# define AFMT_AZ_FORMAT_WTRIG (1<< 28)
> +# define AFMT_AZ_FORMAT_WTRIG_INT (1<< 29)
> +# define AFMT_AZ_AUDIO_ENABLE_CHG (1<< 30)
> +#define AFMT_AUDIO_PACKET_CONTROL 0x7604
> +# define AFMT_AUDIO_SAMPLE_SEND (1<< 0)
> +# define AFMT_AUDIO_TEST_EN (1<< 12)
> +# define AFMT_AUDIO_CHANNEL_SWAP (1<< 24)
> +# define AFMT_60958_CS_UPDATE (1<< 26)
> +# define AFMT_AZ_AUDIO_ENABLE_CHG_MASK (1<< 27)
> +# define AFMT_AZ_FORMAT_WTRIG_MASK (1<< 28)
> +# define AFMT_AZ_FORMAT_WTRIG_ACK (1<< 29)
> +# define AFMT_AZ_AUDIO_ENABLE_CHG_ACK (1<< 30)
> +#define AFMT_VBI_PACKET_CONTROL 0x7608
> +# define AFMT_GENERIC0_UPDATE (1<< 2)
> +#define AFMT_INFOFRAME_CONTROL0 0x760c
> +# define AFMT_AUDIO_INFO_SOURCE (1<< 6) /* 0 - sound block; 1 - hmdi regs */
> +# define AFMT_AUDIO_INFO_UPDATE (1<< 7)
> +# define AFMT_MPEG_INFO_UPDATE (1<< 10)
> +#define AFMT_GENERIC0_7 0x7610
> +/* second instance starts at 0x7800 */
> +#define HDMI_OFFSET0 (0x7400 - 0x7400)
> +#define HDMI_OFFSET1 (0x7800 - 0x7400)
> +
> #define D1GRPH_PRIMARY_SURFACE_ADDRESS 0x6110
> #define D1GRPH_PRIMARY_SURFACE_ADDRESS_HIGH 0x6914
> #define D2GRPH_PRIMARY_SURFACE_ADDRESS_HIGH 0x6114
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2012-03-29 7:53 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-28 17:19 [PATCH] drm/radeon/kms: add register definitions for audio alexdeucher
2012-03-29 7:53 ` Christian König [this message]
2012-03-29 8:16 ` Rafał Miłecki
2012-03-29 11:54 ` Deucher, Alexander
2012-03-30 9:09 ` Rafał Miłecki
2012-03-30 9:11 ` Rafał Miłecki
2012-03-30 13:07 ` Alex Deucher
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=4F7414EE.4050004@vodafone.de \
--to=deathsimple@vodafone.de \
--cc=alexander.deucher@amd.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=zajec5@gmail.com \
/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.