Skip to content

Commit

Permalink
drm: Add DP1.4 VSC SDP Payload related Data Structures
Browse files Browse the repository at this point in the history
It adds new enumeration definitions for VSC SDP Payload for Pixel
Encoding/Colorimetry Format.
And it adds a new drm data structure for DP VSC SDP.

enum dp_colorspace and enum dp_colorimetry correspond "Pixel Encoding and
Colorimetry Formats". enum dp_dynamic_range corresponds "Dynamic Range".
And enum dp_content_type corresponds "Content Type"
All of them are based on DP 1.4 spec [Table 2-117: VSC SDP Payload for
DB16 through DB18].

v3: Add a new drm data structure for DP VSC SDP
v5: Addressed review comments from Uma
    - Add kernel docs for added data structures
    - Rename enum dp_colorspace to dp_pixelformat
    - Polish commit message
    - Fix typos
    - Drop self-explanatory comments

Signed-off-by: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
Acked-by: Daniel Vetter <daniel@ffwll.ch>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200211074657.231405-2-gwan-gyeong.mun@intel.com
  • Loading branch information
Gwan-gyeong Mun authored and Jani Nikula committed Mar 20, 2020
1 parent 8e37d69 commit e2e4c4e
Showing 1 changed file with 130 additions and 0 deletions.
130 changes: 130 additions & 0 deletions include/drm/drm_dp_helper.h
Original file line number Diff line number Diff line change
Expand Up @@ -1209,6 +1209,136 @@ struct dp_sdp {
#define EDP_VSC_PSR_UPDATE_RFB (1<<1)
#define EDP_VSC_PSR_CRC_VALUES_VALID (1<<2)

/**
* enum dp_pixelformat - drm DP Pixel encoding formats
*
* This enum is used to indicate DP VSC SDP Pixel encoding formats.
* It is based on DP 1.4 spec [Table 2-117: VSC SDP Payload for DB16 through
* DB18]
*
* @DP_PIXELFORMAT_RGB: RGB pixel encoding format
* @DP_PIXELFORMAT_YUV444: YCbCr 4:4:4 pixel encoding format
* @DP_PIXELFORMAT_YUV422: YCbCr 4:2:2 pixel encoding format
* @DP_PIXELFORMAT_YUV420: YCbCr 4:2:0 pixel encoding format
* @DP_PIXELFORMAT_Y_ONLY: Y Only pixel encoding format
* @DP_PIXELFORMAT_RAW: RAW pixel encoding format
* @DP_PIXELFORMAT_RESERVED: Reserved pixel encoding format
*/
enum dp_pixelformat {
DP_PIXELFORMAT_RGB = 0,
DP_PIXELFORMAT_YUV444 = 0x1,
DP_PIXELFORMAT_YUV422 = 0x2,
DP_PIXELFORMAT_YUV420 = 0x3,
DP_PIXELFORMAT_Y_ONLY = 0x4,
DP_PIXELFORMAT_RAW = 0x5,
DP_PIXELFORMAT_RESERVED = 0x6,
};

/**
* enum dp_colorimetry - drm DP Colorimetry formats
*
* This enum is used to indicate DP VSC SDP Colorimetry formats.
* It is based on DP 1.4 spec [Table 2-117: VSC SDP Payload for DB16 through
* DB18] and a name of enum member follows DRM_MODE_COLORIMETRY definition.
*
* @DP_COLORIMETRY_DEFAULT: sRGB (IEC 61966-2-1) or
* ITU-R BT.601 colorimetry format
* @DP_COLORIMETRY_RGB_WIDE_FIXED: RGB wide gamut fixed point colorimetry format
* @DP_COLORIMETRY_BT709_YCC: ITU-R BT.709 colorimetry format
* @DP_COLORIMETRY_RGB_WIDE_FLOAT: RGB wide gamut floating point
* (scRGB (IEC 61966-2-2)) colorimetry format
* @DP_COLORIMETRY_XVYCC_601: xvYCC601 colorimetry format
* @DP_COLORIMETRY_OPRGB: OpRGB colorimetry format
* @DP_COLORIMETRY_XVYCC_709: xvYCC709 colorimetry format
* @DP_COLORIMETRY_DCI_P3_RGB: DCI-P3 (SMPTE RP 431-2) colorimetry format
* @DP_COLORIMETRY_SYCC_601: sYCC601 colorimetry format
* @DP_COLORIMETRY_RGB_CUSTOM: RGB Custom Color Profile colorimetry format
* @DP_COLORIMETRY_OPYCC_601: opYCC601 colorimetry format
* @DP_COLORIMETRY_BT2020_RGB: ITU-R BT.2020 R' G' B' colorimetry format
* @DP_COLORIMETRY_BT2020_CYCC: ITU-R BT.2020 Y'c C'bc C'rc colorimetry format
* @DP_COLORIMETRY_BT2020_YCC: ITU-R BT.2020 Y' C'b C'r colorimetry format
*/
enum dp_colorimetry {
DP_COLORIMETRY_DEFAULT = 0,
DP_COLORIMETRY_RGB_WIDE_FIXED = 0x1,
DP_COLORIMETRY_BT709_YCC = 0x1,
DP_COLORIMETRY_RGB_WIDE_FLOAT = 0x2,
DP_COLORIMETRY_XVYCC_601 = 0x2,
DP_COLORIMETRY_OPRGB = 0x3,
DP_COLORIMETRY_XVYCC_709 = 0x3,
DP_COLORIMETRY_DCI_P3_RGB = 0x4,
DP_COLORIMETRY_SYCC_601 = 0x4,
DP_COLORIMETRY_RGB_CUSTOM = 0x5,
DP_COLORIMETRY_OPYCC_601 = 0x5,
DP_COLORIMETRY_BT2020_RGB = 0x6,
DP_COLORIMETRY_BT2020_CYCC = 0x6,
DP_COLORIMETRY_BT2020_YCC = 0x7,
};

/**
* enum dp_dynamic_range - drm DP Dynamic Range
*
* This enum is used to indicate DP VSC SDP Dynamic Range.
* It is based on DP 1.4 spec [Table 2-117: VSC SDP Payload for DB16 through
* DB18]
*
* @DP_DYNAMIC_RANGE_VESA: VESA range
* @DP_DYNAMIC_RANGE_CTA: CTA range
*/
enum dp_dynamic_range {
DP_DYNAMIC_RANGE_VESA = 0,
DP_DYNAMIC_RANGE_CTA = 1,
};

/**
* enum dp_content_type - drm DP Content Type
*
* This enum is used to indicate DP VSC SDP Content Types.
* It is based on DP 1.4 spec [Table 2-117: VSC SDP Payload for DB16 through
* DB18]
* CTA-861-G defines content types and expected processing by a sink device
*
* @DP_CONTENT_TYPE_NOT_DEFINED: Not defined type
* @DP_CONTENT_TYPE_GRAPHICS: Graphics type
* @DP_CONTENT_TYPE_PHOTO: Photo type
* @DP_CONTENT_TYPE_VIDEO: Video type
* @DP_CONTENT_TYPE_GAME: Game type
*/
enum dp_content_type {
DP_CONTENT_TYPE_NOT_DEFINED = 0x00,
DP_CONTENT_TYPE_GRAPHICS = 0x01,
DP_CONTENT_TYPE_PHOTO = 0x02,
DP_CONTENT_TYPE_VIDEO = 0x03,
DP_CONTENT_TYPE_GAME = 0x04,
};

/**
* struct drm_dp_vsc_sdp - drm DP VSC SDP
*
* This structure represents a DP VSC SDP of drm
* It is based on DP 1.4 spec [Table 2-116: VSC SDP Header Bytes] and
* [Table 2-117: VSC SDP Payload for DB16 through DB18]
*
* @sdp_type: secondary-data packet type
* @revision: revision number
* @length: number of valid data bytes
* @pixelformat: pixel encoding format
* @colorimetry: colorimetry format
* @bpc: bit per color
* @dynamic_range: dynamic range information
* @content_type: CTA-861-G defines content types and expected processing by a sink device
*/
struct drm_dp_vsc_sdp {
unsigned char sdp_type;
unsigned char revision;
unsigned char length;
enum dp_pixelformat pixelformat;
enum dp_colorimetry colorimetry;
int bpc;
enum dp_dynamic_range dynamic_range;
enum dp_content_type content_type;
};

int drm_dp_psr_setup_time(const u8 psr_cap[EDP_PSR_RECEIVER_CAP_SIZE]);

static inline int
Expand Down

0 comments on commit e2e4c4e

Please sign in to comment.