[PATCH 3/4] drm: Add definitions for DP compliance Video pattern tests
Jani Nikula
jani.nikula at linux.intel.com
Thu Jan 19 13:31:21 UTC 2017
On Wed, 18 Jan 2017, Manasi Navare <manasi.d.navare at intel.com> wrote:
> v2:
> * Add all the other DP Complianec TEST register defs (Jani Nikula)
> Cc: dri-devel at lists.freedesktop.org
> Cc: Jani Nikula <jani.nikula at linux.intel.com>
> Cc: Daniel Vetter <daniel.vetter at intel.com>
> Cc: Ville Syrjala <ville.syrjala at linux.intel.com>
> Signed-off-by: Manasi Navare <manasi.d.navare at intel.com>
> ---
> include/drm/drm_dp_helper.h | 58 +++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 58 insertions(+)
>
> diff --git a/include/drm/drm_dp_helper.h b/include/drm/drm_dp_helper.h
> index 0468135..ff03f8a 100644
> --- a/include/drm/drm_dp_helper.h
> +++ b/include/drm/drm_dp_helper.h
> @@ -417,6 +417,64 @@
> #define DP_TEST_LANE_COUNT 0x220
>
> #define DP_TEST_PATTERN 0x221
> +# define DP_NO_TEST_PATTERN (0x0)
> +# define DP_COLOR_RAMP (0x1)
> +# define DP_BLACK_AND_WHITE_VERTICAL_LINES (0x2)
> +# define DP_COLOR_SQUARE (0x3)
The braces are unnecessary.
> +
> +#define DP_TEST_H_TOTAL_HI 0x222
> +#define DP_TEST_H_TOTAl_LO 0x223
> +
> +#define DP_TEST_V_TOTAL_HI 0x224
> +#define DP_TEST_V_TOTAl_LO 0x225
> +
> +#define DP_TEST_H_START_HI 0x226
> +#define DP_TEST_H_START_LO 0x227
> +
> +#define DP_TEST_V_START_HI 0x228
> +#define DP_TEST_V_START_LO 0x229
> +
> +#define DP_TEST_HSYNC_HI 0x22A
You should add bit definitions for this, as bit 7 is polarity, and only
bits 6:0 are the hsync high order bits.
> +#define DP_TEST_HSYNC_LO 0x22B
> +
> +#define DP_TEST_VSYNC_HI 0x22C
Same as DP_TEST_HSYNC_HI.
> +#define DP_TEST_VSYNC_LO 0x22D
> +
> +#define DP_TEST_H_WIDTH_HI 0x22E
> +#define DP_TESt_H_WIDTH_LO 0x22F
^ should be T
> +
> +#define DP_TEST_V_HEIGHT_HI 0x230
> +#define DP_TEST_V_HEIGHT_LO 0x231
> +
> +#define DP_TEST_MISC_LO 0x232
The other definitions have HI and LO because they contain a 15- or
16-bit value spread across two offsets. This is not the case here. I'd
call these DP_TEST_MISC0 and DP_TEST_MISC1.
> +# define DP_TEST_SYNC_CLOCK_MASK (1 << 0)
> +# define DP_CLOCK_ASYNC (0x0)
> +# define DP_CLOCK_SYNC (0x1)
Single-bit values should just be TEST_SYNCHRONOUS_CLOCK (1 << 0). No
masks, shifts or values.
> +# define DP_TEST_COLOR_FORMAT_MASK (3 << 1)
> +# define DP_TEST_COLOR_FORMAT_SHIFT 1
> +# define DP_COLOR_FORMAT_RGB (0x0)
> +# define DP_COLOR_FORMAT_YCbCr422 (0x1)
> +# define DP_COLOR_FORMAT_YCbCr444 (0x2)
The values should be shifted to the right position,
e.g. DP_COLOR_FORMAT_RGB (0 << 1). The usage pattern would be:
if ((x & DP_TEST_COLOR_FORMAT_MASK) == DP_COLOR_FORMAT_RGB)
or
x &= ~DP_TEST_COLOR_FORMAT_MASK;
x |= DP_COLOR_FORMAT_YCbCr422;
> +# define DP_TEST_DYNAMIC_RANGE_MASK (1 << 3)
> +# define DP_TEST_DYNAMIC_RANGE_SHIFT 3
Single-bit values should just be DP_TEST_DYNAMIC_RANGE (1 << 3).
Same for all of the defines below.
BR,
Jani.
> +# define DP_VESA_RANGE (0x0)
> +# define DP_CEA_RANGE (0x1)
> +# define DP_TEST_BIT_DEPTH_MASK (7 << 5)
> +# define DP_TEST_BIT_DEPTH_SHIFT 5
> +# define DP_TEST_BIT_DEPTH_6 (0x0)
> +# define DP_TEST_BIT_DEPTH_8 (0x1)
> +# define DP_TEST_BIT_DEPTH_10 (0x2)
> +# define DP_TEST_BIT_DEPTH_12 (0x3)
> +# define DP_TEST_BIT_DEPTH_16 (0x4)
> +#define DP_TEST_MISC_HI 0x233
> +# define DP_TEST_REFRESH_DENOMINATOR_MASK (1 << 0)
> +# define REFRESH_DENOMINATOR_1 (0x0)
> +# define REFRESH_DENOMINATOR_1_001 (0x1)
> +# define DP_TEST_INTERLACED_MASK (1 << 1)
> +# define DP_NON_INTERLACED (0x0)
> +# define DP_INTERLACED (0x1)
> +
> +#define DP_TEST_REFRESH_RATE_NUMERATOR 0x234
>
> #define DP_TEST_CRC_R_CR 0x240
> #define DP_TEST_CRC_G_Y 0x242
--
Jani Nikula, Intel Open Source Technology Center
More information about the dri-devel
mailing list