From: Jani Nikula <jani.nikula@intel.com>
To: Swati Sharma <swati2.sharma@intel.com>, intel-gfx@lists.freedesktop.org
Cc: daniel.vetter@ffwll.ch, ankit.k.nautiyal@intel.com
Subject: Re: [PATCH 02/11] [v2] drm/i915: Extract i9xx_get_color_config()
Date: Tue, 16 Apr 2019 13:45:31 +0300 [thread overview]
Message-ID: <87mukqw7n8.fsf@intel.com> (raw)
In-Reply-To: <87pnpmw7rh.fsf@intel.com>
On Tue, 16 Apr 2019, Jani Nikula <jani.nikula@intel.com> wrote:
> On Mon, 15 Apr 2019, Swati Sharma <swati2.sharma@intel.com> wrote:
>> Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
>> ---
>> drivers/gpu/drm/i915/i915_reg.h | 3 +++
>> drivers/gpu/drm/i915/intel_color.c | 51 ++++++++++++++++++++++++++++++++++++++
>> 2 files changed, 54 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
>> index 9c206e8..8f2ae8a 100644
>> --- a/drivers/gpu/drm/i915/i915_reg.h
>> +++ b/drivers/gpu/drm/i915/i915_reg.h
>> @@ -7175,6 +7175,9 @@ enum {
>> /* legacy palette */
>> #define _LGC_PALETTE_A 0x4a000
>> #define _LGC_PALETTE_B 0x4a800
>> +#define LGC_PALETTE_RED_MASK REG_GENMASK(23, 16)
>> +#define LGC_PALETTE_GREEN_MASK REG_GENMASK(15, 8)
>> +#define LGC_PALETTE_BLUE_MASK REG_GENMASK(7, 0)
>> #define LGC_PALETTE(pipe, i) _MMIO(_PIPE(pipe, _LGC_PALETTE_A, _LGC_PALETTE_B) + (i) * 4)
>>
>> /* ilk/snb precision palette */
>> diff --git a/drivers/gpu/drm/i915/intel_color.c b/drivers/gpu/drm/i915/intel_color.c
>> index 321cf52..f394402 100644
>> --- a/drivers/gpu/drm/i915/intel_color.c
>> +++ b/drivers/gpu/drm/i915/intel_color.c
>> @@ -1228,6 +1228,56 @@ static int icl_color_check(struct intel_crtc_state *crtc_state)
>> return 0;
>> }
>>
>> +/* convert hw value with given bit_precision to lut property val */
>> +static u32 intel_color_lut_pack(u32 val, u32 bit_precision)
>> +{
>> + u32 max = 0xffff >> (16 - bit_precision);
>> +
>> + val = clamp_val(val, 0, max);
>> +
>> + if (bit_precision < 16)
>> + val <<= 16 - bit_precision;
>> +
>> + return val;
>> +}
>> +
>> +static void i9xx_get_config_internal(struct intel_crtc_state *crtc_state)
>> +{
>> + struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc);
>> + struct drm_device *dev = crtc->base.dev;
>> + struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
>> + enum pipe pipe = crtc->pipe;
>> + struct drm_property_blob *blob = NULL;
>
> No need to initialize.
>
>> + struct drm_color_lut *blob_data;
>> + u32 i, val;
>> +
>> + blob = drm_property_create_blob(dev,
>
> You can drop the dev local var as it's simply &dev_priv->drm.
>
>> + sizeof(struct drm_color_lut) * 256,
>> + NULL);
>> + if (IS_ERR(blob))
>> + return;
>> +
>> + blob_data = blob->data;
>> +
>> + for (i = 0; i < 256; i++) {
>> + if (HAS_GMCH(dev_priv))
>> + val = I915_READ(PALETTE(pipe, i));
>> + else
>> + val = I915_READ(LGC_PALETTE(pipe, i));
>> +
>> + blob_data[i].red = intel_color_lut_pack(REG_FIELD_GET(LGC_PALETTE_RED_MASK, val) >> 16, 8);
>> + blob_data[i].green = intel_color_lut_pack(REG_FIELD_GET(LGC_PALETTE_GREEN_MASK, val) >> 8, 8);
>> + blob_data[i].blue = intel_color_lut_pack(REG_FIELD_GET(LGC_PALETTE_BLUE_MASK, val), 8);
>
> REG_FIELD_GET() return the fields already shifted down according to the
> mask. So the right shifts here are not needed.
So the same comments apply to the rest of the platform specific get
config patches in the series, I'm not going to repeat them individually.
BR,
Jani.
>
>> + }
>> +
>> + crtc_state->base.gamma_lut = blob;
>> +}
>> +
>> +static void i9xx_get_color_config(struct intel_crtc_state *crtc_state)
>> +{
>> + i9xx_get_config_internal(crtc_state);
>> +}
>> +
>> void intel_color_init(struct intel_crtc *crtc)
>> {
>> struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
>> @@ -1248,6 +1298,7 @@ void intel_color_init(struct intel_crtc *crtc)
>> dev_priv->display.color_check = i9xx_color_check;
>> dev_priv->display.color_commit = i9xx_color_commit;
>> dev_priv->display.load_luts = i9xx_load_luts;
>> + dev_priv->display.get_color_config = i9xx_get_color_config;
>> }
>> } else {
>> if (INTEL_GEN(dev_priv) >= 11)
--
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2019-04-16 10:43 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-15 10:33 [PATCH 00/11] drm/i915: adding state checker for gamma lut values Swati Sharma
2019-04-15 10:33 ` [PATCH 01/11] [v3] drm/i915: Introduce vfunc intel_get_color_config to create hw lut Swati Sharma
2019-04-16 9:15 ` Jani Nikula
2019-04-15 10:33 ` [PATCH 02/11] [v2] drm/i915: Extract i9xx_get_color_config() Swati Sharma
2019-04-16 10:42 ` Jani Nikula
2019-04-16 10:45 ` Jani Nikula [this message]
2019-04-15 10:33 ` [PATCH 03/11] [v2] drm/i915: Extract cherryview_get_color_config() Swati Sharma
2019-04-15 10:33 ` [PATCH 04/11] [v2] drm/i915: Extract i965_get_color_config() Swati Sharma
2019-04-15 10:33 ` [PATCH 05/11] [v2] drm/i915: Extract icl_get_color_config() Swati Sharma
2019-04-15 10:33 ` [PATCH 06/11] [v2] drm/i915: Extract glk_get_color_config() Swati Sharma
2019-04-15 10:33 ` [PATCH 07/11] [v2] drm/i915: Extract bdw_get_color_config() Swati Sharma
2019-04-15 10:33 ` [PATCH 08/11] [v2] drm/i915: Extract ivb_get_color_config() Swati Sharma
2019-04-15 10:33 ` [PATCH 09/11] [v2] drm/i915: Extract ilk_get_color_config() Swati Sharma
2019-04-15 10:33 ` [PATCH 10/11] [v2] drm/i915: Enable intel_get_color_config() Swati Sharma
2019-04-16 9:17 ` Jani Nikula
2019-04-15 10:33 ` [PATCH 11/11] [v3] drm/i915: Add intel_compare_color_lut() to compare hw and sw gamma lut values Swati Sharma
2019-04-16 9:29 ` Jani Nikula
2019-04-16 11:42 ` [Intel-gfx] " Dan Carpenter
2019-04-15 10:55 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915: adding state checker for gamma lut values (rev4) Patchwork
2019-04-15 11:00 ` ✗ Fi.CI.SPARSE: " Patchwork
2019-04-15 11:13 ` ✗ Fi.CI.BAT: failure " Patchwork
-- strict thread matches above, loose matches on Subject: below --
2019-04-09 13:35 [PATCH 00/11] drm/i915: adding state checker for gamma lut values Swati Sharma
2019-04-09 13:35 ` [PATCH 02/11] [v2] drm/i915: Extract i9xx_get_color_config() Swati Sharma
2019-04-09 13:32 [PATCH 00/11] adding state checker for gamma lut values Swati Sharma
2019-04-09 13:32 ` [PATCH 02/11] [v2] drm/i915: Extract i9xx_get_color_config() Swati Sharma
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=87mukqw7n8.fsf@intel.com \
--to=jani.nikula@intel.com \
--cc=ankit.k.nautiyal@intel.com \
--cc=daniel.vetter@ffwll.ch \
--cc=intel-gfx@lists.freedesktop.org \
--cc=swati2.sharma@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.