mbox series

[v6,0/2] Add Colorspace connector property interface

Message ID 1545933158-22396-1-git-send-email-uma.shankar@intel.com (mailing list archive)
Headers show
Series Add Colorspace connector property interface | expand

Message

Shankar, Uma Dec. 27, 2018, 5:52 p.m. UTC
This patch series creates a new connector property to program
colorspace to sink devices. Modern sink devices support more
than 1 type of colorspace like 601, 709, BT2020 etc. This helps
to switch based on content type which is to be displayed. The
decision lies with compositors as to in which scenarios, a
particular colorspace will be picked.

This will be helpful mostly to switch to higher gamut colorspaces
like BT2020 when the media content is encoded as BT2020. Thereby
giving a good visual experience to users.

The expectation from userspace is that it should parse the EDID
and get supported colorspaces. Use this property and switch to the
one supported. Kernel will not give the supported colorspaces since
this is panel dependent and our current property infrastructure is
not supporting it.

Basically the expectation from userspace is:
 - Set up CRTC DEGAMMA/CTM/GAMMA to convert to some sink
   colorspace
 - Set this new property to let the sink know what it
   converted the CRTC output to.
 - This property is just to inform sink what colorspace
   source is trying to drive.

Have tested this using xrandr by using below command:
xrandr --output HDMI2 --set "Colorspace" "BT2020_rgb"

v2: Addressed Ville and Maarten's review comments. Merged the 2nd
and 3rd patch into one common logical patch.

v3: Removed Adobe references from enum definitions as per
Ville, Hans Verkuil and Jonas Karlman suggestions. Changed
default to an unset state where driver will assign the colorspace
when not chosen by user, suggested by Ville and Maarten. Addressed
other misc review comments from Maarten. 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. Handled the default case more efficiently.

v5: Modified the colorspace property creation helper to take
platform specific enum list based on the capabilities of the
platform as suggested by Shashank. With this there is no need
for segregation between DP and HDMI.

v6: Addressed Shashank's review comments.

Uma Shankar (2):
  drm: Add colorspace connector property
  drm/i915: Attach colorspace property and enable modeset

 drivers/gpu/drm/drm_atomic_uapi.c      |  4 ++
 drivers/gpu/drm/drm_connector.c        | 82 ++++++++++++++++++++++++++++++++++
 drivers/gpu/drm/i915/intel_atomic.c    |  1 +
 drivers/gpu/drm/i915/intel_connector.c | 63 ++++++++++++++++++++++++++
 drivers/gpu/drm/i915/intel_drv.h       |  1 +
 drivers/gpu/drm/i915/intel_hdmi.c      | 18 ++++++++
 include/drm/drm_connector.h            | 17 +++++++
 include/uapi/drm/drm_mode.h            | 33 ++++++++++++++
 8 files changed, 219 insertions(+)

Comments

Brian Starkey Jan. 8, 2019, 2:07 p.m. UTC | #1
Hi Uma,

On Thu, Dec 27, 2018 at 11:22:36PM +0530, Uma Shankar wrote:
> This patch series creates a new connector property to program
> colorspace to sink devices. Modern sink devices support more
> than 1 type of colorspace like 601, 709, BT2020 etc. This helps
> to switch based on content type which is to be displayed. The
> decision lies with compositors as to in which scenarios, a
> particular colorspace will be picked.
> 
> This will be helpful mostly to switch to higher gamut colorspaces
> like BT2020 when the media content is encoded as BT2020. Thereby
> giving a good visual experience to users.
> 
> The expectation from userspace is that it should parse the EDID
> and get supported colorspaces. Use this property and switch to the
> one supported. Kernel will not give the supported colorspaces since
> this is panel dependent and our current property infrastructure is
> not supporting it.
> 
> Basically the expectation from userspace is:
>  - Set up CRTC DEGAMMA/CTM/GAMMA to convert to some sink
>    colorspace
>  - Set this new property to let the sink know what it
>    converted the CRTC output to.
>  - This property is just to inform sink what colorspace
>    source is trying to drive.

