All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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.