From: "Sharma, Shashank" <shashank.sharma@intel.com>
To: Emil Velikov <emil.l.velikov@gmail.com>
Cc: "Matheson, Annie J" <annie.j.matheson@intel.com>,
"intel-gfx@lists.freedesktop.org"
<intel-gfx@lists.freedesktop.org>,
ML dri-devel <dri-devel@lists.freedesktop.org>,
"Barnes, Jesse" <jesse.barnes@intel.com>,
Kausal Malladi <kausalmalladi@gmail.com>,
"Vetter, Daniel" <daniel.vetter@intel.com>
Subject: Re: [PATCH 16/22] drm/i915: Commit color correction to CRTC
Date: Sat, 10 Oct 2015 10:50:04 +0530 [thread overview]
Message-ID: <5618A004.9000502@intel.com> (raw)
In-Reply-To: <CACvgo51GAfO2ocuPsgafaO3BQ01DGLb1qf9K8ArTzxe-Sw5EyA@mail.gmail.com>
Regards
Shashank
On 10/10/2015 4:54 AM, Emil Velikov wrote:
> Hi Shashank,
>
> On 9 October 2015 at 20:29, Shashank Sharma <shashank.sharma@intel.com> wrote:
>> The color correction blob values are loaded during set_property
>> calls. This patch adds a function to find the blob and apply the
>> correction values to the display registers, during the atomic
>> commit call.
>>
>> Signed-off-by: Shashank Sharma <shashank.sharma@intel.com>
>> Signed-off-by: Kausal Malladi <kausalmalladi@gmail.com>
>> ---
>> drivers/gpu/drm/i915/intel_color_manager.c | 44 ++++++++++++++++++++++++++++++
>> drivers/gpu/drm/i915/intel_display.c | 2 ++
>> drivers/gpu/drm/i915/intel_drv.h | 3 ++
>> 3 files changed, 49 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/i915/intel_color_manager.c b/drivers/gpu/drm/i915/intel_color_manager.c
>> index 433e50a..d5315b2 100644
>> --- a/drivers/gpu/drm/i915/intel_color_manager.c
>> +++ b/drivers/gpu/drm/i915/intel_color_manager.c
>> @@ -307,6 +307,50 @@ static int chv_set_gamma(struct drm_device *dev, struct drm_property_blob *blob,
>> return ret;
>> }
>>
>> +void intel_color_manager_crtc_commit(struct drm_device *dev,
>> + struct drm_crtc_state *crtc_state)
>> +{
>> + struct drm_property_blob *blob;
>> + struct drm_crtc *crtc = crtc_state->crtc;
>> + int ret = -EINVAL;
> Most places/people advise against pre-emptively initializing ret.
>
Just in this case, if makes sense to keep one, coz there might be
multiple blobs which we are applying in the commit action, and every
blob can return error, from the core function.
Assume that there is a situation where both palette_after_ctm(gamma) and
CTM is in place, then we will be going through multiple if() cases and
have to check the return values.
>> +
>> + blob = crtc_state->palette_after_ctm_blob;
>> + if (blob) {
>> + /* Gamma correction is platform specific */
>> + if (IS_CHERRYVIEW(dev))
>> + ret = chv_set_gamma(dev, blob, crtc);
>> +
>> + if (ret)
>> + DRM_ERROR("set Gamma correction failed\n");
> Do we really want to spam dmesg on for each non Cherryview device ?
If you see the complete implementation, as IS_GEN8()/IS_SKL is coming up
here after IS_CHV(patch 19,20,21) which will cover BDW/SKL/BXT. Anything
else which comes here, deserves a DRM_ERROR() as this platform will not
be supported.
>
>> + else
>> + DRM_DEBUG_DRIVER("Gamma correction success\n");
>> + }
>> +
>> + blob = crtc_state->palette_before_ctm_blob;
>> + if (blob) {
>> + /* Degamma correction */
>> + if (IS_CHERRYVIEW(dev))
>> + ret = chv_set_degamma(dev, blob, crtc);
>> +
>> + if (ret)
>> + DRM_ERROR("set degamma correction failed\n");
>> + else
>> + DRM_DEBUG_DRIVER("degamma correction success\n");
>> + }
>> +
>> + blob = crtc_state->ctm_blob;
>> + if (blob) {
>> + /* CSC correction */
>> + if (IS_CHERRYVIEW(dev))
>> + ret = chv_set_csc(dev, blob, crtc);
>> +
>> + if (ret)
>> + DRM_ERROR("set CSC correction failed\n");
>> + else
>> + DRM_DEBUG_DRIVER("CSC correction success\n");
>> + }
>> +}
>> +
>> void intel_attach_color_properties_to_crtc(struct drm_device *dev,
>> struct drm_crtc *crtc)
>> {
>> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
>> index 98cc97a..8235341 100644
>> --- a/drivers/gpu/drm/i915/intel_display.c
>> +++ b/drivers/gpu/drm/i915/intel_display.c
>> @@ -13528,6 +13528,8 @@ static void intel_begin_crtc_commit(struct drm_crtc *crtc,
>> intel_update_pipe_config(intel_crtc, old_intel_state);
>> else if (INTEL_INFO(dev)->gen >= 9)
>> skl_detach_scalers(intel_crtc);
>> +
>> + intel_color_manager_crtc_commit(dev, crtc->state);
>> }
>>
>> static void intel_finish_crtc_commit(struct drm_crtc *crtc,
>> diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
>> index ed66a4f..d100e81 100644
>> --- a/drivers/gpu/drm/i915/intel_drv.h
>> +++ b/drivers/gpu/drm/i915/intel_drv.h
>> @@ -1469,4 +1469,7 @@ void intel_plane_destroy_state(struct drm_plane *plane,
>> struct drm_plane_state *state);
>> extern const struct drm_plane_helper_funcs intel_plane_helper_funcs;
>>
>> +/* intel_color_mnager.c */
> Typo -> manager.
>
Oops, thanks.
> Regards,
> Emil
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2015-10-10 5:20 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-09 19:28 [PATCH 00/22] Color Management for DRM Shashank Sharma
2015-10-09 19:28 ` [PATCH 01/22] drm: Create Color Management DRM properties Shashank Sharma
2015-10-09 19:48 ` kbuild test robot
2015-10-09 19:28 ` [PATCH 02/22] drm: Create Color Management query properties Shashank Sharma
2015-10-09 20:05 ` [Intel-gfx] " kbuild test robot
2015-10-09 19:28 ` [PATCH 03/22] drm: Add color correction blobs in CRTC state Shashank Sharma
2015-10-09 20:21 ` kbuild test robot
2015-10-09 22:23 ` Emil Velikov
2015-10-10 4:48 ` Sharma, Shashank
2015-10-09 19:28 ` [PATCH 04/22] drm: Add set property support for color manager Shashank Sharma
2015-10-09 20:39 ` kbuild test robot
2015-10-09 22:25 ` Emil Velikov
2015-10-10 4:50 ` Sharma, Shashank
2015-10-09 19:28 ` [PATCH 05/22] drm: Add get " Shashank Sharma
2015-10-09 19:28 ` [PATCH 06/22] drm: Add drm structures for palette color property Shashank Sharma
2015-10-09 19:28 ` [PATCH 07/22] drm: Add structure to set/get a CTM " Shashank Sharma
2015-10-09 19:28 ` [PATCH 08/22] drm/i915: Add set property interface for CRTC Shashank Sharma
2015-10-09 19:28 ` [PATCH 09/22] drm/i915: Create color management files Shashank Sharma
2015-10-09 22:47 ` Emil Velikov
2015-10-10 4:55 ` Sharma, Shashank
2015-10-13 12:59 ` Emil Velikov
2015-10-13 13:33 ` Sharma, Shashank
2015-10-09 19:29 ` [PATCH 10/22] drm/i915: Register color correction capabilities Shashank Sharma
2015-10-09 22:21 ` Emil Velikov
2015-10-10 5:01 ` Sharma, Shashank
2015-10-13 13:03 ` Emil Velikov
2015-10-13 13:36 ` Sharma, Shashank
2015-10-13 13:53 ` Emil Velikov
2015-10-13 14:01 ` Sharma, Shashank
2015-10-09 19:29 ` [PATCH 11/22] drm/i915: CHV: Load gamma color correction values Shashank Sharma
2015-10-09 19:29 ` [PATCH 12/22] drm/i915: CHV: Load degamma " Shashank Sharma
2015-10-09 19:29 ` [PATCH 13/22] drm/i915: CHV: Pipe level Gamma correction Shashank Sharma
2015-10-09 23:07 ` Emil Velikov
2015-10-10 5:09 ` Sharma, Shashank
2015-10-13 13:08 ` Emil Velikov
2015-10-13 13:40 ` Sharma, Shashank
2015-10-13 13:59 ` Emil Velikov
2015-10-13 14:04 ` Sharma, Shashank
2015-10-09 19:29 ` [PATCH 14/22] drm/i915: CHV: Pipe level degamma correction Shashank Sharma
2015-10-09 23:11 ` Emil Velikov
2015-10-10 5:13 ` Sharma, Shashank
2015-10-09 19:29 ` [PATCH 15/22] drm/i915: CHV: Pipe level CSC correction Shashank Sharma
2015-10-09 23:43 ` Emil Velikov
2015-10-10 5:26 ` Sharma, Shashank
2015-10-13 13:33 ` Emil Velikov
2015-10-13 13:49 ` Sharma, Shashank
2015-10-09 19:29 ` [PATCH 16/22] drm/i915: Commit color correction to CRTC Shashank Sharma
2015-10-09 23:24 ` Emil Velikov
2015-10-10 5:20 ` Sharma, Shashank [this message]
2015-10-13 13:17 ` Emil Velikov
2015-10-13 13:44 ` Sharma, Shashank
2015-10-09 19:29 ` [PATCH 17/22] drm/i915: Attach color properties " Shashank Sharma
2015-10-09 23:45 ` Emil Velikov
2015-10-10 5:28 ` Sharma, Shashank
2015-10-09 19:29 ` [PATCH 18/22] drm/i915: BDW: Load gamma correction values Shashank Sharma
2015-10-09 19:29 ` [PATCH 19/22] drm/i915: BDW: Pipe level Gamma correction Shashank Sharma
2015-10-09 23:39 ` Emil Velikov
2015-10-10 5:21 ` Sharma, Shashank
2015-10-13 13:23 ` Emil Velikov
2015-10-13 13:46 ` Sharma, Shashank
2015-10-12 18:09 ` Rob Bradford
2015-10-13 10:56 ` Sharma, Shashank
2015-10-09 19:29 ` [PATCH 20/22] drm/i915: BDW: Load degamma correction values Shashank Sharma
2015-10-12 18:13 ` Rob Bradford
2015-10-13 10:59 ` Sharma, Shashank
2015-10-09 19:29 ` [PATCH 21/22] drm/i915: BDW: Pipe level degamma correction Shashank Sharma
2015-10-09 23:49 ` Emil Velikov
2015-10-10 5:31 ` Sharma, Shashank
2015-10-13 13:39 ` Emil Velikov
2015-10-12 18:08 ` Rob Bradford
2015-10-13 10:51 ` Sharma, Shashank
2015-10-09 19:29 ` [PATCH 22/22] drm/i915: BDW: Pipe level CSC correction Shashank Sharma
2015-10-09 23:54 ` Emil Velikov
2015-10-10 5:34 ` Sharma, Shashank
2015-10-13 13:45 ` Emil Velikov
2015-10-13 13:52 ` Sharma, Shashank
2015-10-12 16:49 ` Rob Bradford
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5618A004.9000502@intel.com \
--to=shashank.sharma@intel.com \
--cc=annie.j.matheson@intel.com \
--cc=daniel.vetter@intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=emil.l.velikov@gmail.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jesse.barnes@intel.com \
--cc=kausalmalladi@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox