Message ID | 1550041511-31565-3-git-send-email-uma.shankar@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add Colorspace connector property interface | expand |
On Wed, Feb 13, 2019 at 12:35:09PM +0530, Uma Shankar wrote: > This patch adds a DP colorspace property, enabling > userspace to switch to various supported colorspaces. > This will help enable BT2020 along with other colorspaces. > > v2: Addressed Maarten and Ville's review comments. Enhanced > the colorspace enum to incorporate both HDMI and DP supported > colorspaces. Also, added a default option for colorspace. > > v3: Split the changes to have separate colorspace property for > DP and HDMI. > > v4: Addressed Chris and Ville's review comments, and created a > common colorspace property for DP and HDMI, filtered the list > based on the colorspaces supported by the respective protocol > standard. > > v5: Merged the DP handling along with platform colorspace > handling as per Shashank's comments. > > v6: Reverted to old design of exposing all colorspaces to > userspace as per Ville's review comment > > v7: Fixed sparse warnings, updated the RB from Maarten and Jani's ack. > > v8: Addressed Ville's review comments and updated the colorspace > macro definitions. > > Signed-off-by: Uma Shankar <uma.shankar@intel.com> > Acked-by: Jani Nikula <jani.nikula@intel.com> > Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > --- > drivers/gpu/drm/drm_connector.c | 26 ++++++++++++++++++++++++++ > 1 file changed, 26 insertions(+) > > diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c > index 07d65a1..5473bea 100644 > --- a/drivers/gpu/drm/drm_connector.c > +++ b/drivers/gpu/drm/drm_connector.c > @@ -853,6 +853,24 @@ int drm_display_info_set_bus_formats(struct drm_display_info *info, > { DRM_MODE_COLORIMETRY_DCI_P3_RGB_THEATER, "DCI-P3_RGB_Theater" }, > }; > > +static const struct drm_prop_enum_list dp_colorspaces[] = { > + /* For Default case, driver will set the colorspace */ > + { DRM_MODE_COLORIMETRY_DEFAULT, "Default" }, > + /* 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-5 */ > + { DRM_MODE_COLORIMETRY_OPRGB, "opRGB" }, > + { DRM_MODE_COLORIMETRY_DCI_P3_RGB_D65, "DCI-P3_RGB_D65" }, > + /* DP MSA Colorimetry */ > + { DRM_MODE_DP_COLORIMETRY_BT601_YCC, "BT601_YCC" }, > + { DRM_MODE_DP_COLORIMETRY_BT709_YCC, "BT709_YCC" }, > + { DRM_MODE_DP_COLORIMETRY_SRGB, "sRGB" }, > + { DRM_MODE_DP_COLORIMETRY_RGB_WIDE_GAMUT, "RGB Wide Gamut" }, > + { DRM_MODE_DP_COLORIMETRY_SCRGB, "scRGB" }, > +}; I think we should postpone this patch (and the DP related bits in the previous patch) until we have the implementation done. Ie. let's just get HDMI working initially. > + > /** > * DOC: standard connector properties > * > @@ -1614,6 +1632,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_eDP || > + connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) { > + 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; > -- > 1.9.1 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
>-----Original Message----- >From: Ville Syrjälä [mailto:ville.syrjala@linux.intel.com] >Sent: Tuesday, February 19, 2019 1:39 AM >To: Shankar, Uma <uma.shankar@intel.com> >Cc: intel-gfx@lists.freedesktop.org; dri-devel@lists.freedesktop.org; Syrjala, Ville ><ville.syrjala@intel.com>; Lankhorst, Maarten <maarten.lankhorst@intel.com> >Subject: Re: [Intel-gfx] [v16 2/4] drm: Add DP colorspace property > >On Wed, Feb 13, 2019 at 12:35:09PM +0530, Uma Shankar wrote: >> This patch adds a DP colorspace property, enabling userspace to switch >> to various supported colorspaces. >> This will help enable BT2020 along with other colorspaces. >> >> v2: Addressed Maarten and Ville's review comments. Enhanced >> the colorspace enum to incorporate both HDMI and DP supported >> colorspaces. Also, added a default option for colorspace. >> >> v3: Split the changes to have separate colorspace property for DP and >> HDMI. >> >> v4: Addressed Chris and Ville's review comments, and created a common >> colorspace property for DP and HDMI, filtered the list based on the >> colorspaces supported by the respective protocol standard. >> >> v5: Merged the DP handling along with platform colorspace handling as >> per Shashank's comments. >> >> v6: Reverted to old design of exposing all colorspaces to userspace as >> per Ville's review comment >> >> v7: Fixed sparse warnings, updated the RB from Maarten and Jani's ack. >> >> v8: Addressed Ville's review comments and updated the colorspace macro >> definitions. >> >> Signed-off-by: Uma Shankar <uma.shankar@intel.com> >> Acked-by: Jani Nikula <jani.nikula@intel.com> >> Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> >> --- >> drivers/gpu/drm/drm_connector.c | 26 ++++++++++++++++++++++++++ >> 1 file changed, 26 insertions(+) >> >> diff --git a/drivers/gpu/drm/drm_connector.c >> b/drivers/gpu/drm/drm_connector.c index 07d65a1..5473bea 100644 >> --- a/drivers/gpu/drm/drm_connector.c >> +++ b/drivers/gpu/drm/drm_connector.c >> @@ -853,6 +853,24 @@ int drm_display_info_set_bus_formats(struct >drm_display_info *info, >> { DRM_MODE_COLORIMETRY_DCI_P3_RGB_THEATER, "DCI- >P3_RGB_Theater" }, >> }; >> >> +static const struct drm_prop_enum_list dp_colorspaces[] = { >> + /* For Default case, driver will set the colorspace */ >> + { DRM_MODE_COLORIMETRY_DEFAULT, "Default" }, >> + /* 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-5 */ >> + { DRM_MODE_COLORIMETRY_OPRGB, "opRGB" }, >> + { DRM_MODE_COLORIMETRY_DCI_P3_RGB_D65, "DCI-P3_RGB_D65" }, >> + /* DP MSA Colorimetry */ >> + { DRM_MODE_DP_COLORIMETRY_BT601_YCC, "BT601_YCC" }, >> + { DRM_MODE_DP_COLORIMETRY_BT709_YCC, "BT709_YCC" }, >> + { DRM_MODE_DP_COLORIMETRY_SRGB, "sRGB" }, >> + { DRM_MODE_DP_COLORIMETRY_RGB_WIDE_GAMUT, "RGB Wide Gamut" >}, >> + { DRM_MODE_DP_COLORIMETRY_SCRGB, "scRGB" }, }; > >I think we should postpone this patch (and the DP related bits in the previous patch) >until we have the implementation done. Ie. let's just get HDMI working initially. Sure, will drop this. >> + >> /** >> * DOC: standard connector properties >> * >> @@ -1614,6 +1632,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_eDP || >> + connector->connector_type == >DRM_MODE_CONNECTOR_DisplayPort) { >> + 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; >> -- >> 1.9.1 >> >> _______________________________________________ >> Intel-gfx mailing list >> Intel-gfx@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/intel-gfx > >-- >Ville Syrjälä >Intel
diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c index 07d65a1..5473bea 100644 --- a/drivers/gpu/drm/drm_connector.c +++ b/drivers/gpu/drm/drm_connector.c @@ -853,6 +853,24 @@ int drm_display_info_set_bus_formats(struct drm_display_info *info, { DRM_MODE_COLORIMETRY_DCI_P3_RGB_THEATER, "DCI-P3_RGB_Theater" }, }; +static const struct drm_prop_enum_list dp_colorspaces[] = { + /* For Default case, driver will set the colorspace */ + { DRM_MODE_COLORIMETRY_DEFAULT, "Default" }, + /* 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-5 */ + { DRM_MODE_COLORIMETRY_OPRGB, "opRGB" }, + { DRM_MODE_COLORIMETRY_DCI_P3_RGB_D65, "DCI-P3_RGB_D65" }, + /* DP MSA Colorimetry */ + { DRM_MODE_DP_COLORIMETRY_BT601_YCC, "BT601_YCC" }, + { DRM_MODE_DP_COLORIMETRY_BT709_YCC, "BT709_YCC" }, + { DRM_MODE_DP_COLORIMETRY_SRGB, "sRGB" }, + { DRM_MODE_DP_COLORIMETRY_RGB_WIDE_GAMUT, "RGB Wide Gamut" }, + { DRM_MODE_DP_COLORIMETRY_SCRGB, "scRGB" }, +}; + /** * DOC: standard connector properties * @@ -1614,6 +1632,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_eDP || + connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) { + 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;