All the above info is really important/useful stuff, but it's going to
get lost because it's only in the cover letter. This should either
find its way into the commit message of patch 1 or even better, into
the kerneldoc for the property.

Cheers,
-Brian

> 
> Have tested this using xrandr by using below command:
> xrandr --output HDMI2 --set "Colorspace" "BT2020_rgb"
> 
> v2: Addressed Ville and Maarten's review comments. Merged the 2nd
> and 3rd patch into one common logical patch.
> 
> v3: Removed Adobe references from enum definitions as per
> Ville, Hans Verkuil and Jonas Karlman suggestions. Changed
> default to an unset state where driver will assign the colorspace
> when not chosen by user, suggested by Ville and Maarten. Addressed
> other misc review comments from Maarten. 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. Handled the default case more efficiently.
> 
> v5: Modified the colorspace property creation helper to take
> platform specific enum list based on the capabilities of the
> platform as suggested by Shashank. With this there is no need
> for segregation between DP and HDMI.
> 
> v6: Addressed Shashank's review comments.
> 
> Uma Shankar (2):
>   drm: Add colorspace connector property
>   drm/i915: Attach colorspace property and enable modeset
> 
>  drivers/gpu/drm/drm_atomic_uapi.c      |  4 ++
>  drivers/gpu/drm/drm_connector.c        | 82 ++++++++++++++++++++++++++++++++++
>  drivers/gpu/drm/i915/intel_atomic.c    |  1 +
>  drivers/gpu/drm/i915/intel_connector.c | 63 ++++++++++++++++++++++++++
>  drivers/gpu/drm/i915/intel_drv.h       |  1 +
>  drivers/gpu/drm/i915/intel_hdmi.c      | 18 ++++++++
>  include/drm/drm_connector.h            | 17 +++++++
>  include/uapi/drm/drm_mode.h            | 33 ++++++++++++++
>  8 files changed, 219 insertions(+)
> 
> -- 
> 1.9.1
> 
> Uma Shankar (2):
>   drm: Add colorspace connector property
>   drm/i915: Attach colorspace property and enable modeset
> 
>  drivers/gpu/drm/drm_atomic_uapi.c      |  4 ++
>  drivers/gpu/drm/drm_connector.c        | 79 ++++++++++++++++++++++++++++++++++
>  drivers/gpu/drm/i915/intel_atomic.c    |  1 +
>  drivers/gpu/drm/i915/intel_connector.c | 63 +++++++++++++++++++++++++++
>  drivers/gpu/drm/i915/intel_drv.h       |  1 +
>  drivers/gpu/drm/i915/intel_hdmi.c      | 19 ++++++++
>  include/drm/drm_connector.h            | 17 ++++++++
>  include/uapi/drm/drm_mode.h            | 33 ++++++++++++++
>  8 files changed, 217 insertions(+)
> 
> -- 
> 1.9.1
>
Shankar, Uma Jan. 9, 2019, 12:10 p.m. UTC | #2
>-----Original Message-----
>From: Brian Starkey [mailto:Brian.Starkey@arm.com]
>Sent: Tuesday, January 8, 2019 7:37 PM
>To: Shankar, Uma <uma.shankar@intel.com>
>Cc: intel-gfx@lists.freedesktop.org; dri-devel@lists.freedesktop.org; Lankhorst,
>Maarten <maarten.lankhorst@intel.com>; Syrjala, Ville <ville.syrjala@intel.com>;
>Sharma, Shashank <shashank.sharma@intel.com>; nd <nd@arm.com>
>Subject: Re: [v6 0/2] Add Colorspace connector property interface
>
>Hi Uma,
>
>On Thu, Dec 27, 2018 at 11:22:36PM +0530, Uma Shankar wrote:
>> This patch series creates a new connector property to program
>> colorspace to sink devices. Modern sink devices support more than 1
>> type of colorspace like 601, 709, BT2020 etc. This helps to switch
>> based on content type which is to be displayed. The decision lies with
>> compositors as to in which scenarios, a particular colorspace will be
>> picked.
>>
>> This will be helpful mostly to switch to higher gamut colorspaces like
>> BT2020 when the media content is encoded as BT2020. Thereby giving a
>> good visual experience to users.
>>
>> The expectation from userspace is that it should parse the EDID and
>> get supported colorspaces. Use this property and switch to the one
>> supported. Kernel will not give the supported colorspaces since this
>> is panel dependent and our current property infrastructure is not
>> supporting it.
>>
>> Basically the expectation from userspace is:
>>  - Set up CRTC DEGAMMA/CTM/GAMMA to convert to some sink
>>    colorspace
>>  - Set this new property to let the sink know what it
>>    converted the CRTC output to.
>>  - This property is just to inform sink what colorspace
>>    source is trying to drive.
>
>All the above info is really important/useful stuff, but it's going to get lost
>because it's only in the cover letter. This should either find its way into the
>commit message of patch 1 or even better, into the kerneldoc for the property.

Sure Brian, Will add it to kernel doc as well to commit message so that it's not lost.

Regards,
Uma Shankar

>Cheers,
>-Brian
>
>>
>> Have tested this using xrandr by using below command:
>> xrandr --output HDMI2 --set "Colorspace" "BT2020_rgb"
>>
>> v2: Addressed Ville and Maarten's review comments. Merged the 2nd and
>> 3rd patch into one common logical patch.
>>
>> v3: Removed Adobe references from enum definitions as per Ville, Hans
>> Verkuil and Jonas Karlman suggestions. Changed default to an unset
>> state where driver will assign the colorspace when not chosen by user,
>> suggested by Ville and Maarten. Addressed other misc review comments
>> from Maarten. 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. Handled the
>> default case more efficiently.
>>
>> v5: Modified the colorspace property creation helper to take platform
>> specific enum list based on the capabilities of the platform as
>> suggested by Shashank. With this there is no need for segregation
>> between DP and HDMI.
>>
>> v6: Addressed Shashank's review comments.
>>
>> Uma Shankar (2):
>>   drm: Add colorspace connector property
>>   drm/i915: Attach colorspace property and enable modeset
>>
>>  drivers/gpu/drm/drm_atomic_uapi.c      |  4 ++
>>  drivers/gpu/drm/drm_connector.c        | 82
>++++++++++++++++++++++++++++++++++
>>  drivers/gpu/drm/i915/intel_atomic.c    |  1 +
>>  drivers/gpu/drm/i915/intel_connector.c | 63 ++++++++++++++++++++++++++
>>  drivers/gpu/drm/i915/intel_drv.h       |  1 +
>>  drivers/gpu/drm/i915/intel_hdmi.c      | 18 ++++++++
>>  include/drm/drm_connector.h            | 17 +++++++
>>  include/uapi/drm/drm_mode.h            | 33 ++++++++++++++
>>  8 files changed, 219 insertions(+)
>>
>> --
>> 1.9.1
>>
>> Uma Shankar (2):
>>   drm: Add colorspace connector property
>>   drm/i915: Attach colorspace property and enable modeset
>>
>>  drivers/gpu/drm/drm_atomic_uapi.c      |  4 ++
>>  drivers/gpu/drm/drm_connector.c        | 79
>++++++++++++++++++++++++++++++++++
>>  drivers/gpu/drm/i915/intel_atomic.c    |  1 +
>>  drivers/gpu/drm/i915/intel_connector.c | 63 +++++++++++++++++++++++++++
>>  drivers/gpu/drm/i915/intel_drv.h       |  1 +
>>  drivers/gpu/drm/i915/intel_hdmi.c      | 19 ++++++++
>>  include/drm/drm_connector.h            | 17 ++++++++
>>  include/uapi/drm/drm_mode.h            | 33 ++++++++++++++
>>  8 files changed, 217 insertions(+)
>>
>> --
>> 1.9.1
>>