* [PATCH v2 00/10] drm/i915: Clean up intel_color_check()
@ 2019-03-27 15:50 Ville Syrjala
2019-03-27 15:50 ` [PATCH v2 01/10] drm/i915: Extract check_luts() Ville Syrjala
` (13 more replies)
0 siblings, 14 replies; 16+ messages in thread
From: Ville Syrjala @ 2019-03-27 15:50 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Repost of the earlier series to clean up intel_color_check().
I tried to address all of Matt's review comments (thanks!).
All reviewed except patch 8.
Ville Syrjälä (10):
drm/i915: Extract check_luts()
drm/i915: Turn intel_color_check() into a vfunc
drm/i915: Extract i9xx_color_check()
drm/i915: Extract chv_color_check()
drm/i915: Extract icl_color_check()
drm/i915: Extract glk_color_check()
drm/i915: Extract bdw_color_check()
drm/i915: Extract ilk_color_check()
drm/i915: Drop the pointless linear legacy LUT load on CHV
drm/i915: Skip the linear degamma LUT load on ICL+
drivers/gpu/drm/i915/i915_drv.h | 1 +
drivers/gpu/drm/i915/intel_color.c | 416 +++++++++++++++++++++--------
2 files changed, 311 insertions(+), 106 deletions(-)
--
2.19.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH v2 01/10] drm/i915: Extract check_luts()
2019-03-27 15:50 [PATCH v2 00/10] drm/i915: Clean up intel_color_check() Ville Syrjala
@ 2019-03-27 15:50 ` Ville Syrjala
2019-03-27 15:50 ` [PATCH v2 02/10] drm/i915: Turn intel_color_check() into a vfunc Ville Syrjala
` (12 subsequent siblings)
13 siblings, 0 replies; 16+ messages in thread
From: Ville Syrjala @ 2019-03-27 15:50 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
In prepartion for per-platform color_check() functions extract the
common code into a separate function.
v2: Improve the C8 comment (Matt)
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
---
drivers/gpu/drm/i915/intel_color.c | 68 ++++++++++++++++++------------
1 file changed, 40 insertions(+), 28 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_color.c b/drivers/gpu/drm/i915/intel_color.c
index 467fd1a1630c..5d1bf68646b4 100644
--- a/drivers/gpu/drm/i915/intel_color.c
+++ b/drivers/gpu/drm/i915/intel_color.c
@@ -771,6 +771,38 @@ static int check_lut_size(const struct drm_property_blob *lut, int expected)
return 0;
}
+static int check_luts(const struct intel_crtc_state *crtc_state)
+{
+ struct drm_i915_private *dev_priv = to_i915(crtc_state->base.crtc->dev);
+ const struct drm_property_blob *gamma_lut = crtc_state->base.gamma_lut;
+ const struct drm_property_blob *degamma_lut = crtc_state->base.degamma_lut;
+ int gamma_length, degamma_length;
+ u32 gamma_tests, degamma_tests;
+
+ /* Always allow legacy gamma LUT with no further checking. */
+ if (crtc_state_is_legacy_gamma(crtc_state))
+ return 0;
+
+ /* C8 relies on its palette being stored in the legacy LUT */
+ if (crtc_state->c8_planes)
+ return -EINVAL;
+
+ degamma_length = INTEL_INFO(dev_priv)->color.degamma_lut_size;
+ gamma_length = INTEL_INFO(dev_priv)->color.gamma_lut_size;
+ degamma_tests = INTEL_INFO(dev_priv)->color.degamma_lut_tests;
+ gamma_tests = INTEL_INFO(dev_priv)->color.gamma_lut_tests;
+
+ if (check_lut_size(degamma_lut, degamma_length) ||
+ check_lut_size(gamma_lut, gamma_length))
+ return -EINVAL;
+
+ if (drm_color_lut_check(degamma_lut, degamma_tests) ||
+ drm_color_lut_check(gamma_lut, gamma_tests))
+ return -EINVAL;
+
+ return 0;
+}
+
static u32 chv_cgm_mode(const struct intel_crtc_state *crtc_state)
{
u32 cgm_mode = 0;
@@ -794,19 +826,11 @@ int intel_color_check(struct intel_crtc_state *crtc_state)
const struct drm_property_blob *gamma_lut = crtc_state->base.gamma_lut;
const struct drm_property_blob *degamma_lut = crtc_state->base.degamma_lut;
bool limited_color_range = false;
- int gamma_length, degamma_length;
- u32 gamma_tests, degamma_tests;
int ret;
- degamma_length = INTEL_INFO(dev_priv)->color.degamma_lut_size;
- gamma_length = INTEL_INFO(dev_priv)->color.gamma_lut_size;
- degamma_tests = INTEL_INFO(dev_priv)->color.degamma_lut_tests;
- gamma_tests = INTEL_INFO(dev_priv)->color.gamma_lut_tests;
-
- /* C8 needs the legacy LUT all to itself */
- if (crtc_state->c8_planes &&
- !crtc_state_is_legacy_gamma(crtc_state))
- return -EINVAL;
+ ret = check_luts(crtc_state);
+ if (ret)
+ return ret;
crtc_state->gamma_enable = (gamma_lut || degamma_lut) &&
!crtc_state->c8_planes;
@@ -828,25 +852,10 @@ int intel_color_check(struct intel_crtc_state *crtc_state)
if (IS_CHERRYVIEW(dev_priv))
crtc_state->cgm_mode = chv_cgm_mode(crtc_state);
- /* Always allow legacy gamma LUT with no further checking. */
if (!crtc_state->gamma_enable ||
- crtc_state_is_legacy_gamma(crtc_state)) {
+ crtc_state_is_legacy_gamma(crtc_state))
crtc_state->gamma_mode = GAMMA_MODE_MODE_8BIT;
- if (INTEL_GEN(dev_priv) >= 11 &&
- crtc_state->gamma_enable)
- crtc_state->gamma_mode |= POST_CSC_GAMMA_ENABLE;
- return 0;
- }
-
- if (check_lut_size(degamma_lut, degamma_length) ||
- check_lut_size(gamma_lut, gamma_length))
- return -EINVAL;
-
- if (drm_color_lut_check(degamma_lut, degamma_tests) ||
- drm_color_lut_check(gamma_lut, gamma_tests))
- return -EINVAL;
-
- if (INTEL_GEN(dev_priv) >= 11)
+ else if (INTEL_GEN(dev_priv) >= 11)
crtc_state->gamma_mode = GAMMA_MODE_MODE_10BIT |
PRE_CSC_GAMMA_ENABLE |
POST_CSC_GAMMA_ENABLE;
@@ -858,6 +867,9 @@ int intel_color_check(struct intel_crtc_state *crtc_state)
crtc_state->gamma_mode = GAMMA_MODE_MODE_8BIT;
if (INTEL_GEN(dev_priv) >= 11) {
+ if (crtc_state->gamma_enable)
+ crtc_state->gamma_mode |= POST_CSC_GAMMA_ENABLE;
+
if (crtc_state->output_format != INTEL_OUTPUT_FORMAT_RGB ||
crtc_state->limited_color_range)
crtc_state->csc_mode |= ICL_OUTPUT_CSC_ENABLE;
--
2.19.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v2 02/10] drm/i915: Turn intel_color_check() into a vfunc
2019-03-27 15:50 [PATCH v2 00/10] drm/i915: Clean up intel_color_check() Ville Syrjala
2019-03-27 15:50 ` [PATCH v2 01/10] drm/i915: Extract check_luts() Ville Syrjala
@ 2019-03-27 15:50 ` Ville Syrjala
2019-03-27 15:50 ` [PATCH v2 03/10] drm/i915: Extract i9xx_color_check() Ville Syrjala
` (11 subsequent siblings)
13 siblings, 0 replies; 16+ messages in thread
From: Ville Syrjala @ 2019-03-27 15:50 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
The current intel_color_check() is a mess, and worse yet it is
in fact incorrect for several platforms. The hardware has
evolved quite a bit over the years, so let's just go for a clean
split between the platforms by turning this into a vfunc.
The actual work to split it up will follow.
v2: Assign the vfuncs in the order they appear in the
struct (Matt)
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
---
drivers/gpu/drm/i915/i915_drv.h | 1 +
drivers/gpu/drm/i915/intel_color.c | 30 ++++++++++++++++++++----------
2 files changed, 21 insertions(+), 10 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index b05687ed91ef..7bdf40443a9d 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -325,6 +325,7 @@ struct drm_i915_display_funcs {
/* display clock increase/decrease */
/* pll clock increase/decrease */
+ int (*color_check)(struct intel_crtc_state *crtc_state);
/*
* Program double buffered color management registers during
* vblank evasion. The registers should then latch during the
diff --git a/drivers/gpu/drm/i915/intel_color.c b/drivers/gpu/drm/i915/intel_color.c
index 5d1bf68646b4..c6eb7eb323a0 100644
--- a/drivers/gpu/drm/i915/intel_color.c
+++ b/drivers/gpu/drm/i915/intel_color.c
@@ -704,6 +704,13 @@ void intel_color_commit(const struct intel_crtc_state *crtc_state)
dev_priv->display.color_commit(crtc_state);
}
+int intel_color_check(struct intel_crtc_state *crtc_state)
+{
+ struct drm_i915_private *dev_priv = to_i915(crtc_state->base.crtc->dev);
+
+ return dev_priv->display.color_check(crtc_state);
+}
+
static bool need_plane_update(struct intel_plane *plane,
const struct intel_crtc_state *crtc_state)
{
@@ -820,7 +827,7 @@ static u32 chv_cgm_mode(const struct intel_crtc_state *crtc_state)
return cgm_mode;
}
-int intel_color_check(struct intel_crtc_state *crtc_state)
+static int _intel_color_check(struct intel_crtc_state *crtc_state)
{
struct drm_i915_private *dev_priv = to_i915(crtc_state->base.crtc->dev);
const struct drm_property_blob *gamma_lut = crtc_state->base.gamma_lut;
@@ -888,13 +895,23 @@ void intel_color_init(struct intel_crtc *crtc)
drm_mode_crtc_set_gamma_size(&crtc->base, 256);
if (HAS_GMCH(dev_priv)) {
+ dev_priv->display.color_check = _intel_color_check;
+ dev_priv->display.color_commit = i9xx_color_commit;
+
if (IS_CHERRYVIEW(dev_priv))
dev_priv->display.load_luts = cherryview_load_luts;
else
dev_priv->display.load_luts = i9xx_load_luts;
-
- dev_priv->display.color_commit = i9xx_color_commit;
} else {
+ dev_priv->display.color_check = _intel_color_check;
+
+ if (INTEL_GEN(dev_priv) >= 9)
+ dev_priv->display.color_commit = skl_color_commit;
+ else if (IS_BROADWELL(dev_priv) || IS_HASWELL(dev_priv))
+ dev_priv->display.color_commit = hsw_color_commit;
+ else
+ dev_priv->display.color_commit = ilk_color_commit;
+
if (INTEL_GEN(dev_priv) >= 11)
dev_priv->display.load_luts = icl_load_luts;
else if (IS_CANNONLAKE(dev_priv) || IS_GEMINILAKE(dev_priv))
@@ -903,13 +920,6 @@ void intel_color_init(struct intel_crtc *crtc)
dev_priv->display.load_luts = broadwell_load_luts;
else
dev_priv->display.load_luts = i9xx_load_luts;
-
- if (INTEL_GEN(dev_priv) >= 9)
- dev_priv->display.color_commit = skl_color_commit;
- else if (IS_BROADWELL(dev_priv) || IS_HASWELL(dev_priv))
- dev_priv->display.color_commit = hsw_color_commit;
- else
- dev_priv->display.color_commit = ilk_color_commit;
}
/* Enable color management support when we have degamma & gamma LUTs. */
--
2.19.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v2 03/10] drm/i915: Extract i9xx_color_check()
2019-03-27 15:50 [PATCH v2 00/10] drm/i915: Clean up intel_color_check() Ville Syrjala
2019-03-27 15:50 ` [PATCH v2 01/10] drm/i915: Extract check_luts() Ville Syrjala
2019-03-27 15:50 ` [PATCH v2 02/10] drm/i915: Turn intel_color_check() into a vfunc Ville Syrjala
@ 2019-03-27 15:50 ` Ville Syrjala
2019-03-27 15:50 ` [PATCH v2 04/10] drm/i915: Extract chv_color_check() Ville Syrjala
` (10 subsequent siblings)
13 siblings, 0 replies; 16+ messages in thread
From: Ville Syrjala @ 2019-03-27 15:50 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Apart from CHV the other gmch platforms don't currently
require much work in .color_check(). So let's start by
extracting i9xx_color_check().
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
---
drivers/gpu/drm/i915/intel_color.c | 33 +++++++++++++++++++++++++-----
1 file changed, 28 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_color.c b/drivers/gpu/drm/i915/intel_color.c
index c6eb7eb323a0..cdd5eccb767b 100644
--- a/drivers/gpu/drm/i915/intel_color.c
+++ b/drivers/gpu/drm/i915/intel_color.c
@@ -810,6 +810,27 @@ static int check_luts(const struct intel_crtc_state *crtc_state)
return 0;
}
+static int i9xx_color_check(struct intel_crtc_state *crtc_state)
+{
+ int ret;
+
+ ret = check_luts(crtc_state);
+ if (ret)
+ return ret;
+
+ crtc_state->gamma_enable =
+ crtc_state->base.gamma_lut &&
+ !crtc_state->c8_planes;
+
+ crtc_state->gamma_mode = GAMMA_MODE_MODE_8BIT;
+
+ ret = intel_color_add_affected_planes(crtc_state);
+ if (ret)
+ return ret;
+
+ return 0;
+}
+
static u32 chv_cgm_mode(const struct intel_crtc_state *crtc_state)
{
u32 cgm_mode = 0;
@@ -895,13 +916,15 @@ void intel_color_init(struct intel_crtc *crtc)
drm_mode_crtc_set_gamma_size(&crtc->base, 256);
if (HAS_GMCH(dev_priv)) {
- dev_priv->display.color_check = _intel_color_check;
- dev_priv->display.color_commit = i9xx_color_commit;
-
- if (IS_CHERRYVIEW(dev_priv))
+ if (IS_CHERRYVIEW(dev_priv)) {
+ dev_priv->display.color_check = _intel_color_check;
+ dev_priv->display.color_commit = i9xx_color_commit;
dev_priv->display.load_luts = cherryview_load_luts;
- else
+ } else {
+ dev_priv->display.color_check = i9xx_color_check;
+ dev_priv->display.color_commit = i9xx_color_commit;
dev_priv->display.load_luts = i9xx_load_luts;
+ }
} else {
dev_priv->display.color_check = _intel_color_check;
--
2.19.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v2 04/10] drm/i915: Extract chv_color_check()
2019-03-27 15:50 [PATCH v2 00/10] drm/i915: Clean up intel_color_check() Ville Syrjala
` (2 preceding siblings ...)
2019-03-27 15:50 ` [PATCH v2 03/10] drm/i915: Extract i9xx_color_check() Ville Syrjala
@ 2019-03-27 15:50 ` Ville Syrjala
2019-03-27 15:50 ` [PATCH v2 05/10] drm/i915: Extract icl_color_check() Ville Syrjala
` (9 subsequent siblings)
13 siblings, 0 replies; 16+ messages in thread
From: Ville Syrjala @ 2019-03-27 15:50 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Since CHV has the CGM unit we require a custom implementation
of .color_check().
This fixes the computation of gamma_enable as previously we
left it enabled even when were using the CGM gamma instead.
Now we turn off the legacy LUT unless it's actually required.
v2: Add some comment explaining the color pipeline (Matt)
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
---
drivers/gpu/drm/i915/intel_color.c | 40 +++++++++++++++++++++++++++---
1 file changed, 36 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_color.c b/drivers/gpu/drm/i915/intel_color.c
index cdd5eccb767b..87cc204a1dbf 100644
--- a/drivers/gpu/drm/i915/intel_color.c
+++ b/drivers/gpu/drm/i915/intel_color.c
@@ -848,6 +848,41 @@ static u32 chv_cgm_mode(const struct intel_crtc_state *crtc_state)
return cgm_mode;
}
+/*
+ * CHV color pipeline:
+ * u0.10 -> CGM degamma -> u0.14 -> CGM csc -> u0.14 -> CGM gamma ->
+ * u0.10 -> WGC csc -> u0.10 -> pipe gamma -> u0.10
+ *
+ * We always bypass the WGC csc and use the CGM csc
+ * instead since it has degamma and better precision.
+ */
+static int chv_color_check(struct intel_crtc_state *crtc_state)
+{
+ int ret;
+
+ ret = check_luts(crtc_state);
+ if (ret)
+ return ret;
+
+ /*
+ * Pipe gamma will be used only for the legacy LUT.
+ * Otherwise we bypass it and use the CGM gamma instead.
+ */
+ crtc_state->gamma_enable =
+ crtc_state_is_legacy_gamma(crtc_state) &&
+ !crtc_state->c8_planes;
+
+ crtc_state->gamma_mode = GAMMA_MODE_MODE_8BIT;
+
+ crtc_state->cgm_mode = chv_cgm_mode(crtc_state);
+
+ ret = intel_color_add_affected_planes(crtc_state);
+ if (ret)
+ return ret;
+
+ return 0;
+}
+
static int _intel_color_check(struct intel_crtc_state *crtc_state)
{
struct drm_i915_private *dev_priv = to_i915(crtc_state->base.crtc->dev);
@@ -877,9 +912,6 @@ static int _intel_color_check(struct intel_crtc_state *crtc_state)
crtc_state->csc_mode = 0;
- if (IS_CHERRYVIEW(dev_priv))
- crtc_state->cgm_mode = chv_cgm_mode(crtc_state);
-
if (!crtc_state->gamma_enable ||
crtc_state_is_legacy_gamma(crtc_state))
crtc_state->gamma_mode = GAMMA_MODE_MODE_8BIT;
@@ -917,7 +949,7 @@ void intel_color_init(struct intel_crtc *crtc)
if (HAS_GMCH(dev_priv)) {
if (IS_CHERRYVIEW(dev_priv)) {
- dev_priv->display.color_check = _intel_color_check;
+ dev_priv->display.color_check = chv_color_check;
dev_priv->display.color_commit = i9xx_color_commit;
dev_priv->display.load_luts = cherryview_load_luts;
} else {
--
2.19.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v2 05/10] drm/i915: Extract icl_color_check()
2019-03-27 15:50 [PATCH v2 00/10] drm/i915: Clean up intel_color_check() Ville Syrjala
` (3 preceding siblings ...)
2019-03-27 15:50 ` [PATCH v2 04/10] drm/i915: Extract chv_color_check() Ville Syrjala
@ 2019-03-27 15:50 ` Ville Syrjala
2019-03-27 15:50 ` [PATCH v2 06/10] drm/i915: Extract glk_color_check() Ville Syrjala
` (8 subsequent siblings)
13 siblings, 0 replies; 16+ messages in thread
From: Ville Syrjala @ 2019-03-27 15:50 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
ICL is rather easy when it comes to .color_check() as it
finally provides us with a full color pipeline with
individual knobs for each stage.
We'll also start bypassing each LUT individually when
it is not needed.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
---
drivers/gpu/drm/i915/intel_color.c | 70 ++++++++++++++++++++++--------
1 file changed, 53 insertions(+), 17 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_color.c b/drivers/gpu/drm/i915/intel_color.c
index 87cc204a1dbf..cb40c89da038 100644
--- a/drivers/gpu/drm/i915/intel_color.c
+++ b/drivers/gpu/drm/i915/intel_color.c
@@ -883,6 +883,55 @@ static int chv_color_check(struct intel_crtc_state *crtc_state)
return 0;
}
+static u32 icl_gamma_mode(const struct intel_crtc_state *crtc_state)
+{
+ u32 gamma_mode = 0;
+
+ if (crtc_state->base.degamma_lut)
+ gamma_mode |= PRE_CSC_GAMMA_ENABLE;
+
+ if (crtc_state->base.gamma_lut &&
+ !crtc_state->c8_planes)
+ gamma_mode |= POST_CSC_GAMMA_ENABLE;
+
+ if (!crtc_state->base.gamma_lut ||
+ crtc_state_is_legacy_gamma(crtc_state))
+ gamma_mode |= GAMMA_MODE_MODE_8BIT;
+ else
+ gamma_mode |= GAMMA_MODE_MODE_10BIT;
+
+ return gamma_mode;
+}
+
+static u32 icl_csc_mode(const struct intel_crtc_state *crtc_state)
+{
+ u32 csc_mode = 0;
+
+ if (crtc_state->base.ctm)
+ csc_mode |= ICL_CSC_ENABLE;
+
+ if (crtc_state->output_format != INTEL_OUTPUT_FORMAT_RGB ||
+ crtc_state->limited_color_range)
+ csc_mode |= ICL_OUTPUT_CSC_ENABLE;
+
+ return csc_mode;
+}
+
+static int icl_color_check(struct intel_crtc_state *crtc_state)
+{
+ int ret;
+
+ ret = check_luts(crtc_state);
+ if (ret)
+ return ret;
+
+ crtc_state->gamma_mode = icl_gamma_mode(crtc_state);
+
+ crtc_state->csc_mode = icl_csc_mode(crtc_state);
+
+ return 0;
+}
+
static int _intel_color_check(struct intel_crtc_state *crtc_state)
{
struct drm_i915_private *dev_priv = to_i915(crtc_state->base.crtc->dev);
@@ -915,10 +964,6 @@ static int _intel_color_check(struct intel_crtc_state *crtc_state)
if (!crtc_state->gamma_enable ||
crtc_state_is_legacy_gamma(crtc_state))
crtc_state->gamma_mode = GAMMA_MODE_MODE_8BIT;
- else if (INTEL_GEN(dev_priv) >= 11)
- crtc_state->gamma_mode = GAMMA_MODE_MODE_10BIT |
- PRE_CSC_GAMMA_ENABLE |
- POST_CSC_GAMMA_ENABLE;
else if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
crtc_state->gamma_mode = GAMMA_MODE_MODE_10BIT;
else if (INTEL_GEN(dev_priv) >= 9 || IS_BROADWELL(dev_priv))
@@ -926,18 +971,6 @@ static int _intel_color_check(struct intel_crtc_state *crtc_state)
else
crtc_state->gamma_mode = GAMMA_MODE_MODE_8BIT;
- if (INTEL_GEN(dev_priv) >= 11) {
- if (crtc_state->gamma_enable)
- crtc_state->gamma_mode |= POST_CSC_GAMMA_ENABLE;
-
- if (crtc_state->output_format != INTEL_OUTPUT_FORMAT_RGB ||
- crtc_state->limited_color_range)
- crtc_state->csc_mode |= ICL_OUTPUT_CSC_ENABLE;
-
- if (crtc_state->base.ctm)
- crtc_state->csc_mode |= ICL_CSC_ENABLE;
- }
-
return 0;
}
@@ -958,7 +991,10 @@ void intel_color_init(struct intel_crtc *crtc)
dev_priv->display.load_luts = i9xx_load_luts;
}
} else {
- dev_priv->display.color_check = _intel_color_check;
+ if (INTEL_GEN(dev_priv) >= 11)
+ dev_priv->display.color_check = icl_color_check;
+ else
+ dev_priv->display.color_check = _intel_color_check;
if (INTEL_GEN(dev_priv) >= 9)
dev_priv->display.color_commit = skl_color_commit;
--
2.19.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v2 06/10] drm/i915: Extract glk_color_check()
2019-03-27 15:50 [PATCH v2 00/10] drm/i915: Clean up intel_color_check() Ville Syrjala
` (4 preceding siblings ...)
2019-03-27 15:50 ` [PATCH v2 05/10] drm/i915: Extract icl_color_check() Ville Syrjala
@ 2019-03-27 15:50 ` Ville Syrjala
2019-03-27 15:50 ` [PATCH v2 07/10] drm/i915: Extract bdw_color_check() Ville Syrjala
` (7 subsequent siblings)
13 siblings, 0 replies; 16+ messages in thread
From: Ville Syrjala @ 2019-03-27 15:50 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Unlike the earlier platforms GLK has dedicated degamma and gamma
LUTs. And quite curiously the degamma LUT is actually controlled
via the PLANE_COLOR_CTL CSC enable bit. Hence we must compute
gamma_enable and csc_enable differently to pre-GLK platforms.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
---
drivers/gpu/drm/i915/intel_color.c | 40 ++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
diff --git a/drivers/gpu/drm/i915/intel_color.c b/drivers/gpu/drm/i915/intel_color.c
index cb40c89da038..90ebcf7bef82 100644
--- a/drivers/gpu/drm/i915/intel_color.c
+++ b/drivers/gpu/drm/i915/intel_color.c
@@ -883,6 +883,44 @@ static int chv_color_check(struct intel_crtc_state *crtc_state)
return 0;
}
+static u32 glk_gamma_mode(const struct intel_crtc_state *crtc_state)
+{
+ if (!crtc_state->gamma_enable ||
+ crtc_state_is_legacy_gamma(crtc_state))
+ return GAMMA_MODE_MODE_8BIT;
+ else
+ return GAMMA_MODE_MODE_10BIT;
+}
+
+static int glk_color_check(struct intel_crtc_state *crtc_state)
+{
+ int ret;
+
+ ret = check_luts(crtc_state);
+ if (ret)
+ return ret;
+
+ crtc_state->gamma_enable =
+ crtc_state->base.gamma_lut &&
+ !crtc_state->c8_planes;
+
+ /* On GLK+ degamma LUT is controlled by csc_enable */
+ crtc_state->csc_enable =
+ crtc_state->base.degamma_lut ||
+ crtc_state->output_format != INTEL_OUTPUT_FORMAT_RGB ||
+ crtc_state->base.ctm || crtc_state->limited_color_range;
+
+ crtc_state->gamma_mode = glk_gamma_mode(crtc_state);
+
+ crtc_state->csc_mode = 0;
+
+ ret = intel_color_add_affected_planes(crtc_state);
+ if (ret)
+ return ret;
+
+ return 0;
+}
+
static u32 icl_gamma_mode(const struct intel_crtc_state *crtc_state)
{
u32 gamma_mode = 0;
@@ -993,6 +1031,8 @@ void intel_color_init(struct intel_crtc *crtc)
} else {
if (INTEL_GEN(dev_priv) >= 11)
dev_priv->display.color_check = icl_color_check;
+ else if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
+ dev_priv->display.color_check = glk_color_check;
else
dev_priv->display.color_check = _intel_color_check;
--
2.19.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v2 07/10] drm/i915: Extract bdw_color_check()
2019-03-27 15:50 [PATCH v2 00/10] drm/i915: Clean up intel_color_check() Ville Syrjala
` (5 preceding siblings ...)
2019-03-27 15:50 ` [PATCH v2 06/10] drm/i915: Extract glk_color_check() Ville Syrjala
@ 2019-03-27 15:50 ` Ville Syrjala
2019-03-27 15:50 ` [PATCH v2 08/10] drm/i915: Extract ilk_color_check() Ville Syrjala
` (6 subsequent siblings)
13 siblings, 0 replies; 16+ messages in thread
From: Ville Syrjala @ 2019-03-27 15:50 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Provide a separate .color_check() for BDW+ where we currently
provide the split gamma mode etc.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
---
drivers/gpu/drm/i915/intel_color.c | 39 ++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/drivers/gpu/drm/i915/intel_color.c b/drivers/gpu/drm/i915/intel_color.c
index 90ebcf7bef82..d9be011ae49a 100644
--- a/drivers/gpu/drm/i915/intel_color.c
+++ b/drivers/gpu/drm/i915/intel_color.c
@@ -883,6 +883,43 @@ static int chv_color_check(struct intel_crtc_state *crtc_state)
return 0;
}
+static u32 bdw_gamma_mode(const struct intel_crtc_state *crtc_state)
+{
+ if (!crtc_state->gamma_enable ||
+ crtc_state_is_legacy_gamma(crtc_state))
+ return GAMMA_MODE_MODE_8BIT;
+ else
+ return GAMMA_MODE_MODE_SPLIT;
+}
+
+static int bdw_color_check(struct intel_crtc_state *crtc_state)
+{
+ int ret;
+
+ ret = check_luts(crtc_state);
+ if (ret)
+ return ret;
+
+ crtc_state->gamma_enable =
+ (crtc_state->base.gamma_lut ||
+ crtc_state->base.degamma_lut) &&
+ !crtc_state->c8_planes;
+
+ crtc_state->csc_enable =
+ crtc_state->output_format != INTEL_OUTPUT_FORMAT_RGB ||
+ crtc_state->base.ctm || crtc_state->limited_color_range;
+
+ crtc_state->gamma_mode = bdw_gamma_mode(crtc_state);
+
+ crtc_state->csc_mode = 0;
+
+ ret = intel_color_add_affected_planes(crtc_state);
+ if (ret)
+ return ret;
+
+ return 0;
+}
+
static u32 glk_gamma_mode(const struct intel_crtc_state *crtc_state)
{
if (!crtc_state->gamma_enable ||
@@ -1033,6 +1070,8 @@ void intel_color_init(struct intel_crtc *crtc)
dev_priv->display.color_check = icl_color_check;
else if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
dev_priv->display.color_check = glk_color_check;
+ else if (INTEL_GEN(dev_priv) >= 8)
+ dev_priv->display.color_check = bdw_color_check;
else
dev_priv->display.color_check = _intel_color_check;
--
2.19.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v2 08/10] drm/i915: Extract ilk_color_check()
2019-03-27 15:50 [PATCH v2 00/10] drm/i915: Clean up intel_color_check() Ville Syrjala
` (6 preceding siblings ...)
2019-03-27 15:50 ` [PATCH v2 07/10] drm/i915: Extract bdw_color_check() Ville Syrjala
@ 2019-03-27 15:50 ` Ville Syrjala
2019-03-27 15:50 ` [PATCH v2 09/10] drm/i915: Drop the pointless linear legacy LUT load on CHV Ville Syrjala
` (5 subsequent siblings)
13 siblings, 0 replies; 16+ messages in thread
From: Ville Syrjala @ 2019-03-27 15:50 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
With everything else moved out of the way only ilk+
remains using _intel_color_check(). Streamline the logic
into ilk_color_check().
v2: Add some comments explaining we that we don't expose
the full hardware capabilities currently (Matt)
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/intel_color.c | 76 +++++++++++++-----------------
1 file changed, 33 insertions(+), 43 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_color.c b/drivers/gpu/drm/i915/intel_color.c
index d9be011ae49a..66e2b7d48410 100644
--- a/drivers/gpu/drm/i915/intel_color.c
+++ b/drivers/gpu/drm/i915/intel_color.c
@@ -883,6 +883,38 @@ static int chv_color_check(struct intel_crtc_state *crtc_state)
return 0;
}
+static int ilk_color_check(struct intel_crtc_state *crtc_state)
+{
+ int ret;
+
+ ret = check_luts(crtc_state);
+ if (ret)
+ return ret;
+
+ crtc_state->gamma_enable =
+ crtc_state->base.gamma_lut &&
+ !crtc_state->c8_planes;
+
+ /*
+ * We don't expose the ctm on ilk-hsw currently,
+ * nor do we enable YCbCr output. Only hsw uses
+ * the csc for RGB limited range output.
+ */
+ crtc_state->csc_enable =
+ ilk_csc_limited_range(crtc_state);
+
+ /* We don't expose fancy gamma modes on ilk-hsw currently */
+ crtc_state->gamma_mode = GAMMA_MODE_MODE_8BIT;
+
+ crtc_state->csc_mode = 0;
+
+ ret = intel_color_add_affected_planes(crtc_state);
+ if (ret)
+ return ret;
+
+ return 0;
+}
+
static u32 bdw_gamma_mode(const struct intel_crtc_state *crtc_state)
{
if (!crtc_state->gamma_enable ||
@@ -1007,48 +1039,6 @@ static int icl_color_check(struct intel_crtc_state *crtc_state)
return 0;
}
-static int _intel_color_check(struct intel_crtc_state *crtc_state)
-{
- struct drm_i915_private *dev_priv = to_i915(crtc_state->base.crtc->dev);
- const struct drm_property_blob *gamma_lut = crtc_state->base.gamma_lut;
- const struct drm_property_blob *degamma_lut = crtc_state->base.degamma_lut;
- bool limited_color_range = false;
- int ret;
-
- ret = check_luts(crtc_state);
- if (ret)
- return ret;
-
- crtc_state->gamma_enable = (gamma_lut || degamma_lut) &&
- !crtc_state->c8_planes;
-
- if (INTEL_GEN(dev_priv) >= 9 ||
- IS_BROADWELL(dev_priv) || IS_HASWELL(dev_priv))
- limited_color_range = crtc_state->limited_color_range;
-
- crtc_state->csc_enable =
- crtc_state->output_format != INTEL_OUTPUT_FORMAT_RGB ||
- crtc_state->base.ctm || limited_color_range;
-
- ret = intel_color_add_affected_planes(crtc_state);
- if (ret)
- return ret;
-
- crtc_state->csc_mode = 0;
-
- if (!crtc_state->gamma_enable ||
- crtc_state_is_legacy_gamma(crtc_state))
- crtc_state->gamma_mode = GAMMA_MODE_MODE_8BIT;
- else if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
- crtc_state->gamma_mode = GAMMA_MODE_MODE_10BIT;
- else if (INTEL_GEN(dev_priv) >= 9 || IS_BROADWELL(dev_priv))
- crtc_state->gamma_mode = GAMMA_MODE_MODE_SPLIT;
- else
- crtc_state->gamma_mode = GAMMA_MODE_MODE_8BIT;
-
- return 0;
-}
-
void intel_color_init(struct intel_crtc *crtc)
{
struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
@@ -1073,7 +1063,7 @@ void intel_color_init(struct intel_crtc *crtc)
else if (INTEL_GEN(dev_priv) >= 8)
dev_priv->display.color_check = bdw_color_check;
else
- dev_priv->display.color_check = _intel_color_check;
+ dev_priv->display.color_check = ilk_color_check;
if (INTEL_GEN(dev_priv) >= 9)
dev_priv->display.color_commit = skl_color_commit;
--
2.19.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v2 09/10] drm/i915: Drop the pointless linear legacy LUT load on CHV
2019-03-27 15:50 [PATCH v2 00/10] drm/i915: Clean up intel_color_check() Ville Syrjala
` (7 preceding siblings ...)
2019-03-27 15:50 ` [PATCH v2 08/10] drm/i915: Extract ilk_color_check() Ville Syrjala
@ 2019-03-27 15:50 ` Ville Syrjala
2019-03-27 15:50 ` [PATCH v2 10/10] drm/i915: Skip the linear degamma LUT load on ICL+ Ville Syrjala
` (4 subsequent siblings)
13 siblings, 0 replies; 16+ messages in thread
From: Ville Syrjala @ 2019-03-27 15:50 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
We now bypass the legacy LUT when it's not needed, so
no point in filling it up with a linear LUT.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
---
drivers/gpu/drm/i915/intel_color.c | 17 +----------------
1 file changed, 1 insertion(+), 16 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_color.c b/drivers/gpu/drm/i915/intel_color.c
index 66e2b7d48410..8d8fca7b5d65 100644
--- a/drivers/gpu/drm/i915/intel_color.c
+++ b/drivers/gpu/drm/i915/intel_color.c
@@ -376,15 +376,6 @@ static void i9xx_load_luts_internal(const struct intel_crtc_state *crtc_state,
(drm_color_lut_extract(lut[i].green, 8) << 8) |
drm_color_lut_extract(lut[i].blue, 8);
- if (HAS_GMCH(dev_priv))
- I915_WRITE(PALETTE(pipe, i), word);
- else
- I915_WRITE(LGC_PALETTE(pipe, i), word);
- }
- } else {
- for (i = 0; i < 256; i++) {
- u32 word = (i << 16) | (i << 8) | i;
-
if (HAS_GMCH(dev_priv))
I915_WRITE(PALETTE(pipe, i), word);
else
@@ -643,7 +634,7 @@ static void cherryview_load_luts(const struct intel_crtc_state *crtc_state)
cherryview_load_csc_matrix(crtc_state);
if (crtc_state_is_legacy_gamma(crtc_state)) {
- i9xx_load_luts_internal(crtc_state, gamma_lut);
+ i9xx_load_luts(crtc_state);
return;
}
@@ -682,12 +673,6 @@ static void cherryview_load_luts(const struct intel_crtc_state *crtc_state)
I915_WRITE(CGM_PIPE_GAMMA(pipe, i, 1), word1);
}
}
-
- /*
- * Also program a linear LUT in the legacy block (behind the
- * CGM block).
- */
- i9xx_load_luts_internal(crtc_state, NULL);
}
void intel_color_load_luts(const struct intel_crtc_state *crtc_state)
--
2.19.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v2 10/10] drm/i915: Skip the linear degamma LUT load on ICL+
2019-03-27 15:50 [PATCH v2 00/10] drm/i915: Clean up intel_color_check() Ville Syrjala
` (8 preceding siblings ...)
2019-03-27 15:50 ` [PATCH v2 09/10] drm/i915: Drop the pointless linear legacy LUT load on CHV Ville Syrjala
@ 2019-03-27 15:50 ` Ville Syrjala
2019-03-27 17:30 ` [PATCH v2 00/10] drm/i915: Clean up intel_color_check() Matt Roper
` (3 subsequent siblings)
13 siblings, 0 replies; 16+ messages in thread
From: Ville Syrjala @ 2019-03-27 15:50 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Don't load the linear degamma LUT on ICL. The hardware no longer
has any silly linkages between the CSC enable and degamma LUT
enable so the degamma LUT is only needed when it's actually
enabled.
Also add comments to explain the situation on GLK.
v2: Drop useless parens around 1<<16
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
---
drivers/gpu/drm/i915/intel_color.c | 91 +++++++++++++++++++++---------
1 file changed, 64 insertions(+), 27 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_color.c b/drivers/gpu/drm/i915/intel_color.c
index 8d8fca7b5d65..e903769ae610 100644
--- a/drivers/gpu/drm/i915/intel_color.c
+++ b/drivers/gpu/drm/i915/intel_color.c
@@ -273,6 +273,14 @@ static void ilk_load_csc_matrix(const struct intel_crtc_state *crtc_state)
ilk_csc_coeff_limited_range,
ilk_csc_postoff_limited_range);
} else if (crtc_state->csc_enable) {
+ /*
+ * On GLK+ both pipe CSC and degamma LUT are controlled
+ * by csc_enable. Hence for the cases where the degama
+ * LUT is needed but CSC is not we need to load an
+ * identity matrix.
+ */
+ WARN_ON(!IS_CANNONLAKE(dev_priv) && !IS_GEMINILAKE(dev_priv));
+
ilk_update_pipe_csc(crtc, ilk_csc_off_zero,
ilk_csc_coeff_identity,
ilk_csc_off_zero);
@@ -559,6 +567,7 @@ static void glk_load_degamma_lut(const struct intel_crtc_state *crtc_state)
struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
enum pipe pipe = crtc->pipe;
const u32 lut_size = INTEL_INFO(dev_priv)->color.degamma_lut_size;
+ struct drm_color_lut *lut = crtc_state->base.degamma_lut->data;
u32 i;
/*
@@ -569,42 +578,69 @@ static void glk_load_degamma_lut(const struct intel_crtc_state *crtc_state)
I915_WRITE(PRE_CSC_GAMC_INDEX(pipe), 0);
I915_WRITE(PRE_CSC_GAMC_INDEX(pipe), PRE_CSC_GAMC_AUTO_INCREMENT);
- if (crtc_state->base.degamma_lut) {
- struct drm_color_lut *lut = crtc_state->base.degamma_lut->data;
+ for (i = 0; i < lut_size; i++) {
+ /*
+ * First 33 entries represent range from 0 to 1.0
+ * 34th and 35th entry will represent extended range
+ * inputs 3.0 and 7.0 respectively, currently clamped
+ * at 1.0. Since the precision is 16bit, the user
+ * value can be directly filled to register.
+ * The pipe degamma table in GLK+ onwards doesn't
+ * support different values per channel, so this just
+ * programs green value which will be equal to Red and
+ * Blue into the lut registers.
+ * ToDo: Extend to max 7.0. Enable 32 bit input value
+ * as compared to just 16 to achieve this.
+ */
+ I915_WRITE(PRE_CSC_GAMC_DATA(pipe), lut[i].green);
+ }
- for (i = 0; i < lut_size; i++) {
- /*
- * First 33 entries represent range from 0 to 1.0
- * 34th and 35th entry will represent extended range
- * inputs 3.0 and 7.0 respectively, currently clamped
- * at 1.0. Since the precision is 16bit, the user
- * value can be directly filled to register.
- * The pipe degamma table in GLK+ onwards doesn't
- * support different values per channel, so this just
- * programs green value which will be equal to Red and
- * Blue into the lut registers.
- * ToDo: Extend to max 7.0. Enable 32 bit input value
- * as compared to just 16 to achieve this.
- */
- I915_WRITE(PRE_CSC_GAMC_DATA(pipe), lut[i].green);
- }
- } else {
- /* load a linear table. */
- for (i = 0; i < lut_size; i++) {
- u32 v = (i * (1 << 16)) / (lut_size - 1);
+ /* Clamp values > 1.0. */
+ while (i++ < 35)
+ I915_WRITE(PRE_CSC_GAMC_DATA(pipe), 1 << 16);
+}
- I915_WRITE(PRE_CSC_GAMC_DATA(pipe), v);
- }
+static void glk_load_degamma_lut_linear(const struct intel_crtc_state *crtc_state)
+{
+ struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc);
+ struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+ enum pipe pipe = crtc->pipe;
+ const u32 lut_size = INTEL_INFO(dev_priv)->color.degamma_lut_size;
+ u32 i;
+
+ /*
+ * When setting the auto-increment bit, the hardware seems to
+ * ignore the index bits, so we need to reset it to index 0
+ * separately.
+ */
+ I915_WRITE(PRE_CSC_GAMC_INDEX(pipe), 0);
+ I915_WRITE(PRE_CSC_GAMC_INDEX(pipe), PRE_CSC_GAMC_AUTO_INCREMENT);
+
+ for (i = 0; i < lut_size; i++) {
+ u32 v = (i << 16) / (lut_size - 1);
+
+ I915_WRITE(PRE_CSC_GAMC_DATA(pipe), v);
}
/* Clamp values > 1.0. */
while (i++ < 35)
- I915_WRITE(PRE_CSC_GAMC_DATA(pipe), (1 << 16));
+ I915_WRITE(PRE_CSC_GAMC_DATA(pipe), 1 << 16);
}
static void glk_load_luts(const struct intel_crtc_state *crtc_state)
{
- glk_load_degamma_lut(crtc_state);
+ /*
+ * On GLK+ both pipe CSC and degamma LUT are controlled
+ * by csc_enable. Hence for the cases where the CSC is
+ * needed but degamma LUT is not we need to load a
+ * linear degamma LUT. In fact we'll just always load
+ * the degama LUT so that we don't have to reload
+ * it every time the pipe CSC is being enabled.
+ */
+ if (crtc_state->base.degamma_lut)
+ glk_load_degamma_lut(crtc_state);
+ else
+ glk_load_degamma_lut_linear(crtc_state);
if (crtc_state_is_legacy_gamma(crtc_state))
i9xx_load_luts(crtc_state);
@@ -614,7 +650,8 @@ static void glk_load_luts(const struct intel_crtc_state *crtc_state)
static void icl_load_luts(const struct intel_crtc_state *crtc_state)
{
- glk_load_degamma_lut(crtc_state);
+ if (crtc_state->base.degamma_lut)
+ glk_load_degamma_lut(crtc_state);
if (crtc_state_is_legacy_gamma(crtc_state))
i9xx_load_luts(crtc_state);
--
2.19.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH v2 00/10] drm/i915: Clean up intel_color_check()
2019-03-27 15:50 [PATCH v2 00/10] drm/i915: Clean up intel_color_check() Ville Syrjala
` (9 preceding siblings ...)
2019-03-27 15:50 ` [PATCH v2 10/10] drm/i915: Skip the linear degamma LUT load on ICL+ Ville Syrjala
@ 2019-03-27 17:30 ` Matt Roper
2019-03-28 19:33 ` Ville Syrjälä
2019-03-27 20:07 ` ✗ Fi.CI.SPARSE: warning for drm/i915: Clean up intel_color_check() (rev2) Patchwork
` (2 subsequent siblings)
13 siblings, 1 reply; 16+ messages in thread
From: Matt Roper @ 2019-03-27 17:30 UTC (permalink / raw)
To: Ville Syrjala; +Cc: intel-gfx
On Wed, Mar 27, 2019 at 05:50:35PM +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Repost of the earlier series to clean up intel_color_check().
> I tried to address all of Matt's review comments (thanks!).
>
> All reviewed except patch 8.
Patch 8 (and the rest of the series):
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
> Ville Syrjälä (10):
> drm/i915: Extract check_luts()
> drm/i915: Turn intel_color_check() into a vfunc
> drm/i915: Extract i9xx_color_check()
> drm/i915: Extract chv_color_check()
> drm/i915: Extract icl_color_check()
> drm/i915: Extract glk_color_check()
> drm/i915: Extract bdw_color_check()
> drm/i915: Extract ilk_color_check()
> drm/i915: Drop the pointless linear legacy LUT load on CHV
> drm/i915: Skip the linear degamma LUT load on ICL+
>
> drivers/gpu/drm/i915/i915_drv.h | 1 +
> drivers/gpu/drm/i915/intel_color.c | 416 +++++++++++++++++++++--------
> 2 files changed, 311 insertions(+), 106 deletions(-)
>
> --
> 2.19.2
>
--
Matt Roper
Graphics Software Engineer
IoTG Platform Enabling & Development
Intel Corporation
(916) 356-2795
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 16+ messages in thread
* ✗ Fi.CI.SPARSE: warning for drm/i915: Clean up intel_color_check() (rev2)
2019-03-27 15:50 [PATCH v2 00/10] drm/i915: Clean up intel_color_check() Ville Syrjala
` (10 preceding siblings ...)
2019-03-27 17:30 ` [PATCH v2 00/10] drm/i915: Clean up intel_color_check() Matt Roper
@ 2019-03-27 20:07 ` Patchwork
2019-03-27 21:00 ` ✓ Fi.CI.BAT: success " Patchwork
2019-03-28 17:38 ` ✓ Fi.CI.IGT: " Patchwork
13 siblings, 0 replies; 16+ messages in thread
From: Patchwork @ 2019-03-27 20:07 UTC (permalink / raw)
To: Ville Syrjala; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Clean up intel_color_check() (rev2)
URL : https://patchwork.freedesktop.org/series/58137/
State : warning
== Summary ==
$ dim sparse origin/drm-tip
Sparse version: v0.5.2
Commit: drm/i915: Extract check_luts()
Okay!
Commit: drm/i915: Turn intel_color_check() into a vfunc
-drivers/gpu/drm/i915/selftests/../i915_drv.h:3566:16: warning: expression using sizeof(void)
+drivers/gpu/drm/i915/selftests/../i915_drv.h:3567:16: warning: expression using sizeof(void)
Commit: drm/i915: Extract i9xx_color_check()
Okay!
Commit: drm/i915: Extract chv_color_check()
Okay!
Commit: drm/i915: Extract icl_color_check()
Okay!
Commit: drm/i915: Extract glk_color_check()
Okay!
Commit: drm/i915: Extract bdw_color_check()
Okay!
Commit: drm/i915: Extract ilk_color_check()
Okay!
Commit: drm/i915: Drop the pointless linear legacy LUT load on CHV
Okay!
Commit: drm/i915: Skip the linear degamma LUT load on ICL+
Okay!
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 16+ messages in thread
* ✓ Fi.CI.BAT: success for drm/i915: Clean up intel_color_check() (rev2)
2019-03-27 15:50 [PATCH v2 00/10] drm/i915: Clean up intel_color_check() Ville Syrjala
` (11 preceding siblings ...)
2019-03-27 20:07 ` ✗ Fi.CI.SPARSE: warning for drm/i915: Clean up intel_color_check() (rev2) Patchwork
@ 2019-03-27 21:00 ` Patchwork
2019-03-28 17:38 ` ✓ Fi.CI.IGT: " Patchwork
13 siblings, 0 replies; 16+ messages in thread
From: Patchwork @ 2019-03-27 21:00 UTC (permalink / raw)
To: Ville Syrjala; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Clean up intel_color_check() (rev2)
URL : https://patchwork.freedesktop.org/series/58137/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_5829 -> Patchwork_12618
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://patchwork.freedesktop.org/api/1.0/series/58137/revisions/2/mbox/
Known issues
------------
Here are the changes found in Patchwork_12618 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@i915_selftest@live_contexts:
- fi-skl-gvtdvm: PASS -> DMESG-FAIL [fdo#110235 ]
* igt@i915_selftest@live_requests:
- fi-icl-u2: PASS -> INCOMPLETE [fdo#109644]
* igt@kms_busy@basic-flip-a:
- fi-gdg-551: PASS -> FAIL [fdo#103182]
* igt@kms_frontbuffer_tracking@basic:
- fi-byt-clapper: PASS -> FAIL [fdo#103167]
* igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a-frame-sequence:
- fi-byt-clapper: PASS -> FAIL [fdo#103191] / [fdo#107362]
* igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
- fi-blb-e6850: PASS -> INCOMPLETE [fdo#107718]
#### Possible fixes ####
* igt@i915_selftest@live_contexts:
- fi-bdw-gvtdvm: DMESG-FAIL [fdo#110235 ] -> PASS
* igt@i915_selftest@live_uncore:
- fi-skl-gvtdvm: DMESG-FAIL [fdo#110210] -> PASS
* igt@kms_busy@basic-flip-b:
- fi-gdg-551: FAIL [fdo#103182] -> PASS
* igt@kms_pipe_crc_basic@read-crc-pipe-a-frame-sequence:
- fi-byt-clapper: FAIL [fdo#103191] / [fdo#107362] -> PASS
[fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
[fdo#103182]: https://bugs.freedesktop.org/show_bug.cgi?id=103182
[fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
[fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362
[fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
[fdo#109644]: https://bugs.freedesktop.org/show_bug.cgi?id=109644
[fdo#110210]: https://bugs.freedesktop.org/show_bug.cgi?id=110210
[fdo#110235 ]: https://bugs.freedesktop.org/show_bug.cgi?id=110235
Participating hosts (41 -> 36)
------------------------------
Missing (5): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-bsw-cyan fi-apl-guc
Build changes
-------------
* Linux: CI_DRM_5829 -> Patchwork_12618
CI_DRM_5829: 32a1e283d330638d2e5de8f89a9ff7c8512b75e8 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_4909: 7df3eeb4f3360cd2b511c31acc1c52bd7ce6587f @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_12618: 71269f3fa54ad55d9a599264cdfb09eea6ce4243 @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
71269f3fa54a drm/i915: Skip the linear degamma LUT load on ICL+
a507dabf8963 drm/i915: Drop the pointless linear legacy LUT load on CHV
f05a6609f11f drm/i915: Extract ilk_color_check()
c05849dd3d76 drm/i915: Extract bdw_color_check()
1dd68a766d82 drm/i915: Extract glk_color_check()
6c29304d707f drm/i915: Extract icl_color_check()
18d5f7a12d5c drm/i915: Extract chv_color_check()
a05f0dd4f449 drm/i915: Extract i9xx_color_check()
1a9647347e21 drm/i915: Turn intel_color_check() into a vfunc
cbbaee874b42 drm/i915: Extract check_luts()
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12618/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 16+ messages in thread
* ✓ Fi.CI.IGT: success for drm/i915: Clean up intel_color_check() (rev2)
2019-03-27 15:50 [PATCH v2 00/10] drm/i915: Clean up intel_color_check() Ville Syrjala
` (12 preceding siblings ...)
2019-03-27 21:00 ` ✓ Fi.CI.BAT: success " Patchwork
@ 2019-03-28 17:38 ` Patchwork
13 siblings, 0 replies; 16+ messages in thread
From: Patchwork @ 2019-03-28 17:38 UTC (permalink / raw)
To: Ville Syrjala; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Clean up intel_color_check() (rev2)
URL : https://patchwork.freedesktop.org/series/58137/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_5829_full -> Patchwork_12618_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Known issues
------------
Here are the changes found in Patchwork_12618_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_exec_schedule@fifo-bsd2:
- shard-snb: NOTRUN -> SKIP [fdo#109271] +68
* igt@gem_pwrite@stolen-normal:
- shard-kbl: NOTRUN -> SKIP [fdo#109271] +20
- shard-skl: NOTRUN -> SKIP [fdo#109271] +57
* igt@i915_pm_rpm@gem-mmap-gtt:
- shard-skl: PASS -> INCOMPLETE [fdo#107807] +1
* igt@kms_available_modes_crc@available_mode_test_crc:
- shard-iclb: PASS -> FAIL [fdo#106641]
- shard-snb: PASS -> FAIL [fdo#106641]
* igt@kms_busy@extended-modeset-hang-oldfb-with-reset-render-f:
- shard-glk: NOTRUN -> SKIP [fdo#109271] / [fdo#109278]
* igt@kms_busy@extended-pageflip-hang-newfb-render-a:
- shard-glk: NOTRUN -> DMESG-WARN [fdo#110222]
* igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-b:
- shard-glk: PASS -> DMESG-WARN [fdo#110222]
* igt@kms_flip@flip-vs-expired-vblank:
- shard-skl: PASS -> FAIL [fdo#105363]
- shard-glk: PASS -> FAIL [fdo#102887] / [fdo#105363]
* igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-render:
- shard-glk: PASS -> FAIL [fdo#103167]
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-move:
- shard-iclb: PASS -> FAIL [fdo#103167] +4
* igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-mmap-gtt:
- shard-iclb: PASS -> FAIL [fdo#109247] +21
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-msflip-blt:
- shard-glk: NOTRUN -> SKIP [fdo#109271] +17
* igt@kms_pipe_crc_basic@suspend-read-crc-pipe-d:
- shard-skl: NOTRUN -> SKIP [fdo#109271] / [fdo#109278] +3
- shard-kbl: NOTRUN -> SKIP [fdo#109271] / [fdo#109278]
* igt@kms_plane_alpha_blend@pipe-b-alpha-transparant-fb:
- shard-skl: NOTRUN -> FAIL [fdo#108145]
* igt@kms_plane_alpha_blend@pipe-c-alpha-basic:
- shard-glk: NOTRUN -> FAIL [fdo#108145]
* igt@kms_plane_scaling@pipe-a-scaler-with-clipping-clamping:
- shard-glk: PASS -> SKIP [fdo#109271] / [fdo#109278]
* igt@kms_psr@cursor_mmap_gtt:
- shard-iclb: PASS -> FAIL [fdo#107383] / [fdo#110215] +4
* igt@kms_psr@psr2_primary_mmap_cpu:
- shard-iclb: PASS -> SKIP [fdo#109441] +2
* igt@kms_rotation_crc@multiplane-rotation:
- shard-kbl: PASS -> DMESG-FAIL [fdo#105763]
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0:
- shard-iclb: PASS -> INCOMPLETE [fdo#110026] / [fdo#110040 ]
* igt@kms_rotation_crc@sprite-rotation-270:
- shard-glk: PASS -> INCOMPLETE [fdo#103359] / [k.org#198133]
* igt@kms_universal_plane@universal-plane-gen9-features-pipe-e:
- shard-snb: NOTRUN -> SKIP [fdo#109271] / [fdo#109278] +6
#### Possible fixes ####
* igt@gem_softpin@noreloc-s3:
- shard-skl: INCOMPLETE [fdo#104108] / [fdo#107773] -> PASS
* igt@gem_tiled_pread_pwrite:
- shard-iclb: TIMEOUT [fdo#109673] -> PASS
* igt@kms_color@pipe-a-degamma:
- shard-glk: FAIL [fdo#104782] / [fdo#108145] -> PASS
* igt@kms_color@pipe-c-degamma:
- shard-glk: FAIL [fdo#104782] -> PASS +1
* igt@kms_cursor_crc@cursor-256x85-random:
- shard-skl: FAIL [fdo#103232] -> PASS
* igt@kms_flip@flip-vs-suspend-interruptible:
- shard-skl: INCOMPLETE [fdo#109507] -> PASS
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-pwrite:
- shard-iclb: FAIL [fdo#103167] -> PASS +3
* igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-blt:
- shard-skl: FAIL [fdo#103167] -> PASS +2
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-msflip-blt:
- shard-iclb: FAIL [fdo#109247] -> PASS +7
* igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
- shard-skl: FAIL [fdo#103191] / [fdo#107362] -> PASS
* igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min:
- shard-skl: FAIL [fdo#108145] -> PASS
* igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
- shard-skl: FAIL [fdo#107815] -> PASS
* igt@kms_plane_scaling@pipe-c-scaler-with-pixel-format:
- shard-glk: SKIP [fdo#109271] / [fdo#109278] -> PASS
* igt@kms_psr@primary_blt:
- shard-iclb: FAIL [fdo#107383] / [fdo#110215] -> PASS +1
* igt@kms_rotation_crc@multiplane-rotation-cropping-bottom:
- shard-kbl: DMESG-FAIL [fdo#105763] -> PASS
* igt@kms_setmode@basic:
- shard-apl: FAIL [fdo#99912] -> PASS
* igt@kms_vblank@pipe-b-ts-continuation-dpms-suspend:
- shard-skl: INCOMPLETE [fdo#104108] -> PASS
* igt@kms_vblank@pipe-c-ts-continuation-suspend:
- shard-iclb: FAIL [fdo#104894] -> PASS
#### Warnings ####
* igt@gem_tiled_swapping@non-threaded:
- shard-iclb: FAIL [fdo#108686] -> INCOMPLETE [fdo#110197]
* igt@kms_dp_dsc@basic-dsc-enable-edp:
- shard-iclb: FAIL [fdo#110270] -> SKIP [fdo#109349]
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-render:
- shard-apl: SKIP [fdo#109271] -> INCOMPLETE [fdo#103927]
* igt@runner@aborted:
- shard-glk: ( 2 FAIL ) [fdo#109373] / [k.org#202321] -> FAIL [fdo#109373] / [k.org#202321]
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#102887]: https://bugs.freedesktop.org/show_bug.cgi?id=102887
[fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
[fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
[fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
[fdo#103359]: https://bugs.freedesktop.org/show_bug.cgi?id=103359
[fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
[fdo#104108]: https://bugs.freedesktop.org/show_bug.cgi?id=104108
[fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782
[fdo#104894]: https://bugs.freedesktop.org/show_bug.cgi?id=104894
[fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363
[fdo#105763]: https://bugs.freedesktop.org/show_bug.cgi?id=105763
[fdo#106641]: https://bugs.freedesktop.org/show_bug.cgi?id=106641
[fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362
[fdo#107383]: https://bugs.freedesktop.org/show_bug.cgi?id=107383
[fdo#107773]: https://bugs.freedesktop.org/show_bug.cgi?id=107773
[fdo#107807]: https://bugs.freedesktop.org/show_bug.cgi?id=107807
[fdo#107815]: https://bugs.freedesktop.org/show_bug.cgi?id=107815
[fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
[fdo#108686]: https://bugs.freedesktop.org/show_bug.cgi?id=108686
[fdo#109247]: https://bugs.freedesktop.org/show_bug.cgi?id=109247
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
[fdo#109349]: https://bugs.freedesktop.org/show_bug.cgi?id=109349
[fdo#109373]: https://bugs.freedesktop.org/show_bug.cgi?id=109373
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[fdo#109507]: https://bugs.freedesktop.org/show_bug.cgi?id=109507
[fdo#109673]: https://bugs.freedesktop.org/show_bug.cgi?id=109673
[fdo#110026]: https://bugs.freedesktop.org/show_bug.cgi?id=110026
[fdo#110040 ]: https://bugs.freedesktop.org/show_bug.cgi?id=110040
[fdo#110197]: https://bugs.freedesktop.org/show_bug.cgi?id=110197
[fdo#110215]: https://bugs.freedesktop.org/show_bug.cgi?id=110215
[fdo#110222]: https://bugs.freedesktop.org/show_bug.cgi?id=110222
[fdo#110270]: https://bugs.freedesktop.org/show_bug.cgi?id=110270
[fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912
[k.org#198133]: https://bugzilla.kernel.org/show_bug.cgi?id=198133
[k.org#202321]: https://bugzilla.kernel.org/show_bug.cgi?id=202321
Participating hosts (10 -> 9)
------------------------------
Missing (1): shard-hsw
Build changes
-------------
* Linux: CI_DRM_5829 -> Patchwork_12618
CI_DRM_5829: 32a1e283d330638d2e5de8f89a9ff7c8512b75e8 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_4909: 7df3eeb4f3360cd2b511c31acc1c52bd7ce6587f @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_12618: 71269f3fa54ad55d9a599264cdfb09eea6ce4243 @ git://anongit.freedesktop.org/gfx-ci/linux
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12618/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v2 00/10] drm/i915: Clean up intel_color_check()
2019-03-27 17:30 ` [PATCH v2 00/10] drm/i915: Clean up intel_color_check() Matt Roper
@ 2019-03-28 19:33 ` Ville Syrjälä
0 siblings, 0 replies; 16+ messages in thread
From: Ville Syrjälä @ 2019-03-28 19:33 UTC (permalink / raw)
To: Matt Roper; +Cc: intel-gfx
On Wed, Mar 27, 2019 at 10:30:18AM -0700, Matt Roper wrote:
> On Wed, Mar 27, 2019 at 05:50:35PM +0200, Ville Syrjala wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >
> > Repost of the earlier series to clean up intel_color_check().
> > I tried to address all of Matt's review comments (thanks!).
> >
> > All reviewed except patch 8.
>
> Patch 8 (and the rest of the series):
>
> Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Awesome. Thanks for reviewing this. Series pushed to dinq.
>
> > Ville Syrjälä (10):
> > drm/i915: Extract check_luts()
> > drm/i915: Turn intel_color_check() into a vfunc
> > drm/i915: Extract i9xx_color_check()
> > drm/i915: Extract chv_color_check()
> > drm/i915: Extract icl_color_check()
> > drm/i915: Extract glk_color_check()
> > drm/i915: Extract bdw_color_check()
> > drm/i915: Extract ilk_color_check()
> > drm/i915: Drop the pointless linear legacy LUT load on CHV
> > drm/i915: Skip the linear degamma LUT load on ICL+
> >
> > drivers/gpu/drm/i915/i915_drv.h | 1 +
> > drivers/gpu/drm/i915/intel_color.c | 416 +++++++++++++++++++++--------
> > 2 files changed, 311 insertions(+), 106 deletions(-)
> >
> > --
> > 2.19.2
> >
>
> --
> Matt Roper
> Graphics Software Engineer
> IoTG Platform Enabling & Development
> Intel Corporation
> (916) 356-2795
--
Ville Syrjälä
Intel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2019-03-28 19:33 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-03-27 15:50 [PATCH v2 00/10] drm/i915: Clean up intel_color_check() Ville Syrjala
2019-03-27 15:50 ` [PATCH v2 01/10] drm/i915: Extract check_luts() Ville Syrjala
2019-03-27 15:50 ` [PATCH v2 02/10] drm/i915: Turn intel_color_check() into a vfunc Ville Syrjala
2019-03-27 15:50 ` [PATCH v2 03/10] drm/i915: Extract i9xx_color_check() Ville Syrjala
2019-03-27 15:50 ` [PATCH v2 04/10] drm/i915: Extract chv_color_check() Ville Syrjala
2019-03-27 15:50 ` [PATCH v2 05/10] drm/i915: Extract icl_color_check() Ville Syrjala
2019-03-27 15:50 ` [PATCH v2 06/10] drm/i915: Extract glk_color_check() Ville Syrjala
2019-03-27 15:50 ` [PATCH v2 07/10] drm/i915: Extract bdw_color_check() Ville Syrjala
2019-03-27 15:50 ` [PATCH v2 08/10] drm/i915: Extract ilk_color_check() Ville Syrjala
2019-03-27 15:50 ` [PATCH v2 09/10] drm/i915: Drop the pointless linear legacy LUT load on CHV Ville Syrjala
2019-03-27 15:50 ` [PATCH v2 10/10] drm/i915: Skip the linear degamma LUT load on ICL+ Ville Syrjala
2019-03-27 17:30 ` [PATCH v2 00/10] drm/i915: Clean up intel_color_check() Matt Roper
2019-03-28 19:33 ` Ville Syrjälä
2019-03-27 20:07 ` ✗ Fi.CI.SPARSE: warning for drm/i915: Clean up intel_color_check() (rev2) Patchwork
2019-03-27 21:00 ` ✓ Fi.CI.BAT: success " Patchwork
2019-03-28 17:38 ` ✓ Fi.CI.IGT: " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox