From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Uma Shankar <uma.shankar@intel.com>
Cc: intel-gfx@lists.freedesktop.org, ville.syrjala@intel.com,
Johnson Lin <johnson.lin@intel.com>,
maarten.lankhorst@intel.com
Subject: Re: [v4] drm/i915: Fix Limited Range Color Handling
Date: Thu, 22 Feb 2018 18:15:11 +0200 [thread overview]
Message-ID: <20180222161511.GY5453@intel.com> (raw)
In-Reply-To: <1517327489-26128-1-git-send-email-uma.shankar@intel.com>
On Tue, Jan 30, 2018 at 09:21:29PM +0530, Uma Shankar wrote:
> From: Johnson Lin <johnson.lin@intel.com>
>
> Some panels support limited range output (16-235) compared
> to full range RGB values (0-255). Also userspace can control
> the RGB range using "Broadcast RGB" property. Currently the
> code to handle full range to limited range is broken. This
> patch fixes the same by properly scaling down all the full
> range co-efficients with limited range scaling factor.
>
> v2: Fixed Ville's review comments.
>
> v3: Changed input to const and used correct data types as
> suggested by Ville
>
> v4: Fixed some missing data type corrections.
>
> Signed-off-by: Johnson Lin <johnson.lin@intel.com>
> Signed-off-by: Uma Shankar <uma.shankar@intel.com>
> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
OK, so maybe we can't get the test done or maybe we can. Either way
I've gone and pushed this to dinq. Thanks for the patch.
> ---
> drivers/gpu/drm/i915/intel_color.c | 29 ++++++++++++++---------------
> 1 file changed, 14 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_color.c b/drivers/gpu/drm/i915/intel_color.c
> index 333a23b..0b505d4 100644
> --- a/drivers/gpu/drm/i915/intel_color.c
> +++ b/drivers/gpu/drm/i915/intel_color.c
> @@ -84,26 +84,25 @@ static bool crtc_state_is_legacy_gamma(struct drm_crtc_state *state)
>
> /*
> * When using limited range, multiply the matrix given by userspace by
> - * the matrix that we would use for the limited range. We do the
> - * multiplication in U2.30 format.
> + * the matrix that we would use for the limited range.
> */
> -static void ctm_mult_by_limited(uint64_t *result, int64_t *input)
> +static void ctm_mult_by_limited(u64 *result, const u64 *input)
> {
> int i;
>
> - for (i = 0; i < 9; i++)
> - result[i] = 0;
> + for (i = 0; i < 9; i++) {
> + u64 user_coeff = input[i];
> + u32 limited_coeff = CTM_COEFF_LIMITED_RANGE;
> + u32 abs_coeff = clamp_val(CTM_COEFF_ABS(user_coeff), 0,
> + CTM_COEFF_4_0 - 1) >> 2;
>
> - for (i = 0; i < 3; i++) {
> - int64_t user_coeff = input[i * 3 + i];
> - uint64_t limited_coeff = CTM_COEFF_LIMITED_RANGE >> 2;
> - uint64_t abs_coeff = clamp_val(CTM_COEFF_ABS(user_coeff),
> - 0,
> - CTM_COEFF_4_0 - 1) >> 2;
> -
> - result[i * 3 + i] = (limited_coeff * abs_coeff) >> 27;
> - if (CTM_COEFF_NEGATIVE(user_coeff))
> - result[i * 3 + i] |= CTM_COEFF_SIGN;
> + /*
> + * By scaling every co-efficient with limited range (16-235)
> + * vs full range (0-255) the final o/p will be scaled down to
> + * fit in the limited range supported by the panel.
> + */
> + result[i] = mul_u32_u32(limited_coeff, abs_coeff) >> 30;
> + result[i] |= user_coeff & CTM_COEFF_SIGN;
> }
> }
>
> --
> 1.9.1
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2018-02-22 16:15 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-22 15:04 [PATCH] drm/i915: Fix Limited Range Color Handling Uma Shankar
2017-12-22 15:20 ` ✓ Fi.CI.BAT: success for " Patchwork
2017-12-22 15:54 ` [PATCH] " Ville Syrjälä
2017-12-22 16:12 ` Ville Syrjälä
2018-01-30 15:23 ` Shankar, Uma
2018-01-30 20:13 ` Ville Syrjälä
2018-02-09 13:34 ` Shankar, Uma
2018-02-09 15:38 ` Ville Syrjälä
2018-02-13 10:37 ` Shankar, Uma
2018-02-13 14:49 ` Ville Syrjälä
2018-02-15 19:12 ` Shankar, Uma
2017-12-29 13:58 ` Shankar, Uma
2017-12-29 14:59 ` Uma Shankar
2018-01-29 18:34 ` Ville Syrjälä
2018-01-30 15:19 ` [v3] " Uma Shankar
2018-01-30 15:23 ` Ville Syrjälä
2018-01-30 15:43 ` Shankar, Uma
2018-01-30 15:51 ` [v4] " Uma Shankar
2018-02-22 16:15 ` Ville Syrjälä [this message]
2017-12-22 17:00 ` ✗ Fi.CI.IGT: warning for " Patchwork
2018-01-02 10:13 ` ✓ Fi.CI.BAT: success for drm/i915: Fix Limited Range Color Handling (rev2) Patchwork
2018-01-30 18:47 ` ✓ Fi.CI.BAT: success for drm/i915: Fix Limited Range Color Handling (rev4) Patchwork
2018-01-30 22:48 ` ✗ Fi.CI.IGT: failure " Patchwork
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=20180222161511.GY5453@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=johnson.lin@intel.com \
--cc=maarten.lankhorst@intel.com \
--cc=uma.shankar@intel.com \
--cc=ville.syrjala@intel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.