On Fri, Sep 06, 2019 at 11:31:55AM +0000, Shankar, Uma wrote:
> 
> 
> >-----Original Message-----
> >From: Ilia Mirkin <imir...@alum.mit.edu>
> >Sent: Tuesday, September 3, 2019 6:12 PM
> >To: Mun, Gwan-gyeong <gwan-gyeong....@intel.com>
> >Cc: Intel Graphics Development <intel-...@lists.freedesktop.org>; Shankar, 
> >Uma
> ><uma.shan...@intel.com>; dri-devel <dri-devel@lists.freedesktop.org>
> >Subject: Re: [PATCH v4 3/7] drm: Add DisplayPort colorspace property
> >
> >So how would this work with a DP++ connector? Should it list the HDMI or DP
> >properties? Or do we need a custom property checker which is aware of what is
> >currently plugged in to validate the values?
> 
> AFAIU For DP++ cases, we detect what kind of sink its driving DP or HDMI 
> (with a passive dongle).
> Based on the type of sink detected, we should expose DP or HDMI colorspaces 
> to userspace.

For i915 DP connector always drives DP mode, HDMI connector always drives
HDMI mode, even when the physical connector is DP++.

> 
> >On Tue, Sep 3, 2019 at 5:12 AM Gwan-gyeong Mun <gwan-gyeong....@intel.com>
> >wrote:
> >>
> >> In order to use colorspace property to Display Port connectors, it
> >> extends DRM_MODE_CONNECTOR_DisplayPort connector_type on
> >> drm_mode_create_colorspace_property function.
> >>
> >> v3: Addressed review comments from Ville
> >>     - Add new colorimetry options for DP 1.4a spec.
> >>     - Separate set of colorimetry enum values for DP.
> >> v4: Add additional comments to struct drm_prop_enum_list.
> >>     Polishing an enum string of struct drm_prop_enum_list
> >> Signed-off-by: Gwan-gyeong Mun <gwan-gyeong....@intel.com>
> >> Reviewed-by: Uma Shankar <uma.shan...@intel.com>
> >> ---
> >>  drivers/gpu/drm/drm_connector.c | 46 +++++++++++++++++++++++++++++++++
> >>  include/drm/drm_connector.h     |  8 ++++++
> >>  2 files changed, 54 insertions(+)
> >>
> >> diff --git a/drivers/gpu/drm/drm_connector.c
> >> b/drivers/gpu/drm/drm_connector.c index 4c766624b20d..5834e6d330a0
> >> 100644
> >> --- a/drivers/gpu/drm/drm_connector.c
> >> +++ b/drivers/gpu/drm/drm_connector.c
> >> @@ -882,6 +882,44 @@ static const struct drm_prop_enum_list
> >hdmi_colorspaces[] = {
> >>         { DRM_MODE_COLORIMETRY_DCI_P3_RGB_THEATER,
> >> "DCI-P3_RGB_Theater" },  };
> >>
> >> +/*
> >> + * As per DP 1.4a spec, 2.2.5.7.5 VSC SDP Payload for Pixel
> >> +Encoding/Colorimetry
> >> + * Format Table 2-120
> >> + */
> >> +static const struct drm_prop_enum_list dp_colorspaces[] = {
> >> +       /* For Default case, driver will set the colorspace */
> >> +       { DRM_MODE_COLORIMETRY_DEFAULT, "Default" },
> >> +       /* Colorimetry based on IEC 61966-2-1 */
> >> +       { DRM_MODE_COLORIMETRY_SRGB, "sRGB" },
> >> +       { DRM_MODE_COLORIMETRY_WIDE_GAMUT_FIXED_POINT_RGB,
> >"wide_gamut_fixed_point_RGB" },
> >> +       /* Colorimetry based on IEC 61966-2-2, wide gamut floating point 
> >> RGB */
> >> +       { DRM_MODE_COLORIMETRY_SCRGB, "scRGB" },
> >> +       { DRM_MODE_COLORIMETRY_ADOBE_RGB, "Adobe_RGB" },
> >> +       /* Colorimetry based on SMPTE RP 431-2 */
> >> +       { DRM_MODE_COLORIMETRY_DCP_P3_RGB, "DCI-P3_RGB" },
> >> +       /* Colorimetry based on ITU-R BT.2020 */
> >> +       { DRM_MODE_COLORIMETRY_BT2020_RGB, "BT2020_RGB" },
> >> +       { DRM_MODE_COLORIMETRY_BT601_YCC, "BT601_YCC" },
> >> +       { DRM_MODE_COLORIMETRY_BT709_YCC, "BT709_YCC" },
> >> +       /* Standard Definition Colorimetry based on IEC 61966-2-4 */
> >> +       { DRM_MODE_COLORIMETRY_XVYCC_601, "XVYCC_601" },
> >> +       /* High Definition Colorimetry based on IEC 61966-2-4 */
> >> +       { DRM_MODE_COLORIMETRY_XVYCC_709, "XVYCC_709" },
> >> +       /* Colorimetry based on IEC 61966-2-1/Amendment 1 */
> >> +       { DRM_MODE_COLORIMETRY_SYCC_601, "SYCC_601" },
> >> +       /* Colorimetry based on IEC 61966-2-5 [33] */
> >> +       { DRM_MODE_COLORIMETRY_OPYCC_601, "opYCC_601" },
> >> +       /* Colorimetry based on ITU-R BT.2020 */
> >> +       { DRM_MODE_COLORIMETRY_BT2020_CYCC, "BT2020_CYCC" },
> >> +       /* Colorimetry based on ITU-R BT.2020 */
> >> +       { DRM_MODE_COLORIMETRY_BT2020_YCC, "BT2020_YCC" },
> >> +       /*
> >> +        * Colorumetry based on Digital Imaging and Communications in 
> >> Medicine
> >> +        * (DICOM) Part 14: Grayscale Standard Display Function
> >> +        */
> >> +       { DRM_MODE_COLORIMETRY_DICOM_PART_14_GRAYSCALE,
> >> +"DICOM_Part_14_Grayscale" }, };
> >> +
> >>  /**
> >>   * DOC: standard connector properties
> >>   *
> >> @@ -1710,6 +1748,14 @@ int drm_mode_create_colorspace_property(struct
> >drm_connector *connector)
> >>                                                 
> >> ARRAY_SIZE(hdmi_colorspaces));
> >>                 if (!prop)
> >>                         return -ENOMEM;
> >> +       } else if (connector->connector_type ==
> >DRM_MODE_CONNECTOR_DisplayPort ||
> >> +                  connector->connector_type == DRM_MODE_CONNECTOR_eDP) {
> >> +               prop = drm_property_create_enum(dev, DRM_MODE_PROP_ENUM,
> >> +                                               "Colorspace",
> >> +                                               dp_colorspaces,
> >> +                                               
> >> ARRAY_SIZE(dp_colorspaces));
> >> +               if (!prop)
> >> +                       return -ENOMEM;
> >>         } else {
> >>                 DRM_DEBUG_KMS("Colorspace property not supported\n");
> >>                 return 0;
> >> diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
> >> index 681cb590f952..8848e5d6b0c4 100644
> >> --- a/include/drm/drm_connector.h
> >> +++ b/include/drm/drm_connector.h
> >> @@ -281,6 +281,14 @@ enum drm_panel_orientation {
> >>  /* Additional Colorimetry extension added as part of CTA 861.G */
> >>  #define DRM_MODE_COLORIMETRY_DCI_P3_RGB_D65            11
> >>  #define DRM_MODE_COLORIMETRY_DCI_P3_RGB_THEATER                12
> >> +/* Additional Colorimetry Options added for DP 1.4a VSC Colorimetry 
> >> Format */
> >> +#define DRM_MODE_COLORIMETRY_SRGB                      13
> >> +#define DRM_MODE_COLORIMETRY_WIDE_GAMUT_FIXED_POINT_RGB        14
> >> +#define DRM_MODE_COLORIMETRY_SCRGB                     15
> >> +#define DRM_MODE_COLORIMETRY_ADOBE_RGB                 16
> >> +#define DRM_MODE_COLORIMETRY_DCP_P3_RGB                        17
> >> +#define DRM_MODE_COLORIMETRY_BT601_YCC                 18
> >> +#define DRM_MODE_COLORIMETRY_DICOM_PART_14_GRAYSCALE   19
> >>
> >>  /**
> >>   * enum drm_bus_flags - bus_flags info for &drm_display_info
> >> --
> >> 2.23.0
> >>
> >> _______________________________________________
> >> dri-devel mailing list
> >> dri-devel@lists.freedesktop.org
> >> https://lists.freedesktop.org/mailman/listinfo/dri-devel
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Ville Syrjälä
Intel
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to