Re: [Intel-gfx] [PATCH v7 01/18] drm: Add DP1.4 VSC SDP Payload related Data Structures
> -Original Message- > From: dri-devel On Behalf Of Gwan- > gyeong Mun > Sent: Tuesday, February 11, 2020 1:17 PM > To: intel-gfx@lists.freedesktop.org > Cc: linux-fb...@vger.kernel.org; dri-de...@lists.freedesktop.org > Subject: [PATCH v7 01/18] drm: Add DP1.4 VSC SDP Payload related Data > Structures > > 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 Changes look good. Reviewed-by: Uma Shankar > Signed-off-by: Gwan-gyeong Mun > --- > include/drm/drm_dp_helper.h | 130 > 1 file changed, 130 insertions(+) > > diff --git a/include/drm/drm_dp_helper.h b/include/drm/drm_dp_helper.h index > 262faf9e5e94..e332f54013d7 100644 > --- a/include/drm/drm_dp_helper.h > +++ b/include/drm/drm_dp_helper.h > @@ -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, > +}; >
[Intel-gfx] [PATCH v7 01/18] drm: Add DP1.4 VSC SDP Payload related Data Structures
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 --- include/drm/drm_dp_helper.h | 130 1 file changed, 130 insertions(+) diff --git a/include/drm/drm_dp_helper.h b/include/drm/drm_dp_helper.h index 262faf9e5e94..e332f54013d7 100644 --- a/include/drm/drm_dp_helper.h +++ b/include/drm/drm_dp_helper.h @@ -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 =