* [PATCH v6 0/4] Enable second DBuf slice for ICL and TGL
@ 2019-11-27 14:41 Stanislav Lisovskiy
2019-11-27 14:41 ` [Intel-gfx] " Stanislav Lisovskiy
` (7 more replies)
0 siblings, 8 replies; 22+ messages in thread
From: Stanislav Lisovskiy @ 2019-11-27 14:41 UTC (permalink / raw)
To: intel-gfx
Those patch series, do some initial preparation DBuf manipulating code
cleanups, i.e remove redundant structures/code, switch to mask
based DBuf manupulation, get into use DBuf assignment according to
BSpec rules.
Stanislav Lisovskiy (4):
drm/i915: Remove skl_ddl_allocation struct
drm/i915: Move dbuf slice update to proper place
drm/i915: Manipulate DBuf slices properly
drm/i915: Correctly map DBUF slices to pipes
drivers/gpu/drm/i915/display/intel_display.c | 47 ++-
.../drm/i915/display/intel_display_power.c | 100 +++----
.../drm/i915/display/intel_display_power.h | 5 +
drivers/gpu/drm/i915/i915_drv.h | 6 +-
drivers/gpu/drm/i915/i915_pci.c | 6 +-
drivers/gpu/drm/i915/intel_device_info.h | 1 +
drivers/gpu/drm/i915/intel_pm.c | 281 +++++++++++++++---
drivers/gpu/drm/i915/intel_pm.h | 4 +-
8 files changed, 327 insertions(+), 123 deletions(-)
--
2.17.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Intel-gfx] [PATCH v6 0/4] Enable second DBuf slice for ICL and TGL
2019-11-27 14:41 [PATCH v6 0/4] Enable second DBuf slice for ICL and TGL Stanislav Lisovskiy
@ 2019-11-27 14:41 ` Stanislav Lisovskiy
2019-11-27 14:41 ` [PATCH v6 1/4] drm/i915: Remove skl_ddl_allocation struct Stanislav Lisovskiy
` (6 subsequent siblings)
7 siblings, 0 replies; 22+ messages in thread
From: Stanislav Lisovskiy @ 2019-11-27 14:41 UTC (permalink / raw)
To: intel-gfx
Those patch series, do some initial preparation DBuf manipulating code
cleanups, i.e remove redundant structures/code, switch to mask
based DBuf manupulation, get into use DBuf assignment according to
BSpec rules.
Stanislav Lisovskiy (4):
drm/i915: Remove skl_ddl_allocation struct
drm/i915: Move dbuf slice update to proper place
drm/i915: Manipulate DBuf slices properly
drm/i915: Correctly map DBUF slices to pipes
drivers/gpu/drm/i915/display/intel_display.c | 47 ++-
.../drm/i915/display/intel_display_power.c | 100 +++----
.../drm/i915/display/intel_display_power.h | 5 +
drivers/gpu/drm/i915/i915_drv.h | 6 +-
drivers/gpu/drm/i915/i915_pci.c | 6 +-
drivers/gpu/drm/i915/intel_device_info.h | 1 +
drivers/gpu/drm/i915/intel_pm.c | 281 +++++++++++++++---
drivers/gpu/drm/i915/intel_pm.h | 4 +-
8 files changed, 327 insertions(+), 123 deletions(-)
--
2.17.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v6 1/4] drm/i915: Remove skl_ddl_allocation struct
2019-11-27 14:41 [PATCH v6 0/4] Enable second DBuf slice for ICL and TGL Stanislav Lisovskiy
2019-11-27 14:41 ` [Intel-gfx] " Stanislav Lisovskiy
@ 2019-11-27 14:41 ` Stanislav Lisovskiy
2019-11-27 14:41 ` [Intel-gfx] " Stanislav Lisovskiy
2019-11-28 16:13 ` Ville Syrjälä
2019-11-27 14:41 ` [PATCH v6 2/4] drm/i915: Move dbuf slice update to proper place Stanislav Lisovskiy
` (5 subsequent siblings)
7 siblings, 2 replies; 22+ messages in thread
From: Stanislav Lisovskiy @ 2019-11-27 14:41 UTC (permalink / raw)
To: intel-gfx
Current consensus that it is redundant as
we already have skl_ddb_values struct out there,
also this struct contains only single member
which makes it unnecessary.
Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
---
drivers/gpu/drm/i915/display/intel_display.c | 10 +++++-----
.../gpu/drm/i915/display/intel_display_power.c | 8 ++++----
drivers/gpu/drm/i915/i915_drv.h | 6 +-----
drivers/gpu/drm/i915/intel_pm.c | 15 +++++++--------
drivers/gpu/drm/i915/intel_pm.h | 4 ++--
5 files changed, 19 insertions(+), 24 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 53dc310a5f6d..530832067113 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -13393,10 +13393,10 @@ static void verify_wm_state(struct intel_crtc *crtc,
struct skl_hw_state {
struct skl_ddb_entry ddb_y[I915_MAX_PLANES];
struct skl_ddb_entry ddb_uv[I915_MAX_PLANES];
- struct skl_ddb_allocation ddb;
+ struct skl_ddb_values ddb;
struct skl_pipe_wm wm;
} *hw;
- struct skl_ddb_allocation *sw_ddb;
+ struct skl_ddb_values *sw_ddb;
struct skl_pipe_wm *sw_wm;
struct skl_ddb_entry *hw_ddb_entry, *sw_ddb_entry;
const enum pipe pipe = crtc->pipe;
@@ -13415,7 +13415,7 @@ static void verify_wm_state(struct intel_crtc *crtc,
skl_pipe_ddb_get_hw_state(crtc, hw->ddb_y, hw->ddb_uv);
skl_ddb_get_hw_state(dev_priv, &hw->ddb);
- sw_ddb = &dev_priv->wm.skl_hw.ddb;
+ sw_ddb = &dev_priv->wm.skl_hw;
if (INTEL_GEN(dev_priv) >= 11 &&
hw->ddb.enabled_slices != sw_ddb->enabled_slices)
@@ -14647,8 +14647,8 @@ static void skl_commit_modeset_enables(struct intel_atomic_state *state)
unsigned int updated = 0;
bool progress;
int i;
- u8 hw_enabled_slices = dev_priv->wm.skl_hw.ddb.enabled_slices;
- u8 required_slices = state->wm_results.ddb.enabled_slices;
+ u8 hw_enabled_slices = dev_priv->wm.skl_hw.enabled_slices;
+ u8 required_slices = state->wm_results.enabled_slices;
struct skl_ddb_entry entries[I915_MAX_PIPES] = {};
for_each_oldnew_intel_crtc_in_state(state, crtc, old_crtc_state, new_crtc_state, i)
diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c b/drivers/gpu/drm/i915/display/intel_display_power.c
index ce1b64f4dd44..75198da13479 100644
--- a/drivers/gpu/drm/i915/display/intel_display_power.c
+++ b/drivers/gpu/drm/i915/display/intel_display_power.c
@@ -4264,7 +4264,7 @@ static u8 intel_dbuf_max_slices(struct drm_i915_private *dev_priv)
void icl_dbuf_slices_update(struct drm_i915_private *dev_priv,
u8 req_slices)
{
- const u8 hw_enabled_slices = dev_priv->wm.skl_hw.ddb.enabled_slices;
+ const u8 hw_enabled_slices = dev_priv->wm.skl_hw.enabled_slices;
bool ret;
if (req_slices > intel_dbuf_max_slices(dev_priv)) {
@@ -4281,7 +4281,7 @@ void icl_dbuf_slices_update(struct drm_i915_private *dev_priv,
ret = intel_dbuf_slice_set(dev_priv, DBUF_CTL_S2, false);
if (ret)
- dev_priv->wm.skl_hw.ddb.enabled_slices = req_slices;
+ dev_priv->wm.skl_hw.enabled_slices = req_slices;
}
static void icl_dbuf_enable(struct drm_i915_private *dev_priv)
@@ -4300,7 +4300,7 @@ static void icl_dbuf_enable(struct drm_i915_private *dev_priv)
* FIXME: for now pretend that we only have 1 slice, see
* intel_enabled_dbuf_slices_num().
*/
- dev_priv->wm.skl_hw.ddb.enabled_slices = 1;
+ dev_priv->wm.skl_hw.enabled_slices = 1;
}
static void icl_dbuf_disable(struct drm_i915_private *dev_priv)
@@ -4319,7 +4319,7 @@ static void icl_dbuf_disable(struct drm_i915_private *dev_priv)
* FIXME: for now pretend that the first slice is always
* enabled, see intel_enabled_dbuf_slices_num().
*/
- dev_priv->wm.skl_hw.ddb.enabled_slices = 1;
+ dev_priv->wm.skl_hw.enabled_slices = 1;
}
static void icl_mbus_init(struct drm_i915_private *dev_priv)
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index fdae5a919bc8..6457f8e557a2 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -798,13 +798,9 @@ static inline bool skl_ddb_entry_equal(const struct skl_ddb_entry *e1,
return false;
}
-struct skl_ddb_allocation {
- u8 enabled_slices; /* GEN11 has configurable 2 slices */
-};
-
struct skl_ddb_values {
unsigned dirty_pipes;
- struct skl_ddb_allocation ddb;
+ u8 enabled_slices; /* GEN11 has configurable 2 slices */
};
struct skl_wm_level {
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 5aad9d49a528..3857ec3d2bd6 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -3823,7 +3823,7 @@ static u16 intel_get_ddb_size(struct drm_i915_private *dev_priv,
const struct intel_crtc_state *crtc_state,
const u64 total_data_rate,
const int num_active,
- struct skl_ddb_allocation *ddb)
+ struct skl_ddb_values *ddb)
{
const struct drm_display_mode *adjusted_mode;
u64 total_data_bw;
@@ -3859,7 +3859,7 @@ static void
skl_ddb_get_pipe_allocation_limits(struct drm_i915_private *dev_priv,
const struct intel_crtc_state *crtc_state,
const u64 total_data_rate,
- struct skl_ddb_allocation *ddb,
+ struct skl_ddb_values *ddb,
struct skl_ddb_entry *alloc, /* out */
int *num_active /* out */)
{
@@ -4047,7 +4047,7 @@ void skl_pipe_ddb_get_hw_state(struct intel_crtc *crtc,
}
void skl_ddb_get_hw_state(struct drm_i915_private *dev_priv,
- struct skl_ddb_allocation *ddb /* out */)
+ struct skl_ddb_values *ddb /* out */)
{
ddb->enabled_slices = intel_enabled_dbuf_slices_num(dev_priv);
}
@@ -4227,7 +4227,7 @@ icl_get_total_relative_data_rate(struct intel_crtc_state *crtc_state,
static int
skl_allocate_pipe_ddb(struct intel_crtc_state *crtc_state,
- struct skl_ddb_allocation *ddb /* out */)
+ struct skl_ddb_values *ddb /* out */)
{
struct drm_atomic_state *state = crtc_state->uapi.state;
struct drm_crtc *crtc = crtc_state->uapi.crtc;
@@ -5184,13 +5184,13 @@ static int
skl_compute_ddb(struct intel_atomic_state *state)
{
const struct drm_i915_private *dev_priv = to_i915(state->base.dev);
- struct skl_ddb_allocation *ddb = &state->wm_results.ddb;
+ struct skl_ddb_values *ddb = &state->wm_results;
struct intel_crtc_state *old_crtc_state;
struct intel_crtc_state *new_crtc_state;
struct intel_crtc *crtc;
int ret, i;
- memcpy(ddb, &dev_priv->wm.skl_hw.ddb, sizeof(*ddb));
+ memcpy(ddb, &dev_priv->wm.skl_hw, sizeof(*ddb));
for_each_oldnew_intel_crtc_in_state(state, crtc, old_crtc_state,
new_crtc_state, i) {
@@ -5666,11 +5666,10 @@ void skl_pipe_wm_get_hw_state(struct intel_crtc *crtc,
void skl_wm_get_hw_state(struct drm_i915_private *dev_priv)
{
struct skl_ddb_values *hw = &dev_priv->wm.skl_hw;
- struct skl_ddb_allocation *ddb = &dev_priv->wm.skl_hw.ddb;
struct intel_crtc *crtc;
struct intel_crtc_state *crtc_state;
- skl_ddb_get_hw_state(dev_priv, ddb);
+ skl_ddb_get_hw_state(dev_priv, hw);
for_each_intel_crtc(&dev_priv->drm, crtc) {
crtc_state = to_intel_crtc_state(crtc->base.state);
diff --git a/drivers/gpu/drm/i915/intel_pm.h b/drivers/gpu/drm/i915/intel_pm.h
index b579c724b915..1d03732ff22e 100644
--- a/drivers/gpu/drm/i915/intel_pm.h
+++ b/drivers/gpu/drm/i915/intel_pm.h
@@ -17,8 +17,8 @@ struct intel_atomic_state;
struct intel_crtc;
struct intel_crtc_state;
struct intel_plane;
-struct skl_ddb_allocation;
struct skl_ddb_entry;
+struct skl_ddb_values;
struct skl_pipe_wm;
struct skl_wm_level;
@@ -37,7 +37,7 @@ void skl_pipe_ddb_get_hw_state(struct intel_crtc *crtc,
struct skl_ddb_entry *ddb_y,
struct skl_ddb_entry *ddb_uv);
void skl_ddb_get_hw_state(struct drm_i915_private *dev_priv,
- struct skl_ddb_allocation *ddb /* out */);
+ struct skl_ddb_values *ddb /* out */);
void skl_pipe_wm_get_hw_state(struct intel_crtc *crtc,
struct skl_pipe_wm *out);
void g4x_wm_sanitize(struct drm_i915_private *dev_priv);
--
2.17.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [Intel-gfx] [PATCH v6 1/4] drm/i915: Remove skl_ddl_allocation struct
2019-11-27 14:41 ` [PATCH v6 1/4] drm/i915: Remove skl_ddl_allocation struct Stanislav Lisovskiy
@ 2019-11-27 14:41 ` Stanislav Lisovskiy
2019-11-28 16:13 ` Ville Syrjälä
1 sibling, 0 replies; 22+ messages in thread
From: Stanislav Lisovskiy @ 2019-11-27 14:41 UTC (permalink / raw)
To: intel-gfx
Current consensus that it is redundant as
we already have skl_ddb_values struct out there,
also this struct contains only single member
which makes it unnecessary.
Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
---
drivers/gpu/drm/i915/display/intel_display.c | 10 +++++-----
.../gpu/drm/i915/display/intel_display_power.c | 8 ++++----
drivers/gpu/drm/i915/i915_drv.h | 6 +-----
drivers/gpu/drm/i915/intel_pm.c | 15 +++++++--------
drivers/gpu/drm/i915/intel_pm.h | 4 ++--
5 files changed, 19 insertions(+), 24 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 53dc310a5f6d..530832067113 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -13393,10 +13393,10 @@ static void verify_wm_state(struct intel_crtc *crtc,
struct skl_hw_state {
struct skl_ddb_entry ddb_y[I915_MAX_PLANES];
struct skl_ddb_entry ddb_uv[I915_MAX_PLANES];
- struct skl_ddb_allocation ddb;
+ struct skl_ddb_values ddb;
struct skl_pipe_wm wm;
} *hw;
- struct skl_ddb_allocation *sw_ddb;
+ struct skl_ddb_values *sw_ddb;
struct skl_pipe_wm *sw_wm;
struct skl_ddb_entry *hw_ddb_entry, *sw_ddb_entry;
const enum pipe pipe = crtc->pipe;
@@ -13415,7 +13415,7 @@ static void verify_wm_state(struct intel_crtc *crtc,
skl_pipe_ddb_get_hw_state(crtc, hw->ddb_y, hw->ddb_uv);
skl_ddb_get_hw_state(dev_priv, &hw->ddb);
- sw_ddb = &dev_priv->wm.skl_hw.ddb;
+ sw_ddb = &dev_priv->wm.skl_hw;
if (INTEL_GEN(dev_priv) >= 11 &&
hw->ddb.enabled_slices != sw_ddb->enabled_slices)
@@ -14647,8 +14647,8 @@ static void skl_commit_modeset_enables(struct intel_atomic_state *state)
unsigned int updated = 0;
bool progress;
int i;
- u8 hw_enabled_slices = dev_priv->wm.skl_hw.ddb.enabled_slices;
- u8 required_slices = state->wm_results.ddb.enabled_slices;
+ u8 hw_enabled_slices = dev_priv->wm.skl_hw.enabled_slices;
+ u8 required_slices = state->wm_results.enabled_slices;
struct skl_ddb_entry entries[I915_MAX_PIPES] = {};
for_each_oldnew_intel_crtc_in_state(state, crtc, old_crtc_state, new_crtc_state, i)
diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c b/drivers/gpu/drm/i915/display/intel_display_power.c
index ce1b64f4dd44..75198da13479 100644
--- a/drivers/gpu/drm/i915/display/intel_display_power.c
+++ b/drivers/gpu/drm/i915/display/intel_display_power.c
@@ -4264,7 +4264,7 @@ static u8 intel_dbuf_max_slices(struct drm_i915_private *dev_priv)
void icl_dbuf_slices_update(struct drm_i915_private *dev_priv,
u8 req_slices)
{
- const u8 hw_enabled_slices = dev_priv->wm.skl_hw.ddb.enabled_slices;
+ const u8 hw_enabled_slices = dev_priv->wm.skl_hw.enabled_slices;
bool ret;
if (req_slices > intel_dbuf_max_slices(dev_priv)) {
@@ -4281,7 +4281,7 @@ void icl_dbuf_slices_update(struct drm_i915_private *dev_priv,
ret = intel_dbuf_slice_set(dev_priv, DBUF_CTL_S2, false);
if (ret)
- dev_priv->wm.skl_hw.ddb.enabled_slices = req_slices;
+ dev_priv->wm.skl_hw.enabled_slices = req_slices;
}
static void icl_dbuf_enable(struct drm_i915_private *dev_priv)
@@ -4300,7 +4300,7 @@ static void icl_dbuf_enable(struct drm_i915_private *dev_priv)
* FIXME: for now pretend that we only have 1 slice, see
* intel_enabled_dbuf_slices_num().
*/
- dev_priv->wm.skl_hw.ddb.enabled_slices = 1;
+ dev_priv->wm.skl_hw.enabled_slices = 1;
}
static void icl_dbuf_disable(struct drm_i915_private *dev_priv)
@@ -4319,7 +4319,7 @@ static void icl_dbuf_disable(struct drm_i915_private *dev_priv)
* FIXME: for now pretend that the first slice is always
* enabled, see intel_enabled_dbuf_slices_num().
*/
- dev_priv->wm.skl_hw.ddb.enabled_slices = 1;
+ dev_priv->wm.skl_hw.enabled_slices = 1;
}
static void icl_mbus_init(struct drm_i915_private *dev_priv)
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index fdae5a919bc8..6457f8e557a2 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -798,13 +798,9 @@ static inline bool skl_ddb_entry_equal(const struct skl_ddb_entry *e1,
return false;
}
-struct skl_ddb_allocation {
- u8 enabled_slices; /* GEN11 has configurable 2 slices */
-};
-
struct skl_ddb_values {
unsigned dirty_pipes;
- struct skl_ddb_allocation ddb;
+ u8 enabled_slices; /* GEN11 has configurable 2 slices */
};
struct skl_wm_level {
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 5aad9d49a528..3857ec3d2bd6 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -3823,7 +3823,7 @@ static u16 intel_get_ddb_size(struct drm_i915_private *dev_priv,
const struct intel_crtc_state *crtc_state,
const u64 total_data_rate,
const int num_active,
- struct skl_ddb_allocation *ddb)
+ struct skl_ddb_values *ddb)
{
const struct drm_display_mode *adjusted_mode;
u64 total_data_bw;
@@ -3859,7 +3859,7 @@ static void
skl_ddb_get_pipe_allocation_limits(struct drm_i915_private *dev_priv,
const struct intel_crtc_state *crtc_state,
const u64 total_data_rate,
- struct skl_ddb_allocation *ddb,
+ struct skl_ddb_values *ddb,
struct skl_ddb_entry *alloc, /* out */
int *num_active /* out */)
{
@@ -4047,7 +4047,7 @@ void skl_pipe_ddb_get_hw_state(struct intel_crtc *crtc,
}
void skl_ddb_get_hw_state(struct drm_i915_private *dev_priv,
- struct skl_ddb_allocation *ddb /* out */)
+ struct skl_ddb_values *ddb /* out */)
{
ddb->enabled_slices = intel_enabled_dbuf_slices_num(dev_priv);
}
@@ -4227,7 +4227,7 @@ icl_get_total_relative_data_rate(struct intel_crtc_state *crtc_state,
static int
skl_allocate_pipe_ddb(struct intel_crtc_state *crtc_state,
- struct skl_ddb_allocation *ddb /* out */)
+ struct skl_ddb_values *ddb /* out */)
{
struct drm_atomic_state *state = crtc_state->uapi.state;
struct drm_crtc *crtc = crtc_state->uapi.crtc;
@@ -5184,13 +5184,13 @@ static int
skl_compute_ddb(struct intel_atomic_state *state)
{
const struct drm_i915_private *dev_priv = to_i915(state->base.dev);
- struct skl_ddb_allocation *ddb = &state->wm_results.ddb;
+ struct skl_ddb_values *ddb = &state->wm_results;
struct intel_crtc_state *old_crtc_state;
struct intel_crtc_state *new_crtc_state;
struct intel_crtc *crtc;
int ret, i;
- memcpy(ddb, &dev_priv->wm.skl_hw.ddb, sizeof(*ddb));
+ memcpy(ddb, &dev_priv->wm.skl_hw, sizeof(*ddb));
for_each_oldnew_intel_crtc_in_state(state, crtc, old_crtc_state,
new_crtc_state, i) {
@@ -5666,11 +5666,10 @@ void skl_pipe_wm_get_hw_state(struct intel_crtc *crtc,
void skl_wm_get_hw_state(struct drm_i915_private *dev_priv)
{
struct skl_ddb_values *hw = &dev_priv->wm.skl_hw;
- struct skl_ddb_allocation *ddb = &dev_priv->wm.skl_hw.ddb;
struct intel_crtc *crtc;
struct intel_crtc_state *crtc_state;
- skl_ddb_get_hw_state(dev_priv, ddb);
+ skl_ddb_get_hw_state(dev_priv, hw);
for_each_intel_crtc(&dev_priv->drm, crtc) {
crtc_state = to_intel_crtc_state(crtc->base.state);
diff --git a/drivers/gpu/drm/i915/intel_pm.h b/drivers/gpu/drm/i915/intel_pm.h
index b579c724b915..1d03732ff22e 100644
--- a/drivers/gpu/drm/i915/intel_pm.h
+++ b/drivers/gpu/drm/i915/intel_pm.h
@@ -17,8 +17,8 @@ struct intel_atomic_state;
struct intel_crtc;
struct intel_crtc_state;
struct intel_plane;
-struct skl_ddb_allocation;
struct skl_ddb_entry;
+struct skl_ddb_values;
struct skl_pipe_wm;
struct skl_wm_level;
@@ -37,7 +37,7 @@ void skl_pipe_ddb_get_hw_state(struct intel_crtc *crtc,
struct skl_ddb_entry *ddb_y,
struct skl_ddb_entry *ddb_uv);
void skl_ddb_get_hw_state(struct drm_i915_private *dev_priv,
- struct skl_ddb_allocation *ddb /* out */);
+ struct skl_ddb_values *ddb /* out */);
void skl_pipe_wm_get_hw_state(struct intel_crtc *crtc,
struct skl_pipe_wm *out);
void g4x_wm_sanitize(struct drm_i915_private *dev_priv);
--
2.17.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v6 2/4] drm/i915: Move dbuf slice update to proper place
2019-11-27 14:41 [PATCH v6 0/4] Enable second DBuf slice for ICL and TGL Stanislav Lisovskiy
2019-11-27 14:41 ` [Intel-gfx] " Stanislav Lisovskiy
2019-11-27 14:41 ` [PATCH v6 1/4] drm/i915: Remove skl_ddl_allocation struct Stanislav Lisovskiy
@ 2019-11-27 14:41 ` Stanislav Lisovskiy
2019-11-27 14:41 ` [Intel-gfx] " Stanislav Lisovskiy
2019-11-27 14:41 ` [PATCH v6 3/4] drm/i915: Manipulate DBuf slices properly Stanislav Lisovskiy
` (4 subsequent siblings)
7 siblings, 1 reply; 22+ messages in thread
From: Stanislav Lisovskiy @ 2019-11-27 14:41 UTC (permalink / raw)
To: intel-gfx
Current DBuf slices update wasn't done in proper
plane, especially its "post" part, which should
disable those only once vblank had passed and
all other changes are committed.
Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
---
drivers/gpu/drm/i915/display/intel_display.c | 36 +++++++++++++++-----
1 file changed, 28 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 530832067113..0d53bf82b2df 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -14639,6 +14639,28 @@ static void intel_update_trans_port_sync_crtcs(struct intel_crtc *crtc,
state);
}
+static void icl_dbuf_slice_pre_update(struct intel_atomic_state *state)
+{
+ struct drm_i915_private *dev_priv = to_i915(state->base.dev);
+ u8 hw_enabled_slices = dev_priv->wm.skl_hw.enabled_slices;
+ u8 required_slices = state->wm_results.enabled_slices;
+
+ /* If 2nd DBuf slice required, enable it here */
+ if (INTEL_GEN(dev_priv) >= 11 && required_slices > hw_enabled_slices)
+ icl_dbuf_slices_update(dev_priv, required_slices);
+}
+
+static void icl_dbuf_slice_post_update(struct intel_atomic_state *state)
+{
+ struct drm_i915_private *dev_priv = to_i915(state->base.dev);
+ u8 hw_enabled_slices = dev_priv->wm.skl_hw.enabled_slices;
+ u8 required_slices = state->wm_results.enabled_slices;
+
+ /* If 2nd DBuf slice is no more required disable it */
+ if (INTEL_GEN(dev_priv) >= 11 && required_slices < hw_enabled_slices)
+ icl_dbuf_slices_update(dev_priv, required_slices);
+}
+
static void skl_commit_modeset_enables(struct intel_atomic_state *state)
{
struct drm_i915_private *dev_priv = to_i915(state->base.dev);
@@ -14656,10 +14678,6 @@ static void skl_commit_modeset_enables(struct intel_atomic_state *state)
if (new_crtc_state->hw.active)
entries[i] = old_crtc_state->wm.skl.ddb;
- /* If 2nd DBuf slice required, enable it here */
- if (INTEL_GEN(dev_priv) >= 11 && required_slices > hw_enabled_slices)
- icl_dbuf_slices_update(dev_priv, required_slices);
-
/*
* Whenever the number of active pipes changes, we need to make sure we
* update the pipes in the right order so that their ddb allocations
@@ -14716,10 +14734,6 @@ static void skl_commit_modeset_enables(struct intel_atomic_state *state)
progress = true;
}
} while (progress);
-
- /* If 2nd DBuf slice is no more required disable it */
- if (INTEL_GEN(dev_priv) >= 11 && required_slices < hw_enabled_slices)
- icl_dbuf_slices_update(dev_priv, required_slices);
}
static void intel_atomic_helper_free_state(struct drm_i915_private *dev_priv)
@@ -14849,6 +14863,9 @@ static void intel_atomic_commit_tail(struct intel_atomic_state *state)
if (state->modeset)
intel_encoders_update_prepare(state);
+ /* Enable all new slices, we might need */
+ icl_dbuf_slice_pre_update(state);
+
/* Now enable the clocks, plane, pipe, and connectors that we set up. */
dev_priv->display.commit_modeset_enables(state);
@@ -14908,6 +14925,9 @@ static void intel_atomic_commit_tail(struct intel_atomic_state *state)
if (state->modeset && intel_can_enable_sagv(state))
intel_enable_sagv(dev_priv);
+ /* Disable all slices, we don't need */
+ icl_dbuf_slice_post_update(state);
+
drm_atomic_helper_commit_hw_done(&state->base);
if (state->modeset) {
--
2.17.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [Intel-gfx] [PATCH v6 2/4] drm/i915: Move dbuf slice update to proper place
2019-11-27 14:41 ` [PATCH v6 2/4] drm/i915: Move dbuf slice update to proper place Stanislav Lisovskiy
@ 2019-11-27 14:41 ` Stanislav Lisovskiy
0 siblings, 0 replies; 22+ messages in thread
From: Stanislav Lisovskiy @ 2019-11-27 14:41 UTC (permalink / raw)
To: intel-gfx
Current DBuf slices update wasn't done in proper
plane, especially its "post" part, which should
disable those only once vblank had passed and
all other changes are committed.
Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
---
drivers/gpu/drm/i915/display/intel_display.c | 36 +++++++++++++++-----
1 file changed, 28 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 530832067113..0d53bf82b2df 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -14639,6 +14639,28 @@ static void intel_update_trans_port_sync_crtcs(struct intel_crtc *crtc,
state);
}
+static void icl_dbuf_slice_pre_update(struct intel_atomic_state *state)
+{
+ struct drm_i915_private *dev_priv = to_i915(state->base.dev);
+ u8 hw_enabled_slices = dev_priv->wm.skl_hw.enabled_slices;
+ u8 required_slices = state->wm_results.enabled_slices;
+
+ /* If 2nd DBuf slice required, enable it here */
+ if (INTEL_GEN(dev_priv) >= 11 && required_slices > hw_enabled_slices)
+ icl_dbuf_slices_update(dev_priv, required_slices);
+}
+
+static void icl_dbuf_slice_post_update(struct intel_atomic_state *state)
+{
+ struct drm_i915_private *dev_priv = to_i915(state->base.dev);
+ u8 hw_enabled_slices = dev_priv->wm.skl_hw.enabled_slices;
+ u8 required_slices = state->wm_results.enabled_slices;
+
+ /* If 2nd DBuf slice is no more required disable it */
+ if (INTEL_GEN(dev_priv) >= 11 && required_slices < hw_enabled_slices)
+ icl_dbuf_slices_update(dev_priv, required_slices);
+}
+
static void skl_commit_modeset_enables(struct intel_atomic_state *state)
{
struct drm_i915_private *dev_priv = to_i915(state->base.dev);
@@ -14656,10 +14678,6 @@ static void skl_commit_modeset_enables(struct intel_atomic_state *state)
if (new_crtc_state->hw.active)
entries[i] = old_crtc_state->wm.skl.ddb;
- /* If 2nd DBuf slice required, enable it here */
- if (INTEL_GEN(dev_priv) >= 11 && required_slices > hw_enabled_slices)
- icl_dbuf_slices_update(dev_priv, required_slices);
-
/*
* Whenever the number of active pipes changes, we need to make sure we
* update the pipes in the right order so that their ddb allocations
@@ -14716,10 +14734,6 @@ static void skl_commit_modeset_enables(struct intel_atomic_state *state)
progress = true;
}
} while (progress);
-
- /* If 2nd DBuf slice is no more required disable it */
- if (INTEL_GEN(dev_priv) >= 11 && required_slices < hw_enabled_slices)
- icl_dbuf_slices_update(dev_priv, required_slices);
}
static void intel_atomic_helper_free_state(struct drm_i915_private *dev_priv)
@@ -14849,6 +14863,9 @@ static void intel_atomic_commit_tail(struct intel_atomic_state *state)
if (state->modeset)
intel_encoders_update_prepare(state);
+ /* Enable all new slices, we might need */
+ icl_dbuf_slice_pre_update(state);
+
/* Now enable the clocks, plane, pipe, and connectors that we set up. */
dev_priv->display.commit_modeset_enables(state);
@@ -14908,6 +14925,9 @@ static void intel_atomic_commit_tail(struct intel_atomic_state *state)
if (state->modeset && intel_can_enable_sagv(state))
intel_enable_sagv(dev_priv);
+ /* Disable all slices, we don't need */
+ icl_dbuf_slice_post_update(state);
+
drm_atomic_helper_commit_hw_done(&state->base);
if (state->modeset) {
--
2.17.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v6 3/4] drm/i915: Manipulate DBuf slices properly
2019-11-27 14:41 [PATCH v6 0/4] Enable second DBuf slice for ICL and TGL Stanislav Lisovskiy
` (2 preceding siblings ...)
2019-11-27 14:41 ` [PATCH v6 2/4] drm/i915: Move dbuf slice update to proper place Stanislav Lisovskiy
@ 2019-11-27 14:41 ` Stanislav Lisovskiy
2019-11-27 14:41 ` [Intel-gfx] " Stanislav Lisovskiy
2019-11-27 14:41 ` [PATCH v6 4/4] drm/i915: Correctly map DBUF slices to pipes Stanislav Lisovskiy
` (3 subsequent siblings)
7 siblings, 1 reply; 22+ messages in thread
From: Stanislav Lisovskiy @ 2019-11-27 14:41 UTC (permalink / raw)
To: intel-gfx
Start manipulating DBuf slices as a mask,
but not as a total number, as current approach
doesn't give us full control on all combinations
of slices, which we might need(like enabling S2
only can't enabled by setting enabled_slices=1).
Removed wrong code from intel_get_ddb_size as
it doesn't match to BSpec. For now still just
use DBuf slice until proper algorithm is implemented.
Other minor code refactoring to get prepared
for major DBuf assignment changes landed:
- As now enabled slices contain a mask
we still need some value which should
reflect how much DBuf slices are supported
by the platform, now device info contains
num_supported_dbuf_slices.
- Removed unneeded assertion as we are now
manipulating slices in a more proper way.
Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
---
drivers/gpu/drm/i915/display/intel_display.c | 7 +-
.../drm/i915/display/intel_display_power.c | 100 ++++++++----------
.../drm/i915/display/intel_display_power.h | 5 +
drivers/gpu/drm/i915/i915_pci.c | 6 +-
drivers/gpu/drm/i915/intel_device_info.h | 1 +
drivers/gpu/drm/i915/intel_pm.c | 43 +++-----
6 files changed, 72 insertions(+), 90 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 0d53bf82b2df..134d20992671 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -13419,7 +13419,7 @@ static void verify_wm_state(struct intel_crtc *crtc,
if (INTEL_GEN(dev_priv) >= 11 &&
hw->ddb.enabled_slices != sw_ddb->enabled_slices)
- DRM_ERROR("mismatch in DBUF Slices (expected %u, got %u)\n",
+ DRM_ERROR("mismatch in DBUF Slices (expected %x, got %x)\n",
sw_ddb->enabled_slices,
hw->ddb.enabled_slices);
@@ -14644,10 +14644,11 @@ static void icl_dbuf_slice_pre_update(struct intel_atomic_state *state)
struct drm_i915_private *dev_priv = to_i915(state->base.dev);
u8 hw_enabled_slices = dev_priv->wm.skl_hw.enabled_slices;
u8 required_slices = state->wm_results.enabled_slices;
+ u8 slices_union = hw_enabled_slices | required_slices;
/* If 2nd DBuf slice required, enable it here */
if (INTEL_GEN(dev_priv) >= 11 && required_slices > hw_enabled_slices)
- icl_dbuf_slices_update(dev_priv, required_slices);
+ icl_dbuf_slices_update(dev_priv, slices_union);
}
static void icl_dbuf_slice_post_update(struct intel_atomic_state *state)
@@ -14669,8 +14670,6 @@ static void skl_commit_modeset_enables(struct intel_atomic_state *state)
unsigned int updated = 0;
bool progress;
int i;
- u8 hw_enabled_slices = dev_priv->wm.skl_hw.enabled_slices;
- u8 required_slices = state->wm_results.enabled_slices;
struct skl_ddb_entry entries[I915_MAX_PIPES] = {};
for_each_oldnew_intel_crtc_in_state(state, crtc, old_crtc_state, new_crtc_state, i)
diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c b/drivers/gpu/drm/i915/display/intel_display_power.c
index 75198da13479..340fc2d3147d 100644
--- a/drivers/gpu/drm/i915/display/intel_display_power.c
+++ b/drivers/gpu/drm/i915/display/intel_display_power.c
@@ -1031,15 +1031,6 @@ static bool gen9_dc_off_power_well_enabled(struct drm_i915_private *dev_priv,
(I915_READ(DC_STATE_EN) & DC_STATE_EN_UPTO_DC5_DC6_MASK) == 0);
}
-static void gen9_assert_dbuf_enabled(struct drm_i915_private *dev_priv)
-{
- u32 tmp = I915_READ(DBUF_CTL);
-
- WARN((tmp & (DBUF_POWER_STATE | DBUF_POWER_REQUEST)) !=
- (DBUF_POWER_STATE | DBUF_POWER_REQUEST),
- "Unexpected DBuf power power state (0x%08x)\n", tmp);
-}
-
static void gen9_disable_dc_states(struct drm_i915_private *dev_priv)
{
struct intel_cdclk_state cdclk_state = {};
@@ -1055,8 +1046,6 @@ static void gen9_disable_dc_states(struct drm_i915_private *dev_priv)
/* Can't read out voltage_level so can't use intel_cdclk_changed() */
WARN_ON(intel_cdclk_needs_modeset(&dev_priv->cdclk.hw, &cdclk_state));
- gen9_assert_dbuf_enabled(dev_priv);
-
if (IS_GEN9_LP(dev_priv))
bxt_verify_ddi_phy_power_wells(dev_priv);
@@ -4254,72 +4243,71 @@ static void gen9_dbuf_disable(struct drm_i915_private *dev_priv)
intel_dbuf_slice_set(dev_priv, DBUF_CTL, false);
}
-static u8 intel_dbuf_max_slices(struct drm_i915_private *dev_priv)
+int intel_dbuf_max_slices(struct drm_i915_private *dev_priv)
{
- if (INTEL_GEN(dev_priv) < 11)
- return 1;
- return 2;
+ return INTEL_INFO(dev_priv)->num_supported_dbuf_slices;
+}
+
+void icl_program_dbuf_slices(struct drm_i915_private *dev_priv)
+{
+ const u8 hw_enabled_slices = dev_priv->wm.skl_hw.enabled_slices;
+
+ icl_dbuf_slices_update(dev_priv, hw_enabled_slices);
}
void icl_dbuf_slices_update(struct drm_i915_private *dev_priv,
u8 req_slices)
{
- const u8 hw_enabled_slices = dev_priv->wm.skl_hw.enabled_slices;
- bool ret;
+ int i;
+ int max_slices = intel_dbuf_max_slices(dev_priv);
- if (req_slices > intel_dbuf_max_slices(dev_priv)) {
+ if (hweight8(req_slices) > intel_dbuf_max_slices(dev_priv)) {
DRM_ERROR("Invalid number of dbuf slices requested\n");
return;
}
- if (req_slices == hw_enabled_slices || req_slices == 0)
- return;
+ DRM_DEBUG_KMS("Updating dbuf slices to %x\n", req_slices);
- if (req_slices > hw_enabled_slices)
- ret = intel_dbuf_slice_set(dev_priv, DBUF_CTL_S2, true);
- else
- ret = intel_dbuf_slice_set(dev_priv, DBUF_CTL_S2, false);
+ for (i = 0; i < max_slices; i++) {
+ int slice_bit = BIT(i);
+ bool slice_set = (slice_bit & req_slices) != 0;
+
+ switch (slice_bit) {
+ case DBUF_S1_BIT:
+ intel_dbuf_slice_set(dev_priv,
+ DBUF_CTL_S1,
+ slice_set);
+ break;
+ case DBUF_S2_BIT:
+ intel_dbuf_slice_set(dev_priv,
+ DBUF_CTL_S2,
+ slice_set);
+ break;
+ default:
+ MISSING_CASE(slice_bit);
+ }
+ }
- if (ret)
- dev_priv->wm.skl_hw.enabled_slices = req_slices;
+ dev_priv->wm.skl_hw.enabled_slices = req_slices;
}
static void icl_dbuf_enable(struct drm_i915_private *dev_priv)
{
- I915_WRITE(DBUF_CTL_S1, I915_READ(DBUF_CTL_S1) | DBUF_POWER_REQUEST);
- I915_WRITE(DBUF_CTL_S2, I915_READ(DBUF_CTL_S2) | DBUF_POWER_REQUEST);
- POSTING_READ(DBUF_CTL_S2);
-
- udelay(10);
-
- if (!(I915_READ(DBUF_CTL_S1) & DBUF_POWER_STATE) ||
- !(I915_READ(DBUF_CTL_S2) & DBUF_POWER_STATE))
- DRM_ERROR("DBuf power enable timeout\n");
- else
- /*
- * FIXME: for now pretend that we only have 1 slice, see
- * intel_enabled_dbuf_slices_num().
- */
- dev_priv->wm.skl_hw.enabled_slices = 1;
+ /*
+ * Just power up 1 slice, we will
+ * figure out later which slices we have and what we need.
+ */
+ dev_priv->wm.skl_hw.enabled_slices = DBUF_S1_BIT;
+ icl_program_dbuf_slices(dev_priv);
}
static void icl_dbuf_disable(struct drm_i915_private *dev_priv)
{
- I915_WRITE(DBUF_CTL_S1, I915_READ(DBUF_CTL_S1) & ~DBUF_POWER_REQUEST);
- I915_WRITE(DBUF_CTL_S2, I915_READ(DBUF_CTL_S2) & ~DBUF_POWER_REQUEST);
- POSTING_READ(DBUF_CTL_S2);
-
- udelay(10);
-
- if ((I915_READ(DBUF_CTL_S1) & DBUF_POWER_STATE) ||
- (I915_READ(DBUF_CTL_S2) & DBUF_POWER_STATE))
- DRM_ERROR("DBuf power disable timeout!\n");
- else
- /*
- * FIXME: for now pretend that the first slice is always
- * enabled, see intel_enabled_dbuf_slices_num().
- */
- dev_priv->wm.skl_hw.enabled_slices = 1;
+ /*
+ * Disable all slices
+ */
+ dev_priv->wm.skl_hw.enabled_slices = 0;
+ icl_program_dbuf_slices(dev_priv);
}
static void icl_mbus_init(struct drm_i915_private *dev_priv)
diff --git a/drivers/gpu/drm/i915/display/intel_display_power.h b/drivers/gpu/drm/i915/display/intel_display_power.h
index 1da04f3e0fb3..0d9f87607eac 100644
--- a/drivers/gpu/drm/i915/display/intel_display_power.h
+++ b/drivers/gpu/drm/i915/display/intel_display_power.h
@@ -311,8 +311,13 @@ intel_display_power_put_async(struct drm_i915_private *i915,
for ((wf) = intel_display_power_get((i915), (domain)); (wf); \
intel_display_power_put_async((i915), (domain), (wf)), (wf) = 0)
+#define DBUF_S1_BIT BIT(0)
+#define DBUF_S2_BIT BIT(1)
+
void icl_dbuf_slices_update(struct drm_i915_private *dev_priv,
u8 req_slices);
+void icl_program_dbuf_slices(struct drm_i915_private *dev_priv);
+int intel_dbuf_max_slices(struct drm_i915_private *dev_priv);
void chv_phy_powergate_lanes(struct intel_encoder *encoder,
bool override, unsigned int mask);
diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c
index da3e9b5752ac..a050222240e4 100644
--- a/drivers/gpu/drm/i915/i915_pci.c
+++ b/drivers/gpu/drm/i915/i915_pci.c
@@ -614,7 +614,8 @@ static const struct intel_device_info intel_cherryview_info = {
.has_gt_uc = 1, \
.display.has_hdcp = 1, \
.display.has_ipc = 1, \
- .ddb_size = 896
+ .ddb_size = 896, \
+ .num_supported_dbuf_slices = 1
#define SKL_PLATFORM \
GEN9_FEATURES, \
@@ -649,6 +650,7 @@ static const struct intel_device_info intel_skylake_gt4_info = {
#define GEN9_LP_FEATURES \
GEN(9), \
.is_lp = 1, \
+ .num_supported_dbuf_slices = 1, \
.display.has_hotplug = 1, \
.engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0) | BIT(VECS0), \
.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C), \
@@ -737,6 +739,7 @@ static const struct intel_device_info intel_coffeelake_gt3_info = {
GEN9_FEATURES, \
GEN(10), \
.ddb_size = 1024, \
+ .num_supported_dbuf_slices = 1, \
.display.has_dsc = 1, \
.has_coherent_ggtt = false, \
GLK_COLORS
@@ -773,6 +776,7 @@ static const struct intel_device_info intel_cannonlake_info = {
}, \
GEN(11), \
.ddb_size = 2048, \
+ .num_supported_dbuf_slices = 2, \
.has_logical_ring_elsq = 1, \
.color = { .degamma_lut_size = 33, .gamma_lut_size = 262145 }
diff --git a/drivers/gpu/drm/i915/intel_device_info.h b/drivers/gpu/drm/i915/intel_device_info.h
index 4bdf8a6cfb47..4a9f54a900be 100644
--- a/drivers/gpu/drm/i915/intel_device_info.h
+++ b/drivers/gpu/drm/i915/intel_device_info.h
@@ -180,6 +180,7 @@ struct intel_device_info {
} display;
u16 ddb_size; /* in blocks */
+ u8 num_supported_dbuf_slices; /* number of DBuf slices */
/* Register offsets for the various display pipes and transcoders */
int pipe_offsets[I915_MAX_TRANSCODERS];
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 3857ec3d2bd6..4c30dddb943a 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -3601,22 +3601,18 @@ bool ilk_disable_lp_wm(struct drm_device *dev)
static u8 intel_enabled_dbuf_slices_num(struct drm_i915_private *dev_priv)
{
- u8 enabled_slices;
-
- /* Slice 1 will always be enabled */
- enabled_slices = 1;
+ u8 enabled_slices = 0;
/* Gen prior to GEN11 have only one DBuf slice */
if (INTEL_GEN(dev_priv) < 11)
- return enabled_slices;
+ return DBUF_S1_BIT;
- /*
- * FIXME: for now we'll only ever use 1 slice; pretend that we have
- * only that 1 slice enabled until we have a proper way for on-demand
- * toggling of the second slice.
- */
- if (0 && I915_READ(DBUF_CTL_S2) & DBUF_POWER_STATE)
- enabled_slices++;
+ /* Check if second DBuf slice is enabled */
+ if (I915_READ(DBUF_CTL_S1) & DBUF_POWER_STATE)
+ enabled_slices |= DBUF_S1_BIT;
+
+ if (I915_READ(DBUF_CTL_S2) & DBUF_POWER_STATE)
+ enabled_slices |= DBUF_S2_BIT;
return enabled_slices;
}
@@ -3825,8 +3821,6 @@ static u16 intel_get_ddb_size(struct drm_i915_private *dev_priv,
const int num_active,
struct skl_ddb_values *ddb)
{
- const struct drm_display_mode *adjusted_mode;
- u64 total_data_bw;
u16 ddb_size = INTEL_INFO(dev_priv)->ddb_size;
WARN_ON(ddb_size == 0);
@@ -3834,23 +3828,14 @@ static u16 intel_get_ddb_size(struct drm_i915_private *dev_priv,
if (INTEL_GEN(dev_priv) < 11)
return ddb_size - 4; /* 4 blocks for bypass path allocation */
- adjusted_mode = &crtc_state->hw.adjusted_mode;
- total_data_bw = total_data_rate * drm_mode_vrefresh(adjusted_mode);
-
/*
- * 12GB/s is maximum BW supported by single DBuf slice.
- *
- * FIXME dbuf slice code is broken:
- * - must wait for planes to stop using the slice before powering it off
- * - plane straddling both slices is illegal in multi-pipe scenarios
- * - should validate we stay within the hw bandwidth limits
+ * FIXME: Enabled slices should be only
+ * in according to BSpec and be determined
+ * by num active pipes(BSpec 12716 and 49255).
+ * For now set mask for 1st slice only.
*/
- if (0 && (num_active > 1 || total_data_bw >= GBps(12))) {
- ddb->enabled_slices = 2;
- } else {
- ddb->enabled_slices = 1;
- ddb_size /= 2;
- }
+ ddb->enabled_slices = DBUF_S1_BIT;
+ ddb_size /= 2;
return ddb_size;
}
--
2.17.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [Intel-gfx] [PATCH v6 3/4] drm/i915: Manipulate DBuf slices properly
2019-11-27 14:41 ` [PATCH v6 3/4] drm/i915: Manipulate DBuf slices properly Stanislav Lisovskiy
@ 2019-11-27 14:41 ` Stanislav Lisovskiy
0 siblings, 0 replies; 22+ messages in thread
From: Stanislav Lisovskiy @ 2019-11-27 14:41 UTC (permalink / raw)
To: intel-gfx
Start manipulating DBuf slices as a mask,
but not as a total number, as current approach
doesn't give us full control on all combinations
of slices, which we might need(like enabling S2
only can't enabled by setting enabled_slices=1).
Removed wrong code from intel_get_ddb_size as
it doesn't match to BSpec. For now still just
use DBuf slice until proper algorithm is implemented.
Other minor code refactoring to get prepared
for major DBuf assignment changes landed:
- As now enabled slices contain a mask
we still need some value which should
reflect how much DBuf slices are supported
by the platform, now device info contains
num_supported_dbuf_slices.
- Removed unneeded assertion as we are now
manipulating slices in a more proper way.
Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
---
drivers/gpu/drm/i915/display/intel_display.c | 7 +-
.../drm/i915/display/intel_display_power.c | 100 ++++++++----------
.../drm/i915/display/intel_display_power.h | 5 +
drivers/gpu/drm/i915/i915_pci.c | 6 +-
drivers/gpu/drm/i915/intel_device_info.h | 1 +
drivers/gpu/drm/i915/intel_pm.c | 43 +++-----
6 files changed, 72 insertions(+), 90 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 0d53bf82b2df..134d20992671 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -13419,7 +13419,7 @@ static void verify_wm_state(struct intel_crtc *crtc,
if (INTEL_GEN(dev_priv) >= 11 &&
hw->ddb.enabled_slices != sw_ddb->enabled_slices)
- DRM_ERROR("mismatch in DBUF Slices (expected %u, got %u)\n",
+ DRM_ERROR("mismatch in DBUF Slices (expected %x, got %x)\n",
sw_ddb->enabled_slices,
hw->ddb.enabled_slices);
@@ -14644,10 +14644,11 @@ static void icl_dbuf_slice_pre_update(struct intel_atomic_state *state)
struct drm_i915_private *dev_priv = to_i915(state->base.dev);
u8 hw_enabled_slices = dev_priv->wm.skl_hw.enabled_slices;
u8 required_slices = state->wm_results.enabled_slices;
+ u8 slices_union = hw_enabled_slices | required_slices;
/* If 2nd DBuf slice required, enable it here */
if (INTEL_GEN(dev_priv) >= 11 && required_slices > hw_enabled_slices)
- icl_dbuf_slices_update(dev_priv, required_slices);
+ icl_dbuf_slices_update(dev_priv, slices_union);
}
static void icl_dbuf_slice_post_update(struct intel_atomic_state *state)
@@ -14669,8 +14670,6 @@ static void skl_commit_modeset_enables(struct intel_atomic_state *state)
unsigned int updated = 0;
bool progress;
int i;
- u8 hw_enabled_slices = dev_priv->wm.skl_hw.enabled_slices;
- u8 required_slices = state->wm_results.enabled_slices;
struct skl_ddb_entry entries[I915_MAX_PIPES] = {};
for_each_oldnew_intel_crtc_in_state(state, crtc, old_crtc_state, new_crtc_state, i)
diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c b/drivers/gpu/drm/i915/display/intel_display_power.c
index 75198da13479..340fc2d3147d 100644
--- a/drivers/gpu/drm/i915/display/intel_display_power.c
+++ b/drivers/gpu/drm/i915/display/intel_display_power.c
@@ -1031,15 +1031,6 @@ static bool gen9_dc_off_power_well_enabled(struct drm_i915_private *dev_priv,
(I915_READ(DC_STATE_EN) & DC_STATE_EN_UPTO_DC5_DC6_MASK) == 0);
}
-static void gen9_assert_dbuf_enabled(struct drm_i915_private *dev_priv)
-{
- u32 tmp = I915_READ(DBUF_CTL);
-
- WARN((tmp & (DBUF_POWER_STATE | DBUF_POWER_REQUEST)) !=
- (DBUF_POWER_STATE | DBUF_POWER_REQUEST),
- "Unexpected DBuf power power state (0x%08x)\n", tmp);
-}
-
static void gen9_disable_dc_states(struct drm_i915_private *dev_priv)
{
struct intel_cdclk_state cdclk_state = {};
@@ -1055,8 +1046,6 @@ static void gen9_disable_dc_states(struct drm_i915_private *dev_priv)
/* Can't read out voltage_level so can't use intel_cdclk_changed() */
WARN_ON(intel_cdclk_needs_modeset(&dev_priv->cdclk.hw, &cdclk_state));
- gen9_assert_dbuf_enabled(dev_priv);
-
if (IS_GEN9_LP(dev_priv))
bxt_verify_ddi_phy_power_wells(dev_priv);
@@ -4254,72 +4243,71 @@ static void gen9_dbuf_disable(struct drm_i915_private *dev_priv)
intel_dbuf_slice_set(dev_priv, DBUF_CTL, false);
}
-static u8 intel_dbuf_max_slices(struct drm_i915_private *dev_priv)
+int intel_dbuf_max_slices(struct drm_i915_private *dev_priv)
{
- if (INTEL_GEN(dev_priv) < 11)
- return 1;
- return 2;
+ return INTEL_INFO(dev_priv)->num_supported_dbuf_slices;
+}
+
+void icl_program_dbuf_slices(struct drm_i915_private *dev_priv)
+{
+ const u8 hw_enabled_slices = dev_priv->wm.skl_hw.enabled_slices;
+
+ icl_dbuf_slices_update(dev_priv, hw_enabled_slices);
}
void icl_dbuf_slices_update(struct drm_i915_private *dev_priv,
u8 req_slices)
{
- const u8 hw_enabled_slices = dev_priv->wm.skl_hw.enabled_slices;
- bool ret;
+ int i;
+ int max_slices = intel_dbuf_max_slices(dev_priv);
- if (req_slices > intel_dbuf_max_slices(dev_priv)) {
+ if (hweight8(req_slices) > intel_dbuf_max_slices(dev_priv)) {
DRM_ERROR("Invalid number of dbuf slices requested\n");
return;
}
- if (req_slices == hw_enabled_slices || req_slices == 0)
- return;
+ DRM_DEBUG_KMS("Updating dbuf slices to %x\n", req_slices);
- if (req_slices > hw_enabled_slices)
- ret = intel_dbuf_slice_set(dev_priv, DBUF_CTL_S2, true);
- else
- ret = intel_dbuf_slice_set(dev_priv, DBUF_CTL_S2, false);
+ for (i = 0; i < max_slices; i++) {
+ int slice_bit = BIT(i);
+ bool slice_set = (slice_bit & req_slices) != 0;
+
+ switch (slice_bit) {
+ case DBUF_S1_BIT:
+ intel_dbuf_slice_set(dev_priv,
+ DBUF_CTL_S1,
+ slice_set);
+ break;
+ case DBUF_S2_BIT:
+ intel_dbuf_slice_set(dev_priv,
+ DBUF_CTL_S2,
+ slice_set);
+ break;
+ default:
+ MISSING_CASE(slice_bit);
+ }
+ }
- if (ret)
- dev_priv->wm.skl_hw.enabled_slices = req_slices;
+ dev_priv->wm.skl_hw.enabled_slices = req_slices;
}
static void icl_dbuf_enable(struct drm_i915_private *dev_priv)
{
- I915_WRITE(DBUF_CTL_S1, I915_READ(DBUF_CTL_S1) | DBUF_POWER_REQUEST);
- I915_WRITE(DBUF_CTL_S2, I915_READ(DBUF_CTL_S2) | DBUF_POWER_REQUEST);
- POSTING_READ(DBUF_CTL_S2);
-
- udelay(10);
-
- if (!(I915_READ(DBUF_CTL_S1) & DBUF_POWER_STATE) ||
- !(I915_READ(DBUF_CTL_S2) & DBUF_POWER_STATE))
- DRM_ERROR("DBuf power enable timeout\n");
- else
- /*
- * FIXME: for now pretend that we only have 1 slice, see
- * intel_enabled_dbuf_slices_num().
- */
- dev_priv->wm.skl_hw.enabled_slices = 1;
+ /*
+ * Just power up 1 slice, we will
+ * figure out later which slices we have and what we need.
+ */
+ dev_priv->wm.skl_hw.enabled_slices = DBUF_S1_BIT;
+ icl_program_dbuf_slices(dev_priv);
}
static void icl_dbuf_disable(struct drm_i915_private *dev_priv)
{
- I915_WRITE(DBUF_CTL_S1, I915_READ(DBUF_CTL_S1) & ~DBUF_POWER_REQUEST);
- I915_WRITE(DBUF_CTL_S2, I915_READ(DBUF_CTL_S2) & ~DBUF_POWER_REQUEST);
- POSTING_READ(DBUF_CTL_S2);
-
- udelay(10);
-
- if ((I915_READ(DBUF_CTL_S1) & DBUF_POWER_STATE) ||
- (I915_READ(DBUF_CTL_S2) & DBUF_POWER_STATE))
- DRM_ERROR("DBuf power disable timeout!\n");
- else
- /*
- * FIXME: for now pretend that the first slice is always
- * enabled, see intel_enabled_dbuf_slices_num().
- */
- dev_priv->wm.skl_hw.enabled_slices = 1;
+ /*
+ * Disable all slices
+ */
+ dev_priv->wm.skl_hw.enabled_slices = 0;
+ icl_program_dbuf_slices(dev_priv);
}
static void icl_mbus_init(struct drm_i915_private *dev_priv)
diff --git a/drivers/gpu/drm/i915/display/intel_display_power.h b/drivers/gpu/drm/i915/display/intel_display_power.h
index 1da04f3e0fb3..0d9f87607eac 100644
--- a/drivers/gpu/drm/i915/display/intel_display_power.h
+++ b/drivers/gpu/drm/i915/display/intel_display_power.h
@@ -311,8 +311,13 @@ intel_display_power_put_async(struct drm_i915_private *i915,
for ((wf) = intel_display_power_get((i915), (domain)); (wf); \
intel_display_power_put_async((i915), (domain), (wf)), (wf) = 0)
+#define DBUF_S1_BIT BIT(0)
+#define DBUF_S2_BIT BIT(1)
+
void icl_dbuf_slices_update(struct drm_i915_private *dev_priv,
u8 req_slices);
+void icl_program_dbuf_slices(struct drm_i915_private *dev_priv);
+int intel_dbuf_max_slices(struct drm_i915_private *dev_priv);
void chv_phy_powergate_lanes(struct intel_encoder *encoder,
bool override, unsigned int mask);
diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c
index da3e9b5752ac..a050222240e4 100644
--- a/drivers/gpu/drm/i915/i915_pci.c
+++ b/drivers/gpu/drm/i915/i915_pci.c
@@ -614,7 +614,8 @@ static const struct intel_device_info intel_cherryview_info = {
.has_gt_uc = 1, \
.display.has_hdcp = 1, \
.display.has_ipc = 1, \
- .ddb_size = 896
+ .ddb_size = 896, \
+ .num_supported_dbuf_slices = 1
#define SKL_PLATFORM \
GEN9_FEATURES, \
@@ -649,6 +650,7 @@ static const struct intel_device_info intel_skylake_gt4_info = {
#define GEN9_LP_FEATURES \
GEN(9), \
.is_lp = 1, \
+ .num_supported_dbuf_slices = 1, \
.display.has_hotplug = 1, \
.engine_mask = BIT(RCS0) | BIT(VCS0) | BIT(BCS0) | BIT(VECS0), \
.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C), \
@@ -737,6 +739,7 @@ static const struct intel_device_info intel_coffeelake_gt3_info = {
GEN9_FEATURES, \
GEN(10), \
.ddb_size = 1024, \
+ .num_supported_dbuf_slices = 1, \
.display.has_dsc = 1, \
.has_coherent_ggtt = false, \
GLK_COLORS
@@ -773,6 +776,7 @@ static const struct intel_device_info intel_cannonlake_info = {
}, \
GEN(11), \
.ddb_size = 2048, \
+ .num_supported_dbuf_slices = 2, \
.has_logical_ring_elsq = 1, \
.color = { .degamma_lut_size = 33, .gamma_lut_size = 262145 }
diff --git a/drivers/gpu/drm/i915/intel_device_info.h b/drivers/gpu/drm/i915/intel_device_info.h
index 4bdf8a6cfb47..4a9f54a900be 100644
--- a/drivers/gpu/drm/i915/intel_device_info.h
+++ b/drivers/gpu/drm/i915/intel_device_info.h
@@ -180,6 +180,7 @@ struct intel_device_info {
} display;
u16 ddb_size; /* in blocks */
+ u8 num_supported_dbuf_slices; /* number of DBuf slices */
/* Register offsets for the various display pipes and transcoders */
int pipe_offsets[I915_MAX_TRANSCODERS];
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 3857ec3d2bd6..4c30dddb943a 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -3601,22 +3601,18 @@ bool ilk_disable_lp_wm(struct drm_device *dev)
static u8 intel_enabled_dbuf_slices_num(struct drm_i915_private *dev_priv)
{
- u8 enabled_slices;
-
- /* Slice 1 will always be enabled */
- enabled_slices = 1;
+ u8 enabled_slices = 0;
/* Gen prior to GEN11 have only one DBuf slice */
if (INTEL_GEN(dev_priv) < 11)
- return enabled_slices;
+ return DBUF_S1_BIT;
- /*
- * FIXME: for now we'll only ever use 1 slice; pretend that we have
- * only that 1 slice enabled until we have a proper way for on-demand
- * toggling of the second slice.
- */
- if (0 && I915_READ(DBUF_CTL_S2) & DBUF_POWER_STATE)
- enabled_slices++;
+ /* Check if second DBuf slice is enabled */
+ if (I915_READ(DBUF_CTL_S1) & DBUF_POWER_STATE)
+ enabled_slices |= DBUF_S1_BIT;
+
+ if (I915_READ(DBUF_CTL_S2) & DBUF_POWER_STATE)
+ enabled_slices |= DBUF_S2_BIT;
return enabled_slices;
}
@@ -3825,8 +3821,6 @@ static u16 intel_get_ddb_size(struct drm_i915_private *dev_priv,
const int num_active,
struct skl_ddb_values *ddb)
{
- const struct drm_display_mode *adjusted_mode;
- u64 total_data_bw;
u16 ddb_size = INTEL_INFO(dev_priv)->ddb_size;
WARN_ON(ddb_size == 0);
@@ -3834,23 +3828,14 @@ static u16 intel_get_ddb_size(struct drm_i915_private *dev_priv,
if (INTEL_GEN(dev_priv) < 11)
return ddb_size - 4; /* 4 blocks for bypass path allocation */
- adjusted_mode = &crtc_state->hw.adjusted_mode;
- total_data_bw = total_data_rate * drm_mode_vrefresh(adjusted_mode);
-
/*
- * 12GB/s is maximum BW supported by single DBuf slice.
- *
- * FIXME dbuf slice code is broken:
- * - must wait for planes to stop using the slice before powering it off
- * - plane straddling both slices is illegal in multi-pipe scenarios
- * - should validate we stay within the hw bandwidth limits
+ * FIXME: Enabled slices should be only
+ * in according to BSpec and be determined
+ * by num active pipes(BSpec 12716 and 49255).
+ * For now set mask for 1st slice only.
*/
- if (0 && (num_active > 1 || total_data_bw >= GBps(12))) {
- ddb->enabled_slices = 2;
- } else {
- ddb->enabled_slices = 1;
- ddb_size /= 2;
- }
+ ddb->enabled_slices = DBUF_S1_BIT;
+ ddb_size /= 2;
return ddb_size;
}
--
2.17.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v6 4/4] drm/i915: Correctly map DBUF slices to pipes
2019-11-27 14:41 [PATCH v6 0/4] Enable second DBuf slice for ICL and TGL Stanislav Lisovskiy
` (3 preceding siblings ...)
2019-11-27 14:41 ` [PATCH v6 3/4] drm/i915: Manipulate DBuf slices properly Stanislav Lisovskiy
@ 2019-11-27 14:41 ` Stanislav Lisovskiy
2019-11-27 14:41 ` [Intel-gfx] " Stanislav Lisovskiy
2019-11-27 19:31 ` ✗ Fi.CI.SPARSE: warning for Enable second DBuf slice for ICL and TGL (rev2) Patchwork
` (2 subsequent siblings)
7 siblings, 1 reply; 22+ messages in thread
From: Stanislav Lisovskiy @ 2019-11-27 14:41 UTC (permalink / raw)
To: intel-gfx
Added proper DBuf slice mapping to correspondent
pipes, depending on pipe configuration as stated
in BSpec.
v2:
- Remove unneeded braces
- Stop using macro for DBuf assignments as
it seems to reduce readability.
Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
---
drivers/gpu/drm/i915/intel_pm.c | 235 ++++++++++++++++++++++++++++++--
1 file changed, 221 insertions(+), 14 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 4c30dddb943a..6b1e6b2aef40 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -3815,6 +3815,25 @@ bool intel_can_enable_sagv(struct intel_atomic_state *state)
return true;
}
+/*
+ * Calculate initial DBuf slice offset, based on slice size
+ * and mask(i.e if slice size is 1024 and second slice is enabled
+ * offset would be 1024)
+ */
+static u32 icl_get_first_dbuf_slice_offset(u32 dbuf_slice_mask,
+ u32 slice_size, u32 ddb_size)
+{
+ u32 offset = 0;
+
+ if (!dbuf_slice_mask)
+ return 0;
+
+ offset = (ffs(dbuf_slice_mask) - 1) * slice_size;
+
+ WARN_ON(offset >= ddb_size);
+ return offset;
+}
+
static u16 intel_get_ddb_size(struct drm_i915_private *dev_priv,
const struct intel_crtc_state *crtc_state,
const u64 total_data_rate,
@@ -3828,18 +3847,13 @@ static u16 intel_get_ddb_size(struct drm_i915_private *dev_priv,
if (INTEL_GEN(dev_priv) < 11)
return ddb_size - 4; /* 4 blocks for bypass path allocation */
- /*
- * FIXME: Enabled slices should be only
- * in according to BSpec and be determined
- * by num active pipes(BSpec 12716 and 49255).
- * For now set mask for 1st slice only.
- */
- ddb->enabled_slices = DBUF_S1_BIT;
- ddb_size /= 2;
-
return ddb_size;
}
+u32 i915_possible_dbuf_slices(struct drm_i915_private *dev_priv,
+ int pipe, u32 active_pipes,
+ const struct intel_crtc_state *crtc_state);
+
static void
skl_ddb_get_pipe_allocation_limits(struct drm_i915_private *dev_priv,
const struct intel_crtc_state *crtc_state,
@@ -3855,7 +3869,14 @@ skl_ddb_get_pipe_allocation_limits(struct drm_i915_private *dev_priv,
u32 pipe_width = 0, total_width = 0, width_before_pipe = 0;
enum pipe for_pipe = to_intel_crtc(for_crtc)->pipe;
u16 ddb_size;
+ u32 ddb_range_size;
u32 i;
+ u32 dbuf_slice_mask;
+ u32 active_pipes;
+ u32 offset;
+ u32 slice_size;
+ u32 total_slice_mask;
+ u32 start, end;
if (WARN_ON(!state) || !crtc_state->hw.active) {
alloc->start = 0;
@@ -3864,14 +3885,23 @@ skl_ddb_get_pipe_allocation_limits(struct drm_i915_private *dev_priv,
return;
}
- if (intel_state->active_pipe_changes)
+ if (intel_state->active_pipe_changes) {
*num_active = hweight8(intel_state->active_pipes);
- else
+ active_pipes = intel_state->active_pipes;
+ } else {
*num_active = hweight8(dev_priv->active_pipes);
+ active_pipes = dev_priv->active_pipes;
+ }
ddb_size = intel_get_ddb_size(dev_priv, crtc_state, total_data_rate,
*num_active, ddb);
+ DRM_DEBUG_KMS("Got total ddb size %d\n", ddb_size);
+
+ slice_size = ddb_size / INTEL_INFO(dev_priv)->num_supported_dbuf_slices;
+
+ DRM_DEBUG_KMS("Got DBuf slice size %d\n", slice_size);
+
/*
* If the state doesn't change the active CRTC's or there is no
* modeset request, then there's no need to recalculate;
@@ -3889,18 +3919,68 @@ skl_ddb_get_pipe_allocation_limits(struct drm_i915_private *dev_priv,
return;
}
+ /*
+ * Get allowed DBuf slices for correspondent pipe and platform.
+ */
+ dbuf_slice_mask = i915_possible_dbuf_slices(dev_priv, for_pipe,
+ active_pipes, crtc_state);
+
+ DRM_DEBUG_KMS("DBuf slice mask %x pipe %d active pipes %x\n",
+ dbuf_slice_mask,
+ for_pipe, active_pipes);
+
+ /*
+ * Figure out at which DBuf slice we start, i.e if we start at Dbuf S2
+ * and slice size is 1024, the offset would be 1024
+ */
+ offset = icl_get_first_dbuf_slice_offset(dbuf_slice_mask,
+ slice_size, ddb_size);
+
+ /*
+ * Figure out total size of allowed DBuf slices, which is basically
+ * a number of allowed slices for that pipe multiplied by slice size.
+ * Inside of this
+ * range ddb entries are still allocated in proportion to display width.
+ */
+ ddb_range_size = hweight8(dbuf_slice_mask) * slice_size;
+
/*
* Watermark/ddb requirement highly depends upon width of the
* framebuffer, So instead of allocating DDB equally among pipes
* distribute DDB based on resolution/width of the display.
*/
+ total_slice_mask = dbuf_slice_mask;
for_each_new_intel_crtc_in_state(intel_state, crtc, crtc_state, i) {
const struct drm_display_mode *adjusted_mode =
&crtc_state->hw.adjusted_mode;
enum pipe pipe = crtc->pipe;
int hdisplay, vdisplay;
+ u32 pipe_dbuf_slice_mask =
+ i915_possible_dbuf_slices(dev_priv,
+ pipe,
+ active_pipes,
+ crtc_state);
- if (!crtc_state->hw.enable)
+ if (!crtc_state->hw.active)
+ continue;
+
+ /*
+ * According to BSpec pipe can share one dbuf slice with another
+ * pipes or pipe can use multiple dbufs, in both cases we
+ * account for other pipes only if they have exactly same mask.
+ * However we need to account how many slices we should enable
+ * in total.
+ */
+ total_slice_mask |= pipe_dbuf_slice_mask;
+
+ /*
+ * Do not account pipes using other slice sets
+ * luckily as of current BSpec slice sets do not partially
+ * intersect(pipes share either same one slice or same slice set
+ * i.e no partial intersection), so it is enough to check for
+ * equality for now.
+ */
+ if (dbuf_slice_mask != pipe_dbuf_slice_mask)
continue;
drm_mode_get_hv_timing(adjusted_mode, &hdisplay, &vdisplay);
@@ -3912,8 +3992,19 @@ skl_ddb_get_pipe_allocation_limits(struct drm_i915_private *dev_priv,
pipe_width = hdisplay;
}
- alloc->start = ddb_size * width_before_pipe / total_width;
- alloc->end = ddb_size * (width_before_pipe + pipe_width) / total_width;
+ ddb->enabled_slices = total_slice_mask;
+
+ start = ddb_range_size * width_before_pipe / total_width;
+ end = ddb_range_size * (width_before_pipe + pipe_width) / total_width;
+
+ alloc->start = offset + start;
+ alloc->end = offset + end;
+
+ DRM_DEBUG_KMS("Pipe %d ddb %d-%d\n", for_pipe,
+ alloc->start, alloc->end);
+ DRM_DEBUG_KMS("Enabled ddb slices mask %x num supported %d\n",
+ ddb->enabled_slices,
+ INTEL_INFO(dev_priv)->num_supported_dbuf_slices);
}
static int skl_compute_wm_params(const struct intel_crtc_state *crtc_state,
@@ -4035,6 +4126,7 @@ void skl_ddb_get_hw_state(struct drm_i915_private *dev_priv,
struct skl_ddb_values *ddb /* out */)
{
ddb->enabled_slices = intel_enabled_dbuf_slices_num(dev_priv);
+ DRM_DEBUG_KMS("Got hw dbuf slices mask %x\n", ddb->enabled_slices);
}
/*
@@ -4084,6 +4176,121 @@ skl_plane_downscale_amount(const struct intel_crtc_state *crtc_state,
return mul_fixed16(downscale_w, downscale_h);
}
+struct dbuf_slice_conf_entry {
+ u32 active_pipes;
+ u32 dbuf_mask[I915_MAX_PIPES];
+};
+
+/*
+ * Table taken from Bspec 12716
+ * Pipes do have some preferred DBuf slice affinity,
+ * plus there are some hardcoded requirements on how
+ * those should be distributed for multipipe scenarios.
+ * For more DBuf slices algorithm can get even more messy
+ * and less readable, so decided to use a table almost
+ * as is from BSpec itself - that way it is at least easier
+ * to compare, change and check.
+ */
+static struct dbuf_slice_conf_entry icl_allowed_dbufs[] = {
+ { BIT(PIPE_A), { DBUF_S1_BIT, 0, 0, 0 } },
+ { BIT(PIPE_B), { 0, DBUF_S1_BIT, 0, 0 } },
+ { BIT(PIPE_C), { 0, 0, DBUF_S2_BIT, 0 } },
+ { BIT(PIPE_A) | BIT(PIPE_B), { DBUF_S1_BIT, DBUF_S2_BIT, 0, 0 } },
+ { BIT(PIPE_A) | BIT(PIPE_C), { DBUF_S1_BIT, 0, DBUF_S2_BIT, 0 } },
+ { BIT(PIPE_B) | BIT(PIPE_C), { 0, DBUF_S1_BIT, DBUF_S2_BIT, 0 } },
+ { BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C),
+ { DBUF_S1_BIT, DBUF_S1_BIT, DBUF_S2_BIT, 0 } }
+};
+
+/*
+ * Table taken from Bspec 49255
+ * Pipes do have some preferred DBuf slice affinity,
+ * plus there are some hardcoded requirements on how
+ * those should be distributed for multipipe scenarios.
+ * For more DBuf slices algorithm can get even more messy
+ * and less readable, so decided to use a table almost
+ * as is from BSpec itself - that way it is at least easier
+ * to compare, change and check.
+ */
+static struct dbuf_slice_conf_entry tgl_allowed_dbufs[] = {
+ { BIT(PIPE_A), { DBUF_S1_BIT | DBUF_S2_BIT, 0, 0, 0 } },
+ { BIT(PIPE_B), { 0, DBUF_S1_BIT | DBUF_S2_BIT, 0, 0 } },
+ { BIT(PIPE_C), { 0, 0, DBUF_S1_BIT | DBUF_S2_BIT, 0 } },
+ { BIT(PIPE_D), { 0, 0, 0, DBUF_S1_BIT | DBUF_S2_BIT } },
+ { BIT(PIPE_A) | BIT(PIPE_B), { DBUF_S2_BIT, DBUF_S1_BIT, 0, 0 } },
+ { BIT(PIPE_A) | BIT(PIPE_C), { DBUF_S1_BIT, 0, DBUF_S2_BIT, 0 } },
+ { BIT(PIPE_A) | BIT(PIPE_D), { DBUF_S1_BIT, 0, 0, DBUF_S2_BIT } },
+ { BIT(PIPE_B) | BIT(PIPE_C), { 0, DBUF_S1_BIT, DBUF_S2_BIT, 0 } },
+ { BIT(PIPE_B) | BIT(PIPE_D), { 0, DBUF_S1_BIT, 0, DBUF_S2_BIT } },
+ { BIT(PIPE_C) | BIT(PIPE_D), { 0, 0, DBUF_S2_BIT, DBUF_S2_BIT } },
+ { BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C),
+ { DBUF_S1_BIT, DBUF_S1_BIT, DBUF_S2_BIT, 0 } },
+ { BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_D),
+ { DBUF_S1_BIT, DBUF_S1_BIT, 0, DBUF_S2_BIT } },
+ { BIT(PIPE_A) | BIT(PIPE_C) | BIT(PIPE_D),
+ { DBUF_S1_BIT, 0, DBUF_S2_BIT, DBUF_S2_BIT } },
+ { BIT(PIPE_B) | BIT(PIPE_C) | BIT(PIPE_D),
+ { 0, DBUF_S1_BIT, DBUF_S2_BIT, DBUF_S2_BIT } },
+ { BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C) | BIT(PIPE_D),
+ { DBUF_S1_BIT, DBUF_S1_BIT, DBUF_S2_BIT, DBUF_S2_BIT } },
+};
+
+static u32 i915_find_pipe_conf(int pipe,
+ u32 active_pipes,
+ const struct dbuf_slice_conf_entry *dbuf_slices,
+ int size)
+{
+ int i;
+
+ for (i = 0; i < size; i++) {
+ if (dbuf_slices[i].active_pipes == active_pipes)
+ return dbuf_slices[i].dbuf_mask[pipe];
+ }
+ return 0;
+}
+
+/*
+ * This function finds an entry with same enabled pipe configuration and
+ * returns correspondent DBuf slice mask as stated in BSpec for particular
+ * platform.
+ */
+static u32 icl_possible_dbuf_slices(int pipe,
+ u32 active_pipes,
+ const struct intel_crtc_state *crtc_state)
+{
+ return i915_find_pipe_conf(pipe, active_pipes,
+ icl_allowed_dbufs,
+ ARRAY_SIZE(icl_allowed_dbufs));
+}
+
+static u32 tgl_possible_dbuf_slices(int pipe,
+ u32 active_pipes,
+ const struct intel_crtc_state *crtc_state)
+{
+ return i915_find_pipe_conf(pipe, active_pipes,
+ tgl_allowed_dbufs,
+ ARRAY_SIZE(tgl_allowed_dbufs));
+}
+
+u32 i915_possible_dbuf_slices(struct drm_i915_private *dev_priv,
+ int pipe, u32 active_pipes,
+ const struct intel_crtc_state *crtc_state)
+{
+ if (IS_GEN(dev_priv, 11))
+ return icl_possible_dbuf_slices(pipe,
+ active_pipes,
+ crtc_state);
+ else if (IS_GEN(dev_priv, 12))
+ return tgl_possible_dbuf_slices(pipe,
+ active_pipes,
+ crtc_state);
+ /*
+ * For anything else just return one slice yet.
+ * Should be extended for other platforms.
+ */
+ return DBUF_S1_BIT;
+}
+
static u64
skl_plane_relative_data_rate(const struct intel_crtc_state *crtc_state,
const struct intel_plane_state *plane_state,
--
2.17.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [Intel-gfx] [PATCH v6 4/4] drm/i915: Correctly map DBUF slices to pipes
2019-11-27 14:41 ` [PATCH v6 4/4] drm/i915: Correctly map DBUF slices to pipes Stanislav Lisovskiy
@ 2019-11-27 14:41 ` Stanislav Lisovskiy
0 siblings, 0 replies; 22+ messages in thread
From: Stanislav Lisovskiy @ 2019-11-27 14:41 UTC (permalink / raw)
To: intel-gfx
Added proper DBuf slice mapping to correspondent
pipes, depending on pipe configuration as stated
in BSpec.
v2:
- Remove unneeded braces
- Stop using macro for DBuf assignments as
it seems to reduce readability.
Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
---
drivers/gpu/drm/i915/intel_pm.c | 235 ++++++++++++++++++++++++++++++--
1 file changed, 221 insertions(+), 14 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 4c30dddb943a..6b1e6b2aef40 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -3815,6 +3815,25 @@ bool intel_can_enable_sagv(struct intel_atomic_state *state)
return true;
}
+/*
+ * Calculate initial DBuf slice offset, based on slice size
+ * and mask(i.e if slice size is 1024 and second slice is enabled
+ * offset would be 1024)
+ */
+static u32 icl_get_first_dbuf_slice_offset(u32 dbuf_slice_mask,
+ u32 slice_size, u32 ddb_size)
+{
+ u32 offset = 0;
+
+ if (!dbuf_slice_mask)
+ return 0;
+
+ offset = (ffs(dbuf_slice_mask) - 1) * slice_size;
+
+ WARN_ON(offset >= ddb_size);
+ return offset;
+}
+
static u16 intel_get_ddb_size(struct drm_i915_private *dev_priv,
const struct intel_crtc_state *crtc_state,
const u64 total_data_rate,
@@ -3828,18 +3847,13 @@ static u16 intel_get_ddb_size(struct drm_i915_private *dev_priv,
if (INTEL_GEN(dev_priv) < 11)
return ddb_size - 4; /* 4 blocks for bypass path allocation */
- /*
- * FIXME: Enabled slices should be only
- * in according to BSpec and be determined
- * by num active pipes(BSpec 12716 and 49255).
- * For now set mask for 1st slice only.
- */
- ddb->enabled_slices = DBUF_S1_BIT;
- ddb_size /= 2;
-
return ddb_size;
}
+u32 i915_possible_dbuf_slices(struct drm_i915_private *dev_priv,
+ int pipe, u32 active_pipes,
+ const struct intel_crtc_state *crtc_state);
+
static void
skl_ddb_get_pipe_allocation_limits(struct drm_i915_private *dev_priv,
const struct intel_crtc_state *crtc_state,
@@ -3855,7 +3869,14 @@ skl_ddb_get_pipe_allocation_limits(struct drm_i915_private *dev_priv,
u32 pipe_width = 0, total_width = 0, width_before_pipe = 0;
enum pipe for_pipe = to_intel_crtc(for_crtc)->pipe;
u16 ddb_size;
+ u32 ddb_range_size;
u32 i;
+ u32 dbuf_slice_mask;
+ u32 active_pipes;
+ u32 offset;
+ u32 slice_size;
+ u32 total_slice_mask;
+ u32 start, end;
if (WARN_ON(!state) || !crtc_state->hw.active) {
alloc->start = 0;
@@ -3864,14 +3885,23 @@ skl_ddb_get_pipe_allocation_limits(struct drm_i915_private *dev_priv,
return;
}
- if (intel_state->active_pipe_changes)
+ if (intel_state->active_pipe_changes) {
*num_active = hweight8(intel_state->active_pipes);
- else
+ active_pipes = intel_state->active_pipes;
+ } else {
*num_active = hweight8(dev_priv->active_pipes);
+ active_pipes = dev_priv->active_pipes;
+ }
ddb_size = intel_get_ddb_size(dev_priv, crtc_state, total_data_rate,
*num_active, ddb);
+ DRM_DEBUG_KMS("Got total ddb size %d\n", ddb_size);
+
+ slice_size = ddb_size / INTEL_INFO(dev_priv)->num_supported_dbuf_slices;
+
+ DRM_DEBUG_KMS("Got DBuf slice size %d\n", slice_size);
+
/*
* If the state doesn't change the active CRTC's or there is no
* modeset request, then there's no need to recalculate;
@@ -3889,18 +3919,68 @@ skl_ddb_get_pipe_allocation_limits(struct drm_i915_private *dev_priv,
return;
}
+ /*
+ * Get allowed DBuf slices for correspondent pipe and platform.
+ */
+ dbuf_slice_mask = i915_possible_dbuf_slices(dev_priv, for_pipe,
+ active_pipes, crtc_state);
+
+ DRM_DEBUG_KMS("DBuf slice mask %x pipe %d active pipes %x\n",
+ dbuf_slice_mask,
+ for_pipe, active_pipes);
+
+ /*
+ * Figure out at which DBuf slice we start, i.e if we start at Dbuf S2
+ * and slice size is 1024, the offset would be 1024
+ */
+ offset = icl_get_first_dbuf_slice_offset(dbuf_slice_mask,
+ slice_size, ddb_size);
+
+ /*
+ * Figure out total size of allowed DBuf slices, which is basically
+ * a number of allowed slices for that pipe multiplied by slice size.
+ * Inside of this
+ * range ddb entries are still allocated in proportion to display width.
+ */
+ ddb_range_size = hweight8(dbuf_slice_mask) * slice_size;
+
/*
* Watermark/ddb requirement highly depends upon width of the
* framebuffer, So instead of allocating DDB equally among pipes
* distribute DDB based on resolution/width of the display.
*/
+ total_slice_mask = dbuf_slice_mask;
for_each_new_intel_crtc_in_state(intel_state, crtc, crtc_state, i) {
const struct drm_display_mode *adjusted_mode =
&crtc_state->hw.adjusted_mode;
enum pipe pipe = crtc->pipe;
int hdisplay, vdisplay;
+ u32 pipe_dbuf_slice_mask =
+ i915_possible_dbuf_slices(dev_priv,
+ pipe,
+ active_pipes,
+ crtc_state);
- if (!crtc_state->hw.enable)
+ if (!crtc_state->hw.active)
+ continue;
+
+ /*
+ * According to BSpec pipe can share one dbuf slice with another
+ * pipes or pipe can use multiple dbufs, in both cases we
+ * account for other pipes only if they have exactly same mask.
+ * However we need to account how many slices we should enable
+ * in total.
+ */
+ total_slice_mask |= pipe_dbuf_slice_mask;
+
+ /*
+ * Do not account pipes using other slice sets
+ * luckily as of current BSpec slice sets do not partially
+ * intersect(pipes share either same one slice or same slice set
+ * i.e no partial intersection), so it is enough to check for
+ * equality for now.
+ */
+ if (dbuf_slice_mask != pipe_dbuf_slice_mask)
continue;
drm_mode_get_hv_timing(adjusted_mode, &hdisplay, &vdisplay);
@@ -3912,8 +3992,19 @@ skl_ddb_get_pipe_allocation_limits(struct drm_i915_private *dev_priv,
pipe_width = hdisplay;
}
- alloc->start = ddb_size * width_before_pipe / total_width;
- alloc->end = ddb_size * (width_before_pipe + pipe_width) / total_width;
+ ddb->enabled_slices = total_slice_mask;
+
+ start = ddb_range_size * width_before_pipe / total_width;
+ end = ddb_range_size * (width_before_pipe + pipe_width) / total_width;
+
+ alloc->start = offset + start;
+ alloc->end = offset + end;
+
+ DRM_DEBUG_KMS("Pipe %d ddb %d-%d\n", for_pipe,
+ alloc->start, alloc->end);
+ DRM_DEBUG_KMS("Enabled ddb slices mask %x num supported %d\n",
+ ddb->enabled_slices,
+ INTEL_INFO(dev_priv)->num_supported_dbuf_slices);
}
static int skl_compute_wm_params(const struct intel_crtc_state *crtc_state,
@@ -4035,6 +4126,7 @@ void skl_ddb_get_hw_state(struct drm_i915_private *dev_priv,
struct skl_ddb_values *ddb /* out */)
{
ddb->enabled_slices = intel_enabled_dbuf_slices_num(dev_priv);
+ DRM_DEBUG_KMS("Got hw dbuf slices mask %x\n", ddb->enabled_slices);
}
/*
@@ -4084,6 +4176,121 @@ skl_plane_downscale_amount(const struct intel_crtc_state *crtc_state,
return mul_fixed16(downscale_w, downscale_h);
}
+struct dbuf_slice_conf_entry {
+ u32 active_pipes;
+ u32 dbuf_mask[I915_MAX_PIPES];
+};
+
+/*
+ * Table taken from Bspec 12716
+ * Pipes do have some preferred DBuf slice affinity,
+ * plus there are some hardcoded requirements on how
+ * those should be distributed for multipipe scenarios.
+ * For more DBuf slices algorithm can get even more messy
+ * and less readable, so decided to use a table almost
+ * as is from BSpec itself - that way it is at least easier
+ * to compare, change and check.
+ */
+static struct dbuf_slice_conf_entry icl_allowed_dbufs[] = {
+ { BIT(PIPE_A), { DBUF_S1_BIT, 0, 0, 0 } },
+ { BIT(PIPE_B), { 0, DBUF_S1_BIT, 0, 0 } },
+ { BIT(PIPE_C), { 0, 0, DBUF_S2_BIT, 0 } },
+ { BIT(PIPE_A) | BIT(PIPE_B), { DBUF_S1_BIT, DBUF_S2_BIT, 0, 0 } },
+ { BIT(PIPE_A) | BIT(PIPE_C), { DBUF_S1_BIT, 0, DBUF_S2_BIT, 0 } },
+ { BIT(PIPE_B) | BIT(PIPE_C), { 0, DBUF_S1_BIT, DBUF_S2_BIT, 0 } },
+ { BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C),
+ { DBUF_S1_BIT, DBUF_S1_BIT, DBUF_S2_BIT, 0 } }
+};
+
+/*
+ * Table taken from Bspec 49255
+ * Pipes do have some preferred DBuf slice affinity,
+ * plus there are some hardcoded requirements on how
+ * those should be distributed for multipipe scenarios.
+ * For more DBuf slices algorithm can get even more messy
+ * and less readable, so decided to use a table almost
+ * as is from BSpec itself - that way it is at least easier
+ * to compare, change and check.
+ */
+static struct dbuf_slice_conf_entry tgl_allowed_dbufs[] = {
+ { BIT(PIPE_A), { DBUF_S1_BIT | DBUF_S2_BIT, 0, 0, 0 } },
+ { BIT(PIPE_B), { 0, DBUF_S1_BIT | DBUF_S2_BIT, 0, 0 } },
+ { BIT(PIPE_C), { 0, 0, DBUF_S1_BIT | DBUF_S2_BIT, 0 } },
+ { BIT(PIPE_D), { 0, 0, 0, DBUF_S1_BIT | DBUF_S2_BIT } },
+ { BIT(PIPE_A) | BIT(PIPE_B), { DBUF_S2_BIT, DBUF_S1_BIT, 0, 0 } },
+ { BIT(PIPE_A) | BIT(PIPE_C), { DBUF_S1_BIT, 0, DBUF_S2_BIT, 0 } },
+ { BIT(PIPE_A) | BIT(PIPE_D), { DBUF_S1_BIT, 0, 0, DBUF_S2_BIT } },
+ { BIT(PIPE_B) | BIT(PIPE_C), { 0, DBUF_S1_BIT, DBUF_S2_BIT, 0 } },
+ { BIT(PIPE_B) | BIT(PIPE_D), { 0, DBUF_S1_BIT, 0, DBUF_S2_BIT } },
+ { BIT(PIPE_C) | BIT(PIPE_D), { 0, 0, DBUF_S2_BIT, DBUF_S2_BIT } },
+ { BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C),
+ { DBUF_S1_BIT, DBUF_S1_BIT, DBUF_S2_BIT, 0 } },
+ { BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_D),
+ { DBUF_S1_BIT, DBUF_S1_BIT, 0, DBUF_S2_BIT } },
+ { BIT(PIPE_A) | BIT(PIPE_C) | BIT(PIPE_D),
+ { DBUF_S1_BIT, 0, DBUF_S2_BIT, DBUF_S2_BIT } },
+ { BIT(PIPE_B) | BIT(PIPE_C) | BIT(PIPE_D),
+ { 0, DBUF_S1_BIT, DBUF_S2_BIT, DBUF_S2_BIT } },
+ { BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C) | BIT(PIPE_D),
+ { DBUF_S1_BIT, DBUF_S1_BIT, DBUF_S2_BIT, DBUF_S2_BIT } },
+};
+
+static u32 i915_find_pipe_conf(int pipe,
+ u32 active_pipes,
+ const struct dbuf_slice_conf_entry *dbuf_slices,
+ int size)
+{
+ int i;
+
+ for (i = 0; i < size; i++) {
+ if (dbuf_slices[i].active_pipes == active_pipes)
+ return dbuf_slices[i].dbuf_mask[pipe];
+ }
+ return 0;
+}
+
+/*
+ * This function finds an entry with same enabled pipe configuration and
+ * returns correspondent DBuf slice mask as stated in BSpec for particular
+ * platform.
+ */
+static u32 icl_possible_dbuf_slices(int pipe,
+ u32 active_pipes,
+ const struct intel_crtc_state *crtc_state)
+{
+ return i915_find_pipe_conf(pipe, active_pipes,
+ icl_allowed_dbufs,
+ ARRAY_SIZE(icl_allowed_dbufs));
+}
+
+static u32 tgl_possible_dbuf_slices(int pipe,
+ u32 active_pipes,
+ const struct intel_crtc_state *crtc_state)
+{
+ return i915_find_pipe_conf(pipe, active_pipes,
+ tgl_allowed_dbufs,
+ ARRAY_SIZE(tgl_allowed_dbufs));
+}
+
+u32 i915_possible_dbuf_slices(struct drm_i915_private *dev_priv,
+ int pipe, u32 active_pipes,
+ const struct intel_crtc_state *crtc_state)
+{
+ if (IS_GEN(dev_priv, 11))
+ return icl_possible_dbuf_slices(pipe,
+ active_pipes,
+ crtc_state);
+ else if (IS_GEN(dev_priv, 12))
+ return tgl_possible_dbuf_slices(pipe,
+ active_pipes,
+ crtc_state);
+ /*
+ * For anything else just return one slice yet.
+ * Should be extended for other platforms.
+ */
+ return DBUF_S1_BIT;
+}
+
static u64
skl_plane_relative_data_rate(const struct intel_crtc_state *crtc_state,
const struct intel_plane_state *plane_state,
--
2.17.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 22+ messages in thread
* ✗ Fi.CI.SPARSE: warning for Enable second DBuf slice for ICL and TGL (rev2)
2019-11-27 14:41 [PATCH v6 0/4] Enable second DBuf slice for ICL and TGL Stanislav Lisovskiy
` (4 preceding siblings ...)
2019-11-27 14:41 ` [PATCH v6 4/4] drm/i915: Correctly map DBUF slices to pipes Stanislav Lisovskiy
@ 2019-11-27 19:31 ` Patchwork
2019-11-27 19:31 ` [Intel-gfx] " Patchwork
2019-11-27 19:59 ` ✓ Fi.CI.BAT: success " Patchwork
2019-11-29 0:02 ` ✗ Fi.CI.IGT: failure " Patchwork
7 siblings, 1 reply; 22+ messages in thread
From: Patchwork @ 2019-11-27 19:31 UTC (permalink / raw)
To: Stanislav Lisovskiy; +Cc: intel-gfx
== Series Details ==
Series: Enable second DBuf slice for ICL and TGL (rev2)
URL : https://patchwork.freedesktop.org/series/70059/
State : warning
== Summary ==
$ dim sparse origin/drm-tip
Sparse version: v0.6.0
Commit: drm/i915: Remove skl_ddl_allocation struct
Okay!
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Intel-gfx] ✗ Fi.CI.SPARSE: warning for Enable second DBuf slice for ICL and TGL (rev2)
2019-11-27 19:31 ` ✗ Fi.CI.SPARSE: warning for Enable second DBuf slice for ICL and TGL (rev2) Patchwork
@ 2019-11-27 19:31 ` Patchwork
0 siblings, 0 replies; 22+ messages in thread
From: Patchwork @ 2019-11-27 19:31 UTC (permalink / raw)
To: Stanislav Lisovskiy; +Cc: intel-gfx
== Series Details ==
Series: Enable second DBuf slice for ICL and TGL (rev2)
URL : https://patchwork.freedesktop.org/series/70059/
State : warning
== Summary ==
$ dim sparse origin/drm-tip
Sparse version: v0.6.0
Commit: drm/i915: Remove skl_ddl_allocation struct
Okay!
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 22+ messages in thread
* ✓ Fi.CI.BAT: success for Enable second DBuf slice for ICL and TGL (rev2)
2019-11-27 14:41 [PATCH v6 0/4] Enable second DBuf slice for ICL and TGL Stanislav Lisovskiy
` (5 preceding siblings ...)
2019-11-27 19:31 ` ✗ Fi.CI.SPARSE: warning for Enable second DBuf slice for ICL and TGL (rev2) Patchwork
@ 2019-11-27 19:59 ` Patchwork
2019-11-27 19:59 ` [Intel-gfx] " Patchwork
2019-11-29 0:02 ` ✗ Fi.CI.IGT: failure " Patchwork
7 siblings, 1 reply; 22+ messages in thread
From: Patchwork @ 2019-11-27 19:59 UTC (permalink / raw)
To: Stanislav Lisovskiy; +Cc: intel-gfx
== Series Details ==
Series: Enable second DBuf slice for ICL and TGL (rev2)
URL : https://patchwork.freedesktop.org/series/70059/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_7434 -> Patchwork_15469
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/index.html
Known issues
------------
Here are the changes found in Patchwork_15469 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@i915_selftest@live_hangcheck:
- fi-icl-dsi: [PASS][1] -> [INCOMPLETE][2] ([fdo#107713] / [fdo#108569])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/fi-icl-dsi/igt@i915_selftest@live_hangcheck.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/fi-icl-dsi/igt@i915_selftest@live_hangcheck.html
* igt@kms_chamelium@hdmi-edid-read:
- fi-kbl-7500u: [PASS][3] -> [FAIL][4] ([fdo#109483])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/fi-kbl-7500u/igt@kms_chamelium@hdmi-edid-read.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/fi-kbl-7500u/igt@kms_chamelium@hdmi-edid-read.html
* igt@kms_chamelium@hdmi-hpd-fast:
- fi-kbl-7500u: [PASS][5] -> [FAIL][6] ([fdo#111045] / [fdo#111096])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
* igt@kms_frontbuffer_tracking@basic:
- fi-icl-u2: [PASS][7] -> [FAIL][8] ([fdo#103167])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/fi-icl-u2/igt@kms_frontbuffer_tracking@basic.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/fi-icl-u2/igt@kms_frontbuffer_tracking@basic.html
* igt@prime_vgem@basic-fence-flip:
- fi-skl-6700k2: [PASS][9] -> [DMESG-WARN][10] ([fdo#105541])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/fi-skl-6700k2/igt@prime_vgem@basic-fence-flip.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/fi-skl-6700k2/igt@prime_vgem@basic-fence-flip.html
#### Possible fixes ####
* igt@i915_module_load@reload-no-display:
- fi-skl-lmem: [DMESG-WARN][11] ([fdo#112261]) -> [PASS][12]
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/fi-skl-lmem/igt@i915_module_load@reload-no-display.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/fi-skl-lmem/igt@i915_module_load@reload-no-display.html
* igt@i915_module_load@reload-with-fault-injection:
- fi-icl-u3: [INCOMPLETE][13] ([fdo#107713]) -> [PASS][14]
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/fi-icl-u3/igt@i915_module_load@reload-with-fault-injection.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/fi-icl-u3/igt@i915_module_load@reload-with-fault-injection.html
* igt@i915_pm_rpm@module-reload:
- fi-skl-6770hq: [DMESG-WARN][15] ([fdo#112261]) -> [PASS][16]
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html
* igt@i915_selftest@live_blt:
- fi-hsw-peppy: [DMESG-FAIL][17] ([fdo#112147]) -> [PASS][18]
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/fi-hsw-peppy/igt@i915_selftest@live_blt.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/fi-hsw-peppy/igt@i915_selftest@live_blt.html
#### Warnings ####
* igt@gem_exec_suspend@basic-s4-devices:
- fi-kbl-x1275: [DMESG-WARN][19] ([fdo#103558] / [fdo#105602] / [fdo#107139]) -> [DMESG-WARN][20] ([fdo#103558] / [fdo#105602] / [fdo#105763] / [fdo#107139])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/fi-kbl-x1275/igt@gem_exec_suspend@basic-s4-devices.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/fi-kbl-x1275/igt@gem_exec_suspend@basic-s4-devices.html
* igt@kms_busy@basic-flip-pipe-b:
- fi-kbl-x1275: [DMESG-WARN][21] ([fdo#103558] / [fdo#105602] / [fdo#105763]) -> [DMESG-WARN][22] ([fdo#103558] / [fdo#105602]) +6 similar issues
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/fi-kbl-x1275/igt@kms_busy@basic-flip-pipe-b.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/fi-kbl-x1275/igt@kms_busy@basic-flip-pipe-b.html
* igt@kms_pipe_crc_basic@read-crc-pipe-b:
- fi-kbl-x1275: [DMESG-WARN][23] ([fdo#103558] / [fdo#105602]) -> [DMESG-WARN][24] ([fdo#103558] / [fdo#105602] / [fdo#105763]) +5 similar issues
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/fi-kbl-x1275/igt@kms_pipe_crc_basic@read-crc-pipe-b.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/fi-kbl-x1275/igt@kms_pipe_crc_basic@read-crc-pipe-b.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
[fdo#103558]: https://bugs.freedesktop.org/show_bug.cgi?id=103558
[fdo#105541]: https://bugs.freedesktop.org/show_bug.cgi?id=105541
[fdo#105602]: https://bugs.freedesktop.org/show_bug.cgi?id=105602
[fdo#105763]: https://bugs.freedesktop.org/show_bug.cgi?id=105763
[fdo#107139]: https://bugs.freedesktop.org/show_bug.cgi?id=107139
[fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
[fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
[fdo#109483]: https://bugs.freedesktop.org/show_bug.cgi?id=109483
[fdo#109964]: https://bugs.freedesktop.org/show_bug.cgi?id=109964
[fdo#111045]: https://bugs.freedesktop.org/show_bug.cgi?id=111045
[fdo#111096]: https://bugs.freedesktop.org/show_bug.cgi?id=111096
[fdo#112147]: https://bugs.freedesktop.org/show_bug.cgi?id=112147
[fdo#112261]: https://bugs.freedesktop.org/show_bug.cgi?id=112261
[fdo#112298]: https://bugs.freedesktop.org/show_bug.cgi?id=112298
Participating hosts (52 -> 43)
------------------------------
Missing (9): fi-ilk-m540 fi-bdw-5557u fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-bdw-samus fi-byt-clapper fi-skl-6600u
Build changes
-------------
* CI: CI-20190529 -> None
* Linux: CI_DRM_7434 -> Patchwork_15469
CI-20190529: 20190529
CI_DRM_7434: 1bbc4d30ca9fd950cbcb73f324e00d0bc357758e @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_5312: 851c75531043cd906e028632b64b02b9312e9945 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_15469: 93e6a322bd59b057ea3301d8610580d42d2396ce @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
93e6a322bd59 drm/i915: Correctly map DBUF slices to pipes
5deeb311ab8a drm/i915: Manipulate DBuf slices properly
95c35ec148ee drm/i915: Move dbuf slice update to proper place
56049119fd0c drm/i915: Remove skl_ddl_allocation struct
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Intel-gfx] ✓ Fi.CI.BAT: success for Enable second DBuf slice for ICL and TGL (rev2)
2019-11-27 19:59 ` ✓ Fi.CI.BAT: success " Patchwork
@ 2019-11-27 19:59 ` Patchwork
0 siblings, 0 replies; 22+ messages in thread
From: Patchwork @ 2019-11-27 19:59 UTC (permalink / raw)
To: Stanislav Lisovskiy; +Cc: intel-gfx
== Series Details ==
Series: Enable second DBuf slice for ICL and TGL (rev2)
URL : https://patchwork.freedesktop.org/series/70059/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_7434 -> Patchwork_15469
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/index.html
Known issues
------------
Here are the changes found in Patchwork_15469 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@i915_selftest@live_hangcheck:
- fi-icl-dsi: [PASS][1] -> [INCOMPLETE][2] ([fdo#107713] / [fdo#108569])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/fi-icl-dsi/igt@i915_selftest@live_hangcheck.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/fi-icl-dsi/igt@i915_selftest@live_hangcheck.html
* igt@kms_chamelium@hdmi-edid-read:
- fi-kbl-7500u: [PASS][3] -> [FAIL][4] ([fdo#109483])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/fi-kbl-7500u/igt@kms_chamelium@hdmi-edid-read.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/fi-kbl-7500u/igt@kms_chamelium@hdmi-edid-read.html
* igt@kms_chamelium@hdmi-hpd-fast:
- fi-kbl-7500u: [PASS][5] -> [FAIL][6] ([fdo#111045] / [fdo#111096])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
* igt@kms_frontbuffer_tracking@basic:
- fi-icl-u2: [PASS][7] -> [FAIL][8] ([fdo#103167])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/fi-icl-u2/igt@kms_frontbuffer_tracking@basic.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/fi-icl-u2/igt@kms_frontbuffer_tracking@basic.html
* igt@prime_vgem@basic-fence-flip:
- fi-skl-6700k2: [PASS][9] -> [DMESG-WARN][10] ([fdo#105541])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/fi-skl-6700k2/igt@prime_vgem@basic-fence-flip.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/fi-skl-6700k2/igt@prime_vgem@basic-fence-flip.html
#### Possible fixes ####
* igt@i915_module_load@reload-no-display:
- fi-skl-lmem: [DMESG-WARN][11] ([fdo#112261]) -> [PASS][12]
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/fi-skl-lmem/igt@i915_module_load@reload-no-display.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/fi-skl-lmem/igt@i915_module_load@reload-no-display.html
* igt@i915_module_load@reload-with-fault-injection:
- fi-icl-u3: [INCOMPLETE][13] ([fdo#107713]) -> [PASS][14]
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/fi-icl-u3/igt@i915_module_load@reload-with-fault-injection.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/fi-icl-u3/igt@i915_module_load@reload-with-fault-injection.html
* igt@i915_pm_rpm@module-reload:
- fi-skl-6770hq: [DMESG-WARN][15] ([fdo#112261]) -> [PASS][16]
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html
* igt@i915_selftest@live_blt:
- fi-hsw-peppy: [DMESG-FAIL][17] ([fdo#112147]) -> [PASS][18]
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/fi-hsw-peppy/igt@i915_selftest@live_blt.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/fi-hsw-peppy/igt@i915_selftest@live_blt.html
#### Warnings ####
* igt@gem_exec_suspend@basic-s4-devices:
- fi-kbl-x1275: [DMESG-WARN][19] ([fdo#103558] / [fdo#105602] / [fdo#107139]) -> [DMESG-WARN][20] ([fdo#103558] / [fdo#105602] / [fdo#105763] / [fdo#107139])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/fi-kbl-x1275/igt@gem_exec_suspend@basic-s4-devices.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/fi-kbl-x1275/igt@gem_exec_suspend@basic-s4-devices.html
* igt@kms_busy@basic-flip-pipe-b:
- fi-kbl-x1275: [DMESG-WARN][21] ([fdo#103558] / [fdo#105602] / [fdo#105763]) -> [DMESG-WARN][22] ([fdo#103558] / [fdo#105602]) +6 similar issues
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/fi-kbl-x1275/igt@kms_busy@basic-flip-pipe-b.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/fi-kbl-x1275/igt@kms_busy@basic-flip-pipe-b.html
* igt@kms_pipe_crc_basic@read-crc-pipe-b:
- fi-kbl-x1275: [DMESG-WARN][23] ([fdo#103558] / [fdo#105602]) -> [DMESG-WARN][24] ([fdo#103558] / [fdo#105602] / [fdo#105763]) +5 similar issues
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/fi-kbl-x1275/igt@kms_pipe_crc_basic@read-crc-pipe-b.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/fi-kbl-x1275/igt@kms_pipe_crc_basic@read-crc-pipe-b.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
[fdo#103558]: https://bugs.freedesktop.org/show_bug.cgi?id=103558
[fdo#105541]: https://bugs.freedesktop.org/show_bug.cgi?id=105541
[fdo#105602]: https://bugs.freedesktop.org/show_bug.cgi?id=105602
[fdo#105763]: https://bugs.freedesktop.org/show_bug.cgi?id=105763
[fdo#107139]: https://bugs.freedesktop.org/show_bug.cgi?id=107139
[fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
[fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
[fdo#109483]: https://bugs.freedesktop.org/show_bug.cgi?id=109483
[fdo#109964]: https://bugs.freedesktop.org/show_bug.cgi?id=109964
[fdo#111045]: https://bugs.freedesktop.org/show_bug.cgi?id=111045
[fdo#111096]: https://bugs.freedesktop.org/show_bug.cgi?id=111096
[fdo#112147]: https://bugs.freedesktop.org/show_bug.cgi?id=112147
[fdo#112261]: https://bugs.freedesktop.org/show_bug.cgi?id=112261
[fdo#112298]: https://bugs.freedesktop.org/show_bug.cgi?id=112298
Participating hosts (52 -> 43)
------------------------------
Missing (9): fi-ilk-m540 fi-bdw-5557u fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-bdw-samus fi-byt-clapper fi-skl-6600u
Build changes
-------------
* CI: CI-20190529 -> None
* Linux: CI_DRM_7434 -> Patchwork_15469
CI-20190529: 20190529
CI_DRM_7434: 1bbc4d30ca9fd950cbcb73f324e00d0bc357758e @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_5312: 851c75531043cd906e028632b64b02b9312e9945 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_15469: 93e6a322bd59b057ea3301d8610580d42d2396ce @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
93e6a322bd59 drm/i915: Correctly map DBUF slices to pipes
5deeb311ab8a drm/i915: Manipulate DBuf slices properly
95c35ec148ee drm/i915: Move dbuf slice update to proper place
56049119fd0c drm/i915: Remove skl_ddl_allocation struct
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v6 1/4] drm/i915: Remove skl_ddl_allocation struct
2019-11-27 14:41 ` [PATCH v6 1/4] drm/i915: Remove skl_ddl_allocation struct Stanislav Lisovskiy
2019-11-27 14:41 ` [Intel-gfx] " Stanislav Lisovskiy
@ 2019-11-28 16:13 ` Ville Syrjälä
2019-11-28 16:13 ` [Intel-gfx] " Ville Syrjälä
2019-11-28 17:39 ` Lisovskiy, Stanislav
1 sibling, 2 replies; 22+ messages in thread
From: Ville Syrjälä @ 2019-11-28 16:13 UTC (permalink / raw)
To: Stanislav Lisovskiy; +Cc: intel-gfx
On Wed, Nov 27, 2019 at 04:41:25PM +0200, Stanislav Lisovskiy wrote:
> Current consensus that it is redundant as
> we already have skl_ddb_values struct out there,
> also this struct contains only single member
> which makes it unnecessary.
>
> Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_display.c | 10 +++++-----
> .../gpu/drm/i915/display/intel_display_power.c | 8 ++++----
> drivers/gpu/drm/i915/i915_drv.h | 6 +-----
> drivers/gpu/drm/i915/intel_pm.c | 15 +++++++--------
> drivers/gpu/drm/i915/intel_pm.h | 4 ++--
> 5 files changed, 19 insertions(+), 24 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index 53dc310a5f6d..530832067113 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -13393,10 +13393,10 @@ static void verify_wm_state(struct intel_crtc *crtc,
> struct skl_hw_state {
> struct skl_ddb_entry ddb_y[I915_MAX_PLANES];
> struct skl_ddb_entry ddb_uv[I915_MAX_PLANES];
> - struct skl_ddb_allocation ddb;
> + struct skl_ddb_values ddb;
> } *hw;
> - struct skl_ddb_allocation *sw_ddb;
> + struct skl_ddb_values *sw_ddb;
> struct skl_pipe_wm *sw_wm;
> struct skl_ddb_entry *hw_ddb_entry, *sw_ddb_entry;
> const enum pipe pipe = crtc->pipe;
> @@ -13415,7 +13415,7 @@ static void verify_wm_state(struct intel_crtc *crtc,
> skl_pipe_ddb_get_hw_state(crtc, hw->ddb_y, hw->ddb_uv);
>
> skl_ddb_get_hw_state(dev_priv, &hw->ddb);
> - sw_ddb = &dev_priv->wm.skl_hw.ddb;
> + sw_ddb = &dev_priv->wm.skl_hw;
>
> if (INTEL_GEN(dev_priv) >= 11 &&
> hw->ddb.enabled_slices != sw_ddb->enabled_slices)
> @@ -14647,8 +14647,8 @@ static void skl_commit_modeset_enables(struct intel_atomic_state *state)
> unsigned int updated = 0;
> bool progress;
> int i;
> - u8 hw_enabled_slices = dev_priv->wm.skl_hw.ddb.enabled_slices;
> - u8 required_slices = state->wm_results.ddb.enabled_slices;
> + u8 hw_enabled_slices = dev_priv->wm.skl_hw.enabled_slices;
> + u8 required_slices = state->wm_results.enabled_slices;
> struct skl_ddb_entry entries[I915_MAX_PIPES] = {};
>
> for_each_oldnew_intel_crtc_in_state(state, crtc, old_crtc_state, new_crtc_state, i)
> diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c b/drivers/gpu/drm/i915/display/intel_display_power.c
> index ce1b64f4dd44..75198da13479 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_power.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_power.c
> @@ -4264,7 +4264,7 @@ static u8 intel_dbuf_max_slices(struct drm_i915_private *dev_priv)
> void icl_dbuf_slices_update(struct drm_i915_private *dev_priv,
> u8 req_slices)
> {
> - const u8 hw_enabled_slices = dev_priv->wm.skl_hw.ddb.enabled_slices;
> + const u8 hw_enabled_slices = dev_priv->wm.skl_hw.enabled_slices;
> bool ret;
>
> if (req_slices > intel_dbuf_max_slices(dev_priv)) {
> @@ -4281,7 +4281,7 @@ void icl_dbuf_slices_update(struct drm_i915_private *dev_priv,
> ret = intel_dbuf_slice_set(dev_priv, DBUF_CTL_S2, false);
>
> if (ret)
> - dev_priv->wm.skl_hw.ddb.enabled_slices = req_slices;
> + dev_priv->wm.skl_hw.enabled_slices = req_slices;
> }
>
> static void icl_dbuf_enable(struct drm_i915_private *dev_priv)
> @@ -4300,7 +4300,7 @@ static void icl_dbuf_enable(struct drm_i915_private *dev_priv)
> * FIXME: for now pretend that we only have 1 slice, see
> * intel_enabled_dbuf_slices_num().
> */
> - dev_priv->wm.skl_hw.ddb.enabled_slices = 1;
> + dev_priv->wm.skl_hw.enabled_slices = 1;
> }
>
> static void icl_dbuf_disable(struct drm_i915_private *dev_priv)
> @@ -4319,7 +4319,7 @@ static void icl_dbuf_disable(struct drm_i915_private *dev_priv)
> * FIXME: for now pretend that the first slice is always
> * enabled, see intel_enabled_dbuf_slices_num().
> */
> - dev_priv->wm.skl_hw.ddb.enabled_slices = 1;
> + dev_priv->wm.skl_hw.enabled_slices = 1;
> }
>
> static void icl_mbus_init(struct drm_i915_private *dev_priv)
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index fdae5a919bc8..6457f8e557a2 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -798,13 +798,9 @@ static inline bool skl_ddb_entry_equal(const struct skl_ddb_entry *e1,
> return false;
> }
>
> -struct skl_ddb_allocation {
> - u8 enabled_slices; /* GEN11 has configurable 2 slices */
> -};
> -
> struct skl_ddb_values {
> unsigned dirty_pipes;
Didn't I already nuke this dirty_pipes crap?
> - struct skl_ddb_allocation ddb;
> + u8 enabled_slices; /* GEN11 has configurable 2 slices */
> };
>
> struct skl_wm_level {
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index 5aad9d49a528..3857ec3d2bd6 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -3823,7 +3823,7 @@ static u16 intel_get_ddb_size(struct drm_i915_private *dev_priv,
> const struct intel_crtc_state *crtc_state,
> const u64 total_data_rate,
> const int num_active,
> - struct skl_ddb_allocation *ddb)
> + struct skl_ddb_values *ddb)
> {
> const struct drm_display_mode *adjusted_mode;
> u64 total_data_bw;
> @@ -3859,7 +3859,7 @@ static void
> skl_ddb_get_pipe_allocation_limits(struct drm_i915_private *dev_priv,
> const struct intel_crtc_state *crtc_state,
> const u64 total_data_rate,
> - struct skl_ddb_allocation *ddb,
> + struct skl_ddb_values *ddb,
> struct skl_ddb_entry *alloc, /* out */
> int *num_active /* out */)
> {
> @@ -4047,7 +4047,7 @@ void skl_pipe_ddb_get_hw_state(struct intel_crtc *crtc,
> }
>
> void skl_ddb_get_hw_state(struct drm_i915_private *dev_priv,
> - struct skl_ddb_allocation *ddb /* out */)
> + struct skl_ddb_values *ddb /* out */)
> {
> ddb->enabled_slices = intel_enabled_dbuf_slices_num(dev_priv);
> }
> @@ -4227,7 +4227,7 @@ icl_get_total_relative_data_rate(struct intel_crtc_state *crtc_state,
>
> static int
> skl_allocate_pipe_ddb(struct intel_crtc_state *crtc_state,
> - struct skl_ddb_allocation *ddb /* out */)
> + struct skl_ddb_values *ddb /* out */)
> {
> struct drm_atomic_state *state = crtc_state->uapi.state;
> struct drm_crtc *crtc = crtc_state->uapi.crtc;
> @@ -5184,13 +5184,13 @@ static int
> skl_compute_ddb(struct intel_atomic_state *state)
> {
> const struct drm_i915_private *dev_priv = to_i915(state->base.dev);
> - struct skl_ddb_allocation *ddb = &state->wm_results.ddb;
> + struct skl_ddb_values *ddb = &state->wm_results;
> struct intel_crtc_state *old_crtc_state;
> struct intel_crtc_state *new_crtc_state;
> struct intel_crtc *crtc;
> int ret, i;
>
> - memcpy(ddb, &dev_priv->wm.skl_hw.ddb, sizeof(*ddb));
> + memcpy(ddb, &dev_priv->wm.skl_hw, sizeof(*ddb));
>
> for_each_oldnew_intel_crtc_in_state(state, crtc, old_crtc_state,
> new_crtc_state, i) {
> @@ -5666,11 +5666,10 @@ void skl_pipe_wm_get_hw_state(struct intel_crtc *crtc,
> void skl_wm_get_hw_state(struct drm_i915_private *dev_priv)
> {
> struct skl_ddb_values *hw = &dev_priv->wm.skl_hw;
> - struct skl_ddb_allocation *ddb = &dev_priv->wm.skl_hw.ddb;
> struct intel_crtc *crtc;
> struct intel_crtc_state *crtc_state;
>
> - skl_ddb_get_hw_state(dev_priv, ddb);
> + skl_ddb_get_hw_state(dev_priv, hw);
> for_each_intel_crtc(&dev_priv->drm, crtc) {
> crtc_state = to_intel_crtc_state(crtc->base.state);
>
> diff --git a/drivers/gpu/drm/i915/intel_pm.h b/drivers/gpu/drm/i915/intel_pm.h
> index b579c724b915..1d03732ff22e 100644
> --- a/drivers/gpu/drm/i915/intel_pm.h
> +++ b/drivers/gpu/drm/i915/intel_pm.h
> @@ -17,8 +17,8 @@ struct intel_atomic_state;
> struct intel_crtc;
> struct intel_crtc_state;
> struct intel_plane;
> -struct skl_ddb_allocation;
> struct skl_ddb_entry;
> +struct skl_ddb_values;
> struct skl_pipe_wm;
> struct skl_wm_level;
>
> @@ -37,7 +37,7 @@ void skl_pipe_ddb_get_hw_state(struct intel_crtc *crtc,
> struct skl_ddb_entry *ddb_y,
> struct skl_ddb_entry *ddb_uv);
> void skl_ddb_get_hw_state(struct drm_i915_private *dev_priv,
> - struct skl_ddb_allocation *ddb /* out */);
> + struct skl_ddb_values *ddb /* out */);
> void skl_pipe_wm_get_hw_state(struct intel_crtc *crtc,
> struct skl_pipe_wm *out);
> void g4x_wm_sanitize(struct drm_i915_private *dev_priv);
> --
> 2.17.1
--
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] 22+ messages in thread
* Re: [Intel-gfx] [PATCH v6 1/4] drm/i915: Remove skl_ddl_allocation struct
2019-11-28 16:13 ` Ville Syrjälä
@ 2019-11-28 16:13 ` Ville Syrjälä
2019-11-28 17:39 ` Lisovskiy, Stanislav
1 sibling, 0 replies; 22+ messages in thread
From: Ville Syrjälä @ 2019-11-28 16:13 UTC (permalink / raw)
To: Stanislav Lisovskiy; +Cc: intel-gfx
On Wed, Nov 27, 2019 at 04:41:25PM +0200, Stanislav Lisovskiy wrote:
> Current consensus that it is redundant as
> we already have skl_ddb_values struct out there,
> also this struct contains only single member
> which makes it unnecessary.
>
> Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_display.c | 10 +++++-----
> .../gpu/drm/i915/display/intel_display_power.c | 8 ++++----
> drivers/gpu/drm/i915/i915_drv.h | 6 +-----
> drivers/gpu/drm/i915/intel_pm.c | 15 +++++++--------
> drivers/gpu/drm/i915/intel_pm.h | 4 ++--
> 5 files changed, 19 insertions(+), 24 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index 53dc310a5f6d..530832067113 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -13393,10 +13393,10 @@ static void verify_wm_state(struct intel_crtc *crtc,
> struct skl_hw_state {
> struct skl_ddb_entry ddb_y[I915_MAX_PLANES];
> struct skl_ddb_entry ddb_uv[I915_MAX_PLANES];
> - struct skl_ddb_allocation ddb;
> + struct skl_ddb_values ddb;
> } *hw;
> - struct skl_ddb_allocation *sw_ddb;
> + struct skl_ddb_values *sw_ddb;
> struct skl_pipe_wm *sw_wm;
> struct skl_ddb_entry *hw_ddb_entry, *sw_ddb_entry;
> const enum pipe pipe = crtc->pipe;
> @@ -13415,7 +13415,7 @@ static void verify_wm_state(struct intel_crtc *crtc,
> skl_pipe_ddb_get_hw_state(crtc, hw->ddb_y, hw->ddb_uv);
>
> skl_ddb_get_hw_state(dev_priv, &hw->ddb);
> - sw_ddb = &dev_priv->wm.skl_hw.ddb;
> + sw_ddb = &dev_priv->wm.skl_hw;
>
> if (INTEL_GEN(dev_priv) >= 11 &&
> hw->ddb.enabled_slices != sw_ddb->enabled_slices)
> @@ -14647,8 +14647,8 @@ static void skl_commit_modeset_enables(struct intel_atomic_state *state)
> unsigned int updated = 0;
> bool progress;
> int i;
> - u8 hw_enabled_slices = dev_priv->wm.skl_hw.ddb.enabled_slices;
> - u8 required_slices = state->wm_results.ddb.enabled_slices;
> + u8 hw_enabled_slices = dev_priv->wm.skl_hw.enabled_slices;
> + u8 required_slices = state->wm_results.enabled_slices;
> struct skl_ddb_entry entries[I915_MAX_PIPES] = {};
>
> for_each_oldnew_intel_crtc_in_state(state, crtc, old_crtc_state, new_crtc_state, i)
> diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c b/drivers/gpu/drm/i915/display/intel_display_power.c
> index ce1b64f4dd44..75198da13479 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_power.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_power.c
> @@ -4264,7 +4264,7 @@ static u8 intel_dbuf_max_slices(struct drm_i915_private *dev_priv)
> void icl_dbuf_slices_update(struct drm_i915_private *dev_priv,
> u8 req_slices)
> {
> - const u8 hw_enabled_slices = dev_priv->wm.skl_hw.ddb.enabled_slices;
> + const u8 hw_enabled_slices = dev_priv->wm.skl_hw.enabled_slices;
> bool ret;
>
> if (req_slices > intel_dbuf_max_slices(dev_priv)) {
> @@ -4281,7 +4281,7 @@ void icl_dbuf_slices_update(struct drm_i915_private *dev_priv,
> ret = intel_dbuf_slice_set(dev_priv, DBUF_CTL_S2, false);
>
> if (ret)
> - dev_priv->wm.skl_hw.ddb.enabled_slices = req_slices;
> + dev_priv->wm.skl_hw.enabled_slices = req_slices;
> }
>
> static void icl_dbuf_enable(struct drm_i915_private *dev_priv)
> @@ -4300,7 +4300,7 @@ static void icl_dbuf_enable(struct drm_i915_private *dev_priv)
> * FIXME: for now pretend that we only have 1 slice, see
> * intel_enabled_dbuf_slices_num().
> */
> - dev_priv->wm.skl_hw.ddb.enabled_slices = 1;
> + dev_priv->wm.skl_hw.enabled_slices = 1;
> }
>
> static void icl_dbuf_disable(struct drm_i915_private *dev_priv)
> @@ -4319,7 +4319,7 @@ static void icl_dbuf_disable(struct drm_i915_private *dev_priv)
> * FIXME: for now pretend that the first slice is always
> * enabled, see intel_enabled_dbuf_slices_num().
> */
> - dev_priv->wm.skl_hw.ddb.enabled_slices = 1;
> + dev_priv->wm.skl_hw.enabled_slices = 1;
> }
>
> static void icl_mbus_init(struct drm_i915_private *dev_priv)
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index fdae5a919bc8..6457f8e557a2 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -798,13 +798,9 @@ static inline bool skl_ddb_entry_equal(const struct skl_ddb_entry *e1,
> return false;
> }
>
> -struct skl_ddb_allocation {
> - u8 enabled_slices; /* GEN11 has configurable 2 slices */
> -};
> -
> struct skl_ddb_values {
> unsigned dirty_pipes;
Didn't I already nuke this dirty_pipes crap?
> - struct skl_ddb_allocation ddb;
> + u8 enabled_slices; /* GEN11 has configurable 2 slices */
> };
>
> struct skl_wm_level {
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index 5aad9d49a528..3857ec3d2bd6 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -3823,7 +3823,7 @@ static u16 intel_get_ddb_size(struct drm_i915_private *dev_priv,
> const struct intel_crtc_state *crtc_state,
> const u64 total_data_rate,
> const int num_active,
> - struct skl_ddb_allocation *ddb)
> + struct skl_ddb_values *ddb)
> {
> const struct drm_display_mode *adjusted_mode;
> u64 total_data_bw;
> @@ -3859,7 +3859,7 @@ static void
> skl_ddb_get_pipe_allocation_limits(struct drm_i915_private *dev_priv,
> const struct intel_crtc_state *crtc_state,
> const u64 total_data_rate,
> - struct skl_ddb_allocation *ddb,
> + struct skl_ddb_values *ddb,
> struct skl_ddb_entry *alloc, /* out */
> int *num_active /* out */)
> {
> @@ -4047,7 +4047,7 @@ void skl_pipe_ddb_get_hw_state(struct intel_crtc *crtc,
> }
>
> void skl_ddb_get_hw_state(struct drm_i915_private *dev_priv,
> - struct skl_ddb_allocation *ddb /* out */)
> + struct skl_ddb_values *ddb /* out */)
> {
> ddb->enabled_slices = intel_enabled_dbuf_slices_num(dev_priv);
> }
> @@ -4227,7 +4227,7 @@ icl_get_total_relative_data_rate(struct intel_crtc_state *crtc_state,
>
> static int
> skl_allocate_pipe_ddb(struct intel_crtc_state *crtc_state,
> - struct skl_ddb_allocation *ddb /* out */)
> + struct skl_ddb_values *ddb /* out */)
> {
> struct drm_atomic_state *state = crtc_state->uapi.state;
> struct drm_crtc *crtc = crtc_state->uapi.crtc;
> @@ -5184,13 +5184,13 @@ static int
> skl_compute_ddb(struct intel_atomic_state *state)
> {
> const struct drm_i915_private *dev_priv = to_i915(state->base.dev);
> - struct skl_ddb_allocation *ddb = &state->wm_results.ddb;
> + struct skl_ddb_values *ddb = &state->wm_results;
> struct intel_crtc_state *old_crtc_state;
> struct intel_crtc_state *new_crtc_state;
> struct intel_crtc *crtc;
> int ret, i;
>
> - memcpy(ddb, &dev_priv->wm.skl_hw.ddb, sizeof(*ddb));
> + memcpy(ddb, &dev_priv->wm.skl_hw, sizeof(*ddb));
>
> for_each_oldnew_intel_crtc_in_state(state, crtc, old_crtc_state,
> new_crtc_state, i) {
> @@ -5666,11 +5666,10 @@ void skl_pipe_wm_get_hw_state(struct intel_crtc *crtc,
> void skl_wm_get_hw_state(struct drm_i915_private *dev_priv)
> {
> struct skl_ddb_values *hw = &dev_priv->wm.skl_hw;
> - struct skl_ddb_allocation *ddb = &dev_priv->wm.skl_hw.ddb;
> struct intel_crtc *crtc;
> struct intel_crtc_state *crtc_state;
>
> - skl_ddb_get_hw_state(dev_priv, ddb);
> + skl_ddb_get_hw_state(dev_priv, hw);
> for_each_intel_crtc(&dev_priv->drm, crtc) {
> crtc_state = to_intel_crtc_state(crtc->base.state);
>
> diff --git a/drivers/gpu/drm/i915/intel_pm.h b/drivers/gpu/drm/i915/intel_pm.h
> index b579c724b915..1d03732ff22e 100644
> --- a/drivers/gpu/drm/i915/intel_pm.h
> +++ b/drivers/gpu/drm/i915/intel_pm.h
> @@ -17,8 +17,8 @@ struct intel_atomic_state;
> struct intel_crtc;
> struct intel_crtc_state;
> struct intel_plane;
> -struct skl_ddb_allocation;
> struct skl_ddb_entry;
> +struct skl_ddb_values;
> struct skl_pipe_wm;
> struct skl_wm_level;
>
> @@ -37,7 +37,7 @@ void skl_pipe_ddb_get_hw_state(struct intel_crtc *crtc,
> struct skl_ddb_entry *ddb_y,
> struct skl_ddb_entry *ddb_uv);
> void skl_ddb_get_hw_state(struct drm_i915_private *dev_priv,
> - struct skl_ddb_allocation *ddb /* out */);
> + struct skl_ddb_values *ddb /* out */);
> void skl_pipe_wm_get_hw_state(struct intel_crtc *crtc,
> struct skl_pipe_wm *out);
> void g4x_wm_sanitize(struct drm_i915_private *dev_priv);
> --
> 2.17.1
--
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] 22+ messages in thread
* Re: [PATCH v6 1/4] drm/i915: Remove skl_ddl_allocation struct
2019-11-28 16:13 ` Ville Syrjälä
2019-11-28 16:13 ` [Intel-gfx] " Ville Syrjälä
@ 2019-11-28 17:39 ` Lisovskiy, Stanislav
2019-11-28 17:39 ` [Intel-gfx] " Lisovskiy, Stanislav
2019-11-28 18:42 ` Ville Syrjälä
1 sibling, 2 replies; 22+ messages in thread
From: Lisovskiy, Stanislav @ 2019-11-28 17:39 UTC (permalink / raw)
To: ville.syrjala@linux.intel.com; +Cc: intel-gfx@lists.freedesktop.org
On Thu, 2019-11-28 at 18:13 +0200, Ville Syrjälä wrote:
> On Wed, Nov 27, 2019 at 04:41:25PM +0200, Stanislav Lisovskiy wrote:
> > Current consensus that it is redundant as
> > we already have skl_ddb_values struct out there,
> > also this struct contains only single member
> > which makes it unnecessary.
> >
> > Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
> > ---
> > drivers/gpu/drm/i915/display/intel_display.c | 10 +++++-----
> > .../gpu/drm/i915/display/intel_display_power.c | 8 ++++----
> > drivers/gpu/drm/i915/i915_drv.h | 6 +-----
> > drivers/gpu/drm/i915/intel_pm.c | 15 +++++++--
> > ------
> > drivers/gpu/drm/i915/intel_pm.h | 4 ++--
> > 5 files changed, 19 insertions(+), 24 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_display.c
> > b/drivers/gpu/drm/i915/display/intel_display.c
> > index 53dc310a5f6d..530832067113 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display.c
> > +++ b/drivers/gpu/drm/i915/display/intel_display.c
> > @@ -13393,10 +13393,10 @@ static void verify_wm_state(struct
> > intel_crtc *crtc,
> > struct skl_hw_state {
> > struct skl_ddb_entry ddb_y[I915_MAX_PLANES];
> > struct skl_ddb_entry ddb_uv[I915_MAX_PLANES];
> > - struct skl_ddb_allocation ddb;
> > + struct skl_ddb_values ddb;
> > } *hw;
> > - struct skl_ddb_allocation *sw_ddb;
> > + struct skl_ddb_values *sw_ddb;
> > struct skl_pipe_wm *sw_wm;
> > struct skl_ddb_entry *hw_ddb_entry, *sw_ddb_entry;
> > const enum pipe pipe = crtc->pipe;
> > @@ -13415,7 +13415,7 @@ static void verify_wm_state(struct
> > intel_crtc *crtc,
> > skl_pipe_ddb_get_hw_state(crtc, hw->ddb_y, hw->ddb_uv);
> >
> > skl_ddb_get_hw_state(dev_priv, &hw->ddb);
> > - sw_ddb = &dev_priv->wm.skl_hw.ddb;
> > + sw_ddb = &dev_priv->wm.skl_hw;
> >
> > if (INTEL_GEN(dev_priv) >= 11 &&
> > hw->ddb.enabled_slices != sw_ddb->enabled_slices)
> > @@ -14647,8 +14647,8 @@ static void
> > skl_commit_modeset_enables(struct intel_atomic_state *state)
> > unsigned int updated = 0;
> > bool progress;
> > int i;
> > - u8 hw_enabled_slices = dev_priv->wm.skl_hw.ddb.enabled_slices;
> > - u8 required_slices = state->wm_results.ddb.enabled_slices;
> > + u8 hw_enabled_slices = dev_priv->wm.skl_hw.enabled_slices;
> > + u8 required_slices = state->wm_results.enabled_slices;
> > struct skl_ddb_entry entries[I915_MAX_PIPES] = {};
> >
> > for_each_oldnew_intel_crtc_in_state(state, crtc,
> > old_crtc_state, new_crtc_state, i)
> > diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c
> > b/drivers/gpu/drm/i915/display/intel_display_power.c
> > index ce1b64f4dd44..75198da13479 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display_power.c
> > +++ b/drivers/gpu/drm/i915/display/intel_display_power.c
> > @@ -4264,7 +4264,7 @@ static u8 intel_dbuf_max_slices(struct
> > drm_i915_private *dev_priv)
> > void icl_dbuf_slices_update(struct drm_i915_private *dev_priv,
> > u8 req_slices)
> > {
> > - const u8 hw_enabled_slices = dev_priv-
> > >wm.skl_hw.ddb.enabled_slices;
> > + const u8 hw_enabled_slices = dev_priv-
> > >wm.skl_hw.enabled_slices;
> > bool ret;
> >
> > if (req_slices > intel_dbuf_max_slices(dev_priv)) {
> > @@ -4281,7 +4281,7 @@ void icl_dbuf_slices_update(struct
> > drm_i915_private *dev_priv,
> > ret = intel_dbuf_slice_set(dev_priv, DBUF_CTL_S2,
> > false);
> >
> > if (ret)
> > - dev_priv->wm.skl_hw.ddb.enabled_slices = req_slices;
> > + dev_priv->wm.skl_hw.enabled_slices = req_slices;
> > }
> >
> > static void icl_dbuf_enable(struct drm_i915_private *dev_priv)
> > @@ -4300,7 +4300,7 @@ static void icl_dbuf_enable(struct
> > drm_i915_private *dev_priv)
> > * FIXME: for now pretend that we only have 1 slice,
> > see
> > * intel_enabled_dbuf_slices_num().
> > */
> > - dev_priv->wm.skl_hw.ddb.enabled_slices = 1;
> > + dev_priv->wm.skl_hw.enabled_slices = 1;
> > }
> >
> > static void icl_dbuf_disable(struct drm_i915_private *dev_priv)
> > @@ -4319,7 +4319,7 @@ static void icl_dbuf_disable(struct
> > drm_i915_private *dev_priv)
> > * FIXME: for now pretend that the first slice is
> > always
> > * enabled, see intel_enabled_dbuf_slices_num().
> > */
> > - dev_priv->wm.skl_hw.ddb.enabled_slices = 1;
> > + dev_priv->wm.skl_hw.enabled_slices = 1;
> > }
> >
> > static void icl_mbus_init(struct drm_i915_private *dev_priv)
> > diff --git a/drivers/gpu/drm/i915/i915_drv.h
> > b/drivers/gpu/drm/i915/i915_drv.h
> > index fdae5a919bc8..6457f8e557a2 100644
> > --- a/drivers/gpu/drm/i915/i915_drv.h
> > +++ b/drivers/gpu/drm/i915/i915_drv.h
> > @@ -798,13 +798,9 @@ static inline bool skl_ddb_entry_equal(const
> > struct skl_ddb_entry *e1,
> > return false;
> > }
> >
> > -struct skl_ddb_allocation {
> > - u8 enabled_slices; /* GEN11 has configurable 2 slices */
> > -};
> > -
> > struct skl_ddb_values {
> > unsigned dirty_pipes;
>
> Didn't I already nuke this dirty_pipes crap?
Just checked from drm-tip - it's still there :D
Anyway I don't touch it. Or do you mean I need to kill
skl_ddb_values as well?
Stan
>
> > - struct skl_ddb_allocation ddb;
> > + u8 enabled_slices; /* GEN11 has configurable 2 slices */
> > };
> >
> > struct skl_wm_level {
> > diff --git a/drivers/gpu/drm/i915/intel_pm.c
> > b/drivers/gpu/drm/i915/intel_pm.c
> > index 5aad9d49a528..3857ec3d2bd6 100644
> > --- a/drivers/gpu/drm/i915/intel_pm.c
> > +++ b/drivers/gpu/drm/i915/intel_pm.c
> > @@ -3823,7 +3823,7 @@ static u16 intel_get_ddb_size(struct
> > drm_i915_private *dev_priv,
> > const struct intel_crtc_state
> > *crtc_state,
> > const u64 total_data_rate,
> > const int num_active,
> > - struct skl_ddb_allocation *ddb)
> > + struct skl_ddb_values *ddb)
> > {
> > const struct drm_display_mode *adjusted_mode;
> > u64 total_data_bw;
> > @@ -3859,7 +3859,7 @@ static void
> > skl_ddb_get_pipe_allocation_limits(struct drm_i915_private
> > *dev_priv,
> > const struct intel_crtc_state
> > *crtc_state,
> > const u64 total_data_rate,
> > - struct skl_ddb_allocation *ddb,
> > + struct skl_ddb_values *ddb,
> > struct skl_ddb_entry *alloc, /* out
> > */
> > int *num_active /* out */)
> > {
> > @@ -4047,7 +4047,7 @@ void skl_pipe_ddb_get_hw_state(struct
> > intel_crtc *crtc,
> > }
> >
> > void skl_ddb_get_hw_state(struct drm_i915_private *dev_priv,
> > - struct skl_ddb_allocation *ddb /* out */)
> > + struct skl_ddb_values *ddb /* out */)
> > {
> > ddb->enabled_slices = intel_enabled_dbuf_slices_num(dev_priv);
> > }
> > @@ -4227,7 +4227,7 @@ icl_get_total_relative_data_rate(struct
> > intel_crtc_state *crtc_state,
> >
> > static int
> > skl_allocate_pipe_ddb(struct intel_crtc_state *crtc_state,
> > - struct skl_ddb_allocation *ddb /* out */)
> > + struct skl_ddb_values *ddb /* out */)
> > {
> > struct drm_atomic_state *state = crtc_state->uapi.state;
> > struct drm_crtc *crtc = crtc_state->uapi.crtc;
> > @@ -5184,13 +5184,13 @@ static int
> > skl_compute_ddb(struct intel_atomic_state *state)
> > {
> > const struct drm_i915_private *dev_priv = to_i915(state-
> > >base.dev);
> > - struct skl_ddb_allocation *ddb = &state->wm_results.ddb;
> > + struct skl_ddb_values *ddb = &state->wm_results;
> > struct intel_crtc_state *old_crtc_state;
> > struct intel_crtc_state *new_crtc_state;
> > struct intel_crtc *crtc;
> > int ret, i;
> >
> > - memcpy(ddb, &dev_priv->wm.skl_hw.ddb, sizeof(*ddb));
> > + memcpy(ddb, &dev_priv->wm.skl_hw, sizeof(*ddb));
> >
> > for_each_oldnew_intel_crtc_in_state(state, crtc,
> > old_crtc_state,
> > new_crtc_state, i) {
> > @@ -5666,11 +5666,10 @@ void skl_pipe_wm_get_hw_state(struct
> > intel_crtc *crtc,
> > void skl_wm_get_hw_state(struct drm_i915_private *dev_priv)
> > {
> > struct skl_ddb_values *hw = &dev_priv->wm.skl_hw;
> > - struct skl_ddb_allocation *ddb = &dev_priv->wm.skl_hw.ddb;
> > struct intel_crtc *crtc;
> > struct intel_crtc_state *crtc_state;
> >
> > - skl_ddb_get_hw_state(dev_priv, ddb);
> > + skl_ddb_get_hw_state(dev_priv, hw);
> > for_each_intel_crtc(&dev_priv->drm, crtc) {
> > crtc_state = to_intel_crtc_state(crtc->base.state);
> >
> > diff --git a/drivers/gpu/drm/i915/intel_pm.h
> > b/drivers/gpu/drm/i915/intel_pm.h
> > index b579c724b915..1d03732ff22e 100644
> > --- a/drivers/gpu/drm/i915/intel_pm.h
> > +++ b/drivers/gpu/drm/i915/intel_pm.h
> > @@ -17,8 +17,8 @@ struct intel_atomic_state;
> > struct intel_crtc;
> > struct intel_crtc_state;
> > struct intel_plane;
> > -struct skl_ddb_allocation;
> > struct skl_ddb_entry;
> > +struct skl_ddb_values;
> > struct skl_pipe_wm;
> > struct skl_wm_level;
> >
> > @@ -37,7 +37,7 @@ void skl_pipe_ddb_get_hw_state(struct intel_crtc
> > *crtc,
> > struct skl_ddb_entry *ddb_y,
> > struct skl_ddb_entry *ddb_uv);
> > void skl_ddb_get_hw_state(struct drm_i915_private *dev_priv,
> > - struct skl_ddb_allocation *ddb /* out */);
> > + struct skl_ddb_values *ddb /* out */);
> > void skl_pipe_wm_get_hw_state(struct intel_crtc *crtc,
> > struct skl_pipe_wm *out);
> > void g4x_wm_sanitize(struct drm_i915_private *dev_priv);
> > --
> > 2.17.1
>
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [Intel-gfx] [PATCH v6 1/4] drm/i915: Remove skl_ddl_allocation struct
2019-11-28 17:39 ` Lisovskiy, Stanislav
@ 2019-11-28 17:39 ` Lisovskiy, Stanislav
2019-11-28 18:42 ` Ville Syrjälä
1 sibling, 0 replies; 22+ messages in thread
From: Lisovskiy, Stanislav @ 2019-11-28 17:39 UTC (permalink / raw)
To: ville.syrjala@linux.intel.com; +Cc: intel-gfx@lists.freedesktop.org
On Thu, 2019-11-28 at 18:13 +0200, Ville Syrjälä wrote:
> On Wed, Nov 27, 2019 at 04:41:25PM +0200, Stanislav Lisovskiy wrote:
> > Current consensus that it is redundant as
> > we already have skl_ddb_values struct out there,
> > also this struct contains only single member
> > which makes it unnecessary.
> >
> > Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
> > ---
> > drivers/gpu/drm/i915/display/intel_display.c | 10 +++++-----
> > .../gpu/drm/i915/display/intel_display_power.c | 8 ++++----
> > drivers/gpu/drm/i915/i915_drv.h | 6 +-----
> > drivers/gpu/drm/i915/intel_pm.c | 15 +++++++--
> > ------
> > drivers/gpu/drm/i915/intel_pm.h | 4 ++--
> > 5 files changed, 19 insertions(+), 24 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_display.c
> > b/drivers/gpu/drm/i915/display/intel_display.c
> > index 53dc310a5f6d..530832067113 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display.c
> > +++ b/drivers/gpu/drm/i915/display/intel_display.c
> > @@ -13393,10 +13393,10 @@ static void verify_wm_state(struct
> > intel_crtc *crtc,
> > struct skl_hw_state {
> > struct skl_ddb_entry ddb_y[I915_MAX_PLANES];
> > struct skl_ddb_entry ddb_uv[I915_MAX_PLANES];
> > - struct skl_ddb_allocation ddb;
> > + struct skl_ddb_values ddb;
> > } *hw;
> > - struct skl_ddb_allocation *sw_ddb;
> > + struct skl_ddb_values *sw_ddb;
> > struct skl_pipe_wm *sw_wm;
> > struct skl_ddb_entry *hw_ddb_entry, *sw_ddb_entry;
> > const enum pipe pipe = crtc->pipe;
> > @@ -13415,7 +13415,7 @@ static void verify_wm_state(struct
> > intel_crtc *crtc,
> > skl_pipe_ddb_get_hw_state(crtc, hw->ddb_y, hw->ddb_uv);
> >
> > skl_ddb_get_hw_state(dev_priv, &hw->ddb);
> > - sw_ddb = &dev_priv->wm.skl_hw.ddb;
> > + sw_ddb = &dev_priv->wm.skl_hw;
> >
> > if (INTEL_GEN(dev_priv) >= 11 &&
> > hw->ddb.enabled_slices != sw_ddb->enabled_slices)
> > @@ -14647,8 +14647,8 @@ static void
> > skl_commit_modeset_enables(struct intel_atomic_state *state)
> > unsigned int updated = 0;
> > bool progress;
> > int i;
> > - u8 hw_enabled_slices = dev_priv->wm.skl_hw.ddb.enabled_slices;
> > - u8 required_slices = state->wm_results.ddb.enabled_slices;
> > + u8 hw_enabled_slices = dev_priv->wm.skl_hw.enabled_slices;
> > + u8 required_slices = state->wm_results.enabled_slices;
> > struct skl_ddb_entry entries[I915_MAX_PIPES] = {};
> >
> > for_each_oldnew_intel_crtc_in_state(state, crtc,
> > old_crtc_state, new_crtc_state, i)
> > diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c
> > b/drivers/gpu/drm/i915/display/intel_display_power.c
> > index ce1b64f4dd44..75198da13479 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display_power.c
> > +++ b/drivers/gpu/drm/i915/display/intel_display_power.c
> > @@ -4264,7 +4264,7 @@ static u8 intel_dbuf_max_slices(struct
> > drm_i915_private *dev_priv)
> > void icl_dbuf_slices_update(struct drm_i915_private *dev_priv,
> > u8 req_slices)
> > {
> > - const u8 hw_enabled_slices = dev_priv-
> > >wm.skl_hw.ddb.enabled_slices;
> > + const u8 hw_enabled_slices = dev_priv-
> > >wm.skl_hw.enabled_slices;
> > bool ret;
> >
> > if (req_slices > intel_dbuf_max_slices(dev_priv)) {
> > @@ -4281,7 +4281,7 @@ void icl_dbuf_slices_update(struct
> > drm_i915_private *dev_priv,
> > ret = intel_dbuf_slice_set(dev_priv, DBUF_CTL_S2,
> > false);
> >
> > if (ret)
> > - dev_priv->wm.skl_hw.ddb.enabled_slices = req_slices;
> > + dev_priv->wm.skl_hw.enabled_slices = req_slices;
> > }
> >
> > static void icl_dbuf_enable(struct drm_i915_private *dev_priv)
> > @@ -4300,7 +4300,7 @@ static void icl_dbuf_enable(struct
> > drm_i915_private *dev_priv)
> > * FIXME: for now pretend that we only have 1 slice,
> > see
> > * intel_enabled_dbuf_slices_num().
> > */
> > - dev_priv->wm.skl_hw.ddb.enabled_slices = 1;
> > + dev_priv->wm.skl_hw.enabled_slices = 1;
> > }
> >
> > static void icl_dbuf_disable(struct drm_i915_private *dev_priv)
> > @@ -4319,7 +4319,7 @@ static void icl_dbuf_disable(struct
> > drm_i915_private *dev_priv)
> > * FIXME: for now pretend that the first slice is
> > always
> > * enabled, see intel_enabled_dbuf_slices_num().
> > */
> > - dev_priv->wm.skl_hw.ddb.enabled_slices = 1;
> > + dev_priv->wm.skl_hw.enabled_slices = 1;
> > }
> >
> > static void icl_mbus_init(struct drm_i915_private *dev_priv)
> > diff --git a/drivers/gpu/drm/i915/i915_drv.h
> > b/drivers/gpu/drm/i915/i915_drv.h
> > index fdae5a919bc8..6457f8e557a2 100644
> > --- a/drivers/gpu/drm/i915/i915_drv.h
> > +++ b/drivers/gpu/drm/i915/i915_drv.h
> > @@ -798,13 +798,9 @@ static inline bool skl_ddb_entry_equal(const
> > struct skl_ddb_entry *e1,
> > return false;
> > }
> >
> > -struct skl_ddb_allocation {
> > - u8 enabled_slices; /* GEN11 has configurable 2 slices */
> > -};
> > -
> > struct skl_ddb_values {
> > unsigned dirty_pipes;
>
> Didn't I already nuke this dirty_pipes crap?
Just checked from drm-tip - it's still there :D
Anyway I don't touch it. Or do you mean I need to kill
skl_ddb_values as well?
Stan
>
> > - struct skl_ddb_allocation ddb;
> > + u8 enabled_slices; /* GEN11 has configurable 2 slices */
> > };
> >
> > struct skl_wm_level {
> > diff --git a/drivers/gpu/drm/i915/intel_pm.c
> > b/drivers/gpu/drm/i915/intel_pm.c
> > index 5aad9d49a528..3857ec3d2bd6 100644
> > --- a/drivers/gpu/drm/i915/intel_pm.c
> > +++ b/drivers/gpu/drm/i915/intel_pm.c
> > @@ -3823,7 +3823,7 @@ static u16 intel_get_ddb_size(struct
> > drm_i915_private *dev_priv,
> > const struct intel_crtc_state
> > *crtc_state,
> > const u64 total_data_rate,
> > const int num_active,
> > - struct skl_ddb_allocation *ddb)
> > + struct skl_ddb_values *ddb)
> > {
> > const struct drm_display_mode *adjusted_mode;
> > u64 total_data_bw;
> > @@ -3859,7 +3859,7 @@ static void
> > skl_ddb_get_pipe_allocation_limits(struct drm_i915_private
> > *dev_priv,
> > const struct intel_crtc_state
> > *crtc_state,
> > const u64 total_data_rate,
> > - struct skl_ddb_allocation *ddb,
> > + struct skl_ddb_values *ddb,
> > struct skl_ddb_entry *alloc, /* out
> > */
> > int *num_active /* out */)
> > {
> > @@ -4047,7 +4047,7 @@ void skl_pipe_ddb_get_hw_state(struct
> > intel_crtc *crtc,
> > }
> >
> > void skl_ddb_get_hw_state(struct drm_i915_private *dev_priv,
> > - struct skl_ddb_allocation *ddb /* out */)
> > + struct skl_ddb_values *ddb /* out */)
> > {
> > ddb->enabled_slices = intel_enabled_dbuf_slices_num(dev_priv);
> > }
> > @@ -4227,7 +4227,7 @@ icl_get_total_relative_data_rate(struct
> > intel_crtc_state *crtc_state,
> >
> > static int
> > skl_allocate_pipe_ddb(struct intel_crtc_state *crtc_state,
> > - struct skl_ddb_allocation *ddb /* out */)
> > + struct skl_ddb_values *ddb /* out */)
> > {
> > struct drm_atomic_state *state = crtc_state->uapi.state;
> > struct drm_crtc *crtc = crtc_state->uapi.crtc;
> > @@ -5184,13 +5184,13 @@ static int
> > skl_compute_ddb(struct intel_atomic_state *state)
> > {
> > const struct drm_i915_private *dev_priv = to_i915(state-
> > >base.dev);
> > - struct skl_ddb_allocation *ddb = &state->wm_results.ddb;
> > + struct skl_ddb_values *ddb = &state->wm_results;
> > struct intel_crtc_state *old_crtc_state;
> > struct intel_crtc_state *new_crtc_state;
> > struct intel_crtc *crtc;
> > int ret, i;
> >
> > - memcpy(ddb, &dev_priv->wm.skl_hw.ddb, sizeof(*ddb));
> > + memcpy(ddb, &dev_priv->wm.skl_hw, sizeof(*ddb));
> >
> > for_each_oldnew_intel_crtc_in_state(state, crtc,
> > old_crtc_state,
> > new_crtc_state, i) {
> > @@ -5666,11 +5666,10 @@ void skl_pipe_wm_get_hw_state(struct
> > intel_crtc *crtc,
> > void skl_wm_get_hw_state(struct drm_i915_private *dev_priv)
> > {
> > struct skl_ddb_values *hw = &dev_priv->wm.skl_hw;
> > - struct skl_ddb_allocation *ddb = &dev_priv->wm.skl_hw.ddb;
> > struct intel_crtc *crtc;
> > struct intel_crtc_state *crtc_state;
> >
> > - skl_ddb_get_hw_state(dev_priv, ddb);
> > + skl_ddb_get_hw_state(dev_priv, hw);
> > for_each_intel_crtc(&dev_priv->drm, crtc) {
> > crtc_state = to_intel_crtc_state(crtc->base.state);
> >
> > diff --git a/drivers/gpu/drm/i915/intel_pm.h
> > b/drivers/gpu/drm/i915/intel_pm.h
> > index b579c724b915..1d03732ff22e 100644
> > --- a/drivers/gpu/drm/i915/intel_pm.h
> > +++ b/drivers/gpu/drm/i915/intel_pm.h
> > @@ -17,8 +17,8 @@ struct intel_atomic_state;
> > struct intel_crtc;
> > struct intel_crtc_state;
> > struct intel_plane;
> > -struct skl_ddb_allocation;
> > struct skl_ddb_entry;
> > +struct skl_ddb_values;
> > struct skl_pipe_wm;
> > struct skl_wm_level;
> >
> > @@ -37,7 +37,7 @@ void skl_pipe_ddb_get_hw_state(struct intel_crtc
> > *crtc,
> > struct skl_ddb_entry *ddb_y,
> > struct skl_ddb_entry *ddb_uv);
> > void skl_ddb_get_hw_state(struct drm_i915_private *dev_priv,
> > - struct skl_ddb_allocation *ddb /* out */);
> > + struct skl_ddb_values *ddb /* out */);
> > void skl_pipe_wm_get_hw_state(struct intel_crtc *crtc,
> > struct skl_pipe_wm *out);
> > void g4x_wm_sanitize(struct drm_i915_private *dev_priv);
> > --
> > 2.17.1
>
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v6 1/4] drm/i915: Remove skl_ddl_allocation struct
2019-11-28 17:39 ` Lisovskiy, Stanislav
2019-11-28 17:39 ` [Intel-gfx] " Lisovskiy, Stanislav
@ 2019-11-28 18:42 ` Ville Syrjälä
2019-11-28 18:42 ` [Intel-gfx] " Ville Syrjälä
1 sibling, 1 reply; 22+ messages in thread
From: Ville Syrjälä @ 2019-11-28 18:42 UTC (permalink / raw)
To: Lisovskiy, Stanislav; +Cc: intel-gfx@lists.freedesktop.org
On Thu, Nov 28, 2019 at 05:39:55PM +0000, Lisovskiy, Stanislav wrote:
> On Thu, 2019-11-28 at 18:13 +0200, Ville Syrjälä wrote:
> > On Wed, Nov 27, 2019 at 04:41:25PM +0200, Stanislav Lisovskiy wrote:
> > > Current consensus that it is redundant as
> > > we already have skl_ddb_values struct out there,
> > > also this struct contains only single member
> > > which makes it unnecessary.
> > >
> > > Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
> > > ---
> > > drivers/gpu/drm/i915/display/intel_display.c | 10 +++++-----
> > > .../gpu/drm/i915/display/intel_display_power.c | 8 ++++----
> > > drivers/gpu/drm/i915/i915_drv.h | 6 +-----
> > > drivers/gpu/drm/i915/intel_pm.c | 15 +++++++--
> > > ------
> > > drivers/gpu/drm/i915/intel_pm.h | 4 ++--
> > > 5 files changed, 19 insertions(+), 24 deletions(-)
> > >
> > > diff --git a/drivers/gpu/drm/i915/display/intel_display.c
> > > b/drivers/gpu/drm/i915/display/intel_display.c
> > > index 53dc310a5f6d..530832067113 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_display.c
> > > +++ b/drivers/gpu/drm/i915/display/intel_display.c
> > > @@ -13393,10 +13393,10 @@ static void verify_wm_state(struct
> > > intel_crtc *crtc,
> > > struct skl_hw_state {
> > > struct skl_ddb_entry ddb_y[I915_MAX_PLANES];
> > > struct skl_ddb_entry ddb_uv[I915_MAX_PLANES];
> > > - struct skl_ddb_allocation ddb;
> > > + struct skl_ddb_values ddb;
> > > } *hw;
> > > - struct skl_ddb_allocation *sw_ddb;
> > > + struct skl_ddb_values *sw_ddb;
> > > struct skl_pipe_wm *sw_wm;
> > > struct skl_ddb_entry *hw_ddb_entry, *sw_ddb_entry;
> > > const enum pipe pipe = crtc->pipe;
> > > @@ -13415,7 +13415,7 @@ static void verify_wm_state(struct
> > > intel_crtc *crtc,
> > > skl_pipe_ddb_get_hw_state(crtc, hw->ddb_y, hw->ddb_uv);
> > >
> > > skl_ddb_get_hw_state(dev_priv, &hw->ddb);
> > > - sw_ddb = &dev_priv->wm.skl_hw.ddb;
> > > + sw_ddb = &dev_priv->wm.skl_hw;
> > >
> > > if (INTEL_GEN(dev_priv) >= 11 &&
> > > hw->ddb.enabled_slices != sw_ddb->enabled_slices)
> > > @@ -14647,8 +14647,8 @@ static void
> > > skl_commit_modeset_enables(struct intel_atomic_state *state)
> > > unsigned int updated = 0;
> > > bool progress;
> > > int i;
> > > - u8 hw_enabled_slices = dev_priv->wm.skl_hw.ddb.enabled_slices;
> > > - u8 required_slices = state->wm_results.ddb.enabled_slices;
> > > + u8 hw_enabled_slices = dev_priv->wm.skl_hw.enabled_slices;
> > > + u8 required_slices = state->wm_results.enabled_slices;
> > > struct skl_ddb_entry entries[I915_MAX_PIPES] = {};
> > >
> > > for_each_oldnew_intel_crtc_in_state(state, crtc,
> > > old_crtc_state, new_crtc_state, i)
> > > diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c
> > > b/drivers/gpu/drm/i915/display/intel_display_power.c
> > > index ce1b64f4dd44..75198da13479 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_display_power.c
> > > +++ b/drivers/gpu/drm/i915/display/intel_display_power.c
> > > @@ -4264,7 +4264,7 @@ static u8 intel_dbuf_max_slices(struct
> > > drm_i915_private *dev_priv)
> > > void icl_dbuf_slices_update(struct drm_i915_private *dev_priv,
> > > u8 req_slices)
> > > {
> > > - const u8 hw_enabled_slices = dev_priv-
> > > >wm.skl_hw.ddb.enabled_slices;
> > > + const u8 hw_enabled_slices = dev_priv-
> > > >wm.skl_hw.enabled_slices;
> > > bool ret;
> > >
> > > if (req_slices > intel_dbuf_max_slices(dev_priv)) {
> > > @@ -4281,7 +4281,7 @@ void icl_dbuf_slices_update(struct
> > > drm_i915_private *dev_priv,
> > > ret = intel_dbuf_slice_set(dev_priv, DBUF_CTL_S2,
> > > false);
> > >
> > > if (ret)
> > > - dev_priv->wm.skl_hw.ddb.enabled_slices = req_slices;
> > > + dev_priv->wm.skl_hw.enabled_slices = req_slices;
> > > }
> > >
> > > static void icl_dbuf_enable(struct drm_i915_private *dev_priv)
> > > @@ -4300,7 +4300,7 @@ static void icl_dbuf_enable(struct
> > > drm_i915_private *dev_priv)
> > > * FIXME: for now pretend that we only have 1 slice,
> > > see
> > > * intel_enabled_dbuf_slices_num().
> > > */
> > > - dev_priv->wm.skl_hw.ddb.enabled_slices = 1;
> > > + dev_priv->wm.skl_hw.enabled_slices = 1;
> > > }
> > >
> > > static void icl_dbuf_disable(struct drm_i915_private *dev_priv)
> > > @@ -4319,7 +4319,7 @@ static void icl_dbuf_disable(struct
> > > drm_i915_private *dev_priv)
> > > * FIXME: for now pretend that the first slice is
> > > always
> > > * enabled, see intel_enabled_dbuf_slices_num().
> > > */
> > > - dev_priv->wm.skl_hw.ddb.enabled_slices = 1;
> > > + dev_priv->wm.skl_hw.enabled_slices = 1;
> > > }
> > >
> > > static void icl_mbus_init(struct drm_i915_private *dev_priv)
> > > diff --git a/drivers/gpu/drm/i915/i915_drv.h
> > > b/drivers/gpu/drm/i915/i915_drv.h
> > > index fdae5a919bc8..6457f8e557a2 100644
> > > --- a/drivers/gpu/drm/i915/i915_drv.h
> > > +++ b/drivers/gpu/drm/i915/i915_drv.h
> > > @@ -798,13 +798,9 @@ static inline bool skl_ddb_entry_equal(const
> > > struct skl_ddb_entry *e1,
> > > return false;
> > > }
> > >
> > > -struct skl_ddb_allocation {
> > > - u8 enabled_slices; /* GEN11 has configurable 2 slices */
> > > -};
> > > -
> > > struct skl_ddb_values {
> > > unsigned dirty_pipes;
> >
> > Didn't I already nuke this dirty_pipes crap?
>
> Just checked from drm-tip - it's still there :D
>
> Anyway I don't touch it. Or do you mean I need to kill
> skl_ddb_values as well?
Yeah, I think we should probably kill it.
https://patchwork.freedesktop.org/series/67930/ is the series where I
nuke the dirty_pipes crap. I guess you stopped reading before you
reached that far.
>
> Stan
>
> >
> > > - struct skl_ddb_allocation ddb;
> > > + u8 enabled_slices; /* GEN11 has configurable 2 slices */
> > > };
> > >
> > > struct skl_wm_level {
> > > diff --git a/drivers/gpu/drm/i915/intel_pm.c
> > > b/drivers/gpu/drm/i915/intel_pm.c
> > > index 5aad9d49a528..3857ec3d2bd6 100644
> > > --- a/drivers/gpu/drm/i915/intel_pm.c
> > > +++ b/drivers/gpu/drm/i915/intel_pm.c
> > > @@ -3823,7 +3823,7 @@ static u16 intel_get_ddb_size(struct
> > > drm_i915_private *dev_priv,
> > > const struct intel_crtc_state
> > > *crtc_state,
> > > const u64 total_data_rate,
> > > const int num_active,
> > > - struct skl_ddb_allocation *ddb)
> > > + struct skl_ddb_values *ddb)
> > > {
> > > const struct drm_display_mode *adjusted_mode;
> > > u64 total_data_bw;
> > > @@ -3859,7 +3859,7 @@ static void
> > > skl_ddb_get_pipe_allocation_limits(struct drm_i915_private
> > > *dev_priv,
> > > const struct intel_crtc_state
> > > *crtc_state,
> > > const u64 total_data_rate,
> > > - struct skl_ddb_allocation *ddb,
> > > + struct skl_ddb_values *ddb,
> > > struct skl_ddb_entry *alloc, /* out
> > > */
> > > int *num_active /* out */)
> > > {
> > > @@ -4047,7 +4047,7 @@ void skl_pipe_ddb_get_hw_state(struct
> > > intel_crtc *crtc,
> > > }
> > >
> > > void skl_ddb_get_hw_state(struct drm_i915_private *dev_priv,
> > > - struct skl_ddb_allocation *ddb /* out */)
> > > + struct skl_ddb_values *ddb /* out */)
> > > {
> > > ddb->enabled_slices = intel_enabled_dbuf_slices_num(dev_priv);
> > > }
> > > @@ -4227,7 +4227,7 @@ icl_get_total_relative_data_rate(struct
> > > intel_crtc_state *crtc_state,
> > >
> > > static int
> > > skl_allocate_pipe_ddb(struct intel_crtc_state *crtc_state,
> > > - struct skl_ddb_allocation *ddb /* out */)
> > > + struct skl_ddb_values *ddb /* out */)
> > > {
> > > struct drm_atomic_state *state = crtc_state->uapi.state;
> > > struct drm_crtc *crtc = crtc_state->uapi.crtc;
> > > @@ -5184,13 +5184,13 @@ static int
> > > skl_compute_ddb(struct intel_atomic_state *state)
> > > {
> > > const struct drm_i915_private *dev_priv = to_i915(state-
> > > >base.dev);
> > > - struct skl_ddb_allocation *ddb = &state->wm_results.ddb;
> > > + struct skl_ddb_values *ddb = &state->wm_results;
> > > struct intel_crtc_state *old_crtc_state;
> > > struct intel_crtc_state *new_crtc_state;
> > > struct intel_crtc *crtc;
> > > int ret, i;
> > >
> > > - memcpy(ddb, &dev_priv->wm.skl_hw.ddb, sizeof(*ddb));
> > > + memcpy(ddb, &dev_priv->wm.skl_hw, sizeof(*ddb));
> > >
> > > for_each_oldnew_intel_crtc_in_state(state, crtc,
> > > old_crtc_state,
> > > new_crtc_state, i) {
> > > @@ -5666,11 +5666,10 @@ void skl_pipe_wm_get_hw_state(struct
> > > intel_crtc *crtc,
> > > void skl_wm_get_hw_state(struct drm_i915_private *dev_priv)
> > > {
> > > struct skl_ddb_values *hw = &dev_priv->wm.skl_hw;
> > > - struct skl_ddb_allocation *ddb = &dev_priv->wm.skl_hw.ddb;
> > > struct intel_crtc *crtc;
> > > struct intel_crtc_state *crtc_state;
> > >
> > > - skl_ddb_get_hw_state(dev_priv, ddb);
> > > + skl_ddb_get_hw_state(dev_priv, hw);
> > > for_each_intel_crtc(&dev_priv->drm, crtc) {
> > > crtc_state = to_intel_crtc_state(crtc->base.state);
> > >
> > > diff --git a/drivers/gpu/drm/i915/intel_pm.h
> > > b/drivers/gpu/drm/i915/intel_pm.h
> > > index b579c724b915..1d03732ff22e 100644
> > > --- a/drivers/gpu/drm/i915/intel_pm.h
> > > +++ b/drivers/gpu/drm/i915/intel_pm.h
> > > @@ -17,8 +17,8 @@ struct intel_atomic_state;
> > > struct intel_crtc;
> > > struct intel_crtc_state;
> > > struct intel_plane;
> > > -struct skl_ddb_allocation;
> > > struct skl_ddb_entry;
> > > +struct skl_ddb_values;
> > > struct skl_pipe_wm;
> > > struct skl_wm_level;
> > >
> > > @@ -37,7 +37,7 @@ void skl_pipe_ddb_get_hw_state(struct intel_crtc
> > > *crtc,
> > > struct skl_ddb_entry *ddb_y,
> > > struct skl_ddb_entry *ddb_uv);
> > > void skl_ddb_get_hw_state(struct drm_i915_private *dev_priv,
> > > - struct skl_ddb_allocation *ddb /* out */);
> > > + struct skl_ddb_values *ddb /* out */);
> > > void skl_pipe_wm_get_hw_state(struct intel_crtc *crtc,
> > > struct skl_pipe_wm *out);
> > > void g4x_wm_sanitize(struct drm_i915_private *dev_priv);
> > > --
> > > 2.17.1
> >
> >
--
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] 22+ messages in thread
* Re: [Intel-gfx] [PATCH v6 1/4] drm/i915: Remove skl_ddl_allocation struct
2019-11-28 18:42 ` Ville Syrjälä
@ 2019-11-28 18:42 ` Ville Syrjälä
0 siblings, 0 replies; 22+ messages in thread
From: Ville Syrjälä @ 2019-11-28 18:42 UTC (permalink / raw)
To: Lisovskiy, Stanislav; +Cc: intel-gfx@lists.freedesktop.org
On Thu, Nov 28, 2019 at 05:39:55PM +0000, Lisovskiy, Stanislav wrote:
> On Thu, 2019-11-28 at 18:13 +0200, Ville Syrjälä wrote:
> > On Wed, Nov 27, 2019 at 04:41:25PM +0200, Stanislav Lisovskiy wrote:
> > > Current consensus that it is redundant as
> > > we already have skl_ddb_values struct out there,
> > > also this struct contains only single member
> > > which makes it unnecessary.
> > >
> > > Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
> > > ---
> > > drivers/gpu/drm/i915/display/intel_display.c | 10 +++++-----
> > > .../gpu/drm/i915/display/intel_display_power.c | 8 ++++----
> > > drivers/gpu/drm/i915/i915_drv.h | 6 +-----
> > > drivers/gpu/drm/i915/intel_pm.c | 15 +++++++--
> > > ------
> > > drivers/gpu/drm/i915/intel_pm.h | 4 ++--
> > > 5 files changed, 19 insertions(+), 24 deletions(-)
> > >
> > > diff --git a/drivers/gpu/drm/i915/display/intel_display.c
> > > b/drivers/gpu/drm/i915/display/intel_display.c
> > > index 53dc310a5f6d..530832067113 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_display.c
> > > +++ b/drivers/gpu/drm/i915/display/intel_display.c
> > > @@ -13393,10 +13393,10 @@ static void verify_wm_state(struct
> > > intel_crtc *crtc,
> > > struct skl_hw_state {
> > > struct skl_ddb_entry ddb_y[I915_MAX_PLANES];
> > > struct skl_ddb_entry ddb_uv[I915_MAX_PLANES];
> > > - struct skl_ddb_allocation ddb;
> > > + struct skl_ddb_values ddb;
> > > } *hw;
> > > - struct skl_ddb_allocation *sw_ddb;
> > > + struct skl_ddb_values *sw_ddb;
> > > struct skl_pipe_wm *sw_wm;
> > > struct skl_ddb_entry *hw_ddb_entry, *sw_ddb_entry;
> > > const enum pipe pipe = crtc->pipe;
> > > @@ -13415,7 +13415,7 @@ static void verify_wm_state(struct
> > > intel_crtc *crtc,
> > > skl_pipe_ddb_get_hw_state(crtc, hw->ddb_y, hw->ddb_uv);
> > >
> > > skl_ddb_get_hw_state(dev_priv, &hw->ddb);
> > > - sw_ddb = &dev_priv->wm.skl_hw.ddb;
> > > + sw_ddb = &dev_priv->wm.skl_hw;
> > >
> > > if (INTEL_GEN(dev_priv) >= 11 &&
> > > hw->ddb.enabled_slices != sw_ddb->enabled_slices)
> > > @@ -14647,8 +14647,8 @@ static void
> > > skl_commit_modeset_enables(struct intel_atomic_state *state)
> > > unsigned int updated = 0;
> > > bool progress;
> > > int i;
> > > - u8 hw_enabled_slices = dev_priv->wm.skl_hw.ddb.enabled_slices;
> > > - u8 required_slices = state->wm_results.ddb.enabled_slices;
> > > + u8 hw_enabled_slices = dev_priv->wm.skl_hw.enabled_slices;
> > > + u8 required_slices = state->wm_results.enabled_slices;
> > > struct skl_ddb_entry entries[I915_MAX_PIPES] = {};
> > >
> > > for_each_oldnew_intel_crtc_in_state(state, crtc,
> > > old_crtc_state, new_crtc_state, i)
> > > diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c
> > > b/drivers/gpu/drm/i915/display/intel_display_power.c
> > > index ce1b64f4dd44..75198da13479 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_display_power.c
> > > +++ b/drivers/gpu/drm/i915/display/intel_display_power.c
> > > @@ -4264,7 +4264,7 @@ static u8 intel_dbuf_max_slices(struct
> > > drm_i915_private *dev_priv)
> > > void icl_dbuf_slices_update(struct drm_i915_private *dev_priv,
> > > u8 req_slices)
> > > {
> > > - const u8 hw_enabled_slices = dev_priv-
> > > >wm.skl_hw.ddb.enabled_slices;
> > > + const u8 hw_enabled_slices = dev_priv-
> > > >wm.skl_hw.enabled_slices;
> > > bool ret;
> > >
> > > if (req_slices > intel_dbuf_max_slices(dev_priv)) {
> > > @@ -4281,7 +4281,7 @@ void icl_dbuf_slices_update(struct
> > > drm_i915_private *dev_priv,
> > > ret = intel_dbuf_slice_set(dev_priv, DBUF_CTL_S2,
> > > false);
> > >
> > > if (ret)
> > > - dev_priv->wm.skl_hw.ddb.enabled_slices = req_slices;
> > > + dev_priv->wm.skl_hw.enabled_slices = req_slices;
> > > }
> > >
> > > static void icl_dbuf_enable(struct drm_i915_private *dev_priv)
> > > @@ -4300,7 +4300,7 @@ static void icl_dbuf_enable(struct
> > > drm_i915_private *dev_priv)
> > > * FIXME: for now pretend that we only have 1 slice,
> > > see
> > > * intel_enabled_dbuf_slices_num().
> > > */
> > > - dev_priv->wm.skl_hw.ddb.enabled_slices = 1;
> > > + dev_priv->wm.skl_hw.enabled_slices = 1;
> > > }
> > >
> > > static void icl_dbuf_disable(struct drm_i915_private *dev_priv)
> > > @@ -4319,7 +4319,7 @@ static void icl_dbuf_disable(struct
> > > drm_i915_private *dev_priv)
> > > * FIXME: for now pretend that the first slice is
> > > always
> > > * enabled, see intel_enabled_dbuf_slices_num().
> > > */
> > > - dev_priv->wm.skl_hw.ddb.enabled_slices = 1;
> > > + dev_priv->wm.skl_hw.enabled_slices = 1;
> > > }
> > >
> > > static void icl_mbus_init(struct drm_i915_private *dev_priv)
> > > diff --git a/drivers/gpu/drm/i915/i915_drv.h
> > > b/drivers/gpu/drm/i915/i915_drv.h
> > > index fdae5a919bc8..6457f8e557a2 100644
> > > --- a/drivers/gpu/drm/i915/i915_drv.h
> > > +++ b/drivers/gpu/drm/i915/i915_drv.h
> > > @@ -798,13 +798,9 @@ static inline bool skl_ddb_entry_equal(const
> > > struct skl_ddb_entry *e1,
> > > return false;
> > > }
> > >
> > > -struct skl_ddb_allocation {
> > > - u8 enabled_slices; /* GEN11 has configurable 2 slices */
> > > -};
> > > -
> > > struct skl_ddb_values {
> > > unsigned dirty_pipes;
> >
> > Didn't I already nuke this dirty_pipes crap?
>
> Just checked from drm-tip - it's still there :D
>
> Anyway I don't touch it. Or do you mean I need to kill
> skl_ddb_values as well?
Yeah, I think we should probably kill it.
https://patchwork.freedesktop.org/series/67930/ is the series where I
nuke the dirty_pipes crap. I guess you stopped reading before you
reached that far.
>
> Stan
>
> >
> > > - struct skl_ddb_allocation ddb;
> > > + u8 enabled_slices; /* GEN11 has configurable 2 slices */
> > > };
> > >
> > > struct skl_wm_level {
> > > diff --git a/drivers/gpu/drm/i915/intel_pm.c
> > > b/drivers/gpu/drm/i915/intel_pm.c
> > > index 5aad9d49a528..3857ec3d2bd6 100644
> > > --- a/drivers/gpu/drm/i915/intel_pm.c
> > > +++ b/drivers/gpu/drm/i915/intel_pm.c
> > > @@ -3823,7 +3823,7 @@ static u16 intel_get_ddb_size(struct
> > > drm_i915_private *dev_priv,
> > > const struct intel_crtc_state
> > > *crtc_state,
> > > const u64 total_data_rate,
> > > const int num_active,
> > > - struct skl_ddb_allocation *ddb)
> > > + struct skl_ddb_values *ddb)
> > > {
> > > const struct drm_display_mode *adjusted_mode;
> > > u64 total_data_bw;
> > > @@ -3859,7 +3859,7 @@ static void
> > > skl_ddb_get_pipe_allocation_limits(struct drm_i915_private
> > > *dev_priv,
> > > const struct intel_crtc_state
> > > *crtc_state,
> > > const u64 total_data_rate,
> > > - struct skl_ddb_allocation *ddb,
> > > + struct skl_ddb_values *ddb,
> > > struct skl_ddb_entry *alloc, /* out
> > > */
> > > int *num_active /* out */)
> > > {
> > > @@ -4047,7 +4047,7 @@ void skl_pipe_ddb_get_hw_state(struct
> > > intel_crtc *crtc,
> > > }
> > >
> > > void skl_ddb_get_hw_state(struct drm_i915_private *dev_priv,
> > > - struct skl_ddb_allocation *ddb /* out */)
> > > + struct skl_ddb_values *ddb /* out */)
> > > {
> > > ddb->enabled_slices = intel_enabled_dbuf_slices_num(dev_priv);
> > > }
> > > @@ -4227,7 +4227,7 @@ icl_get_total_relative_data_rate(struct
> > > intel_crtc_state *crtc_state,
> > >
> > > static int
> > > skl_allocate_pipe_ddb(struct intel_crtc_state *crtc_state,
> > > - struct skl_ddb_allocation *ddb /* out */)
> > > + struct skl_ddb_values *ddb /* out */)
> > > {
> > > struct drm_atomic_state *state = crtc_state->uapi.state;
> > > struct drm_crtc *crtc = crtc_state->uapi.crtc;
> > > @@ -5184,13 +5184,13 @@ static int
> > > skl_compute_ddb(struct intel_atomic_state *state)
> > > {
> > > const struct drm_i915_private *dev_priv = to_i915(state-
> > > >base.dev);
> > > - struct skl_ddb_allocation *ddb = &state->wm_results.ddb;
> > > + struct skl_ddb_values *ddb = &state->wm_results;
> > > struct intel_crtc_state *old_crtc_state;
> > > struct intel_crtc_state *new_crtc_state;
> > > struct intel_crtc *crtc;
> > > int ret, i;
> > >
> > > - memcpy(ddb, &dev_priv->wm.skl_hw.ddb, sizeof(*ddb));
> > > + memcpy(ddb, &dev_priv->wm.skl_hw, sizeof(*ddb));
> > >
> > > for_each_oldnew_intel_crtc_in_state(state, crtc,
> > > old_crtc_state,
> > > new_crtc_state, i) {
> > > @@ -5666,11 +5666,10 @@ void skl_pipe_wm_get_hw_state(struct
> > > intel_crtc *crtc,
> > > void skl_wm_get_hw_state(struct drm_i915_private *dev_priv)
> > > {
> > > struct skl_ddb_values *hw = &dev_priv->wm.skl_hw;
> > > - struct skl_ddb_allocation *ddb = &dev_priv->wm.skl_hw.ddb;
> > > struct intel_crtc *crtc;
> > > struct intel_crtc_state *crtc_state;
> > >
> > > - skl_ddb_get_hw_state(dev_priv, ddb);
> > > + skl_ddb_get_hw_state(dev_priv, hw);
> > > for_each_intel_crtc(&dev_priv->drm, crtc) {
> > > crtc_state = to_intel_crtc_state(crtc->base.state);
> > >
> > > diff --git a/drivers/gpu/drm/i915/intel_pm.h
> > > b/drivers/gpu/drm/i915/intel_pm.h
> > > index b579c724b915..1d03732ff22e 100644
> > > --- a/drivers/gpu/drm/i915/intel_pm.h
> > > +++ b/drivers/gpu/drm/i915/intel_pm.h
> > > @@ -17,8 +17,8 @@ struct intel_atomic_state;
> > > struct intel_crtc;
> > > struct intel_crtc_state;
> > > struct intel_plane;
> > > -struct skl_ddb_allocation;
> > > struct skl_ddb_entry;
> > > +struct skl_ddb_values;
> > > struct skl_pipe_wm;
> > > struct skl_wm_level;
> > >
> > > @@ -37,7 +37,7 @@ void skl_pipe_ddb_get_hw_state(struct intel_crtc
> > > *crtc,
> > > struct skl_ddb_entry *ddb_y,
> > > struct skl_ddb_entry *ddb_uv);
> > > void skl_ddb_get_hw_state(struct drm_i915_private *dev_priv,
> > > - struct skl_ddb_allocation *ddb /* out */);
> > > + struct skl_ddb_values *ddb /* out */);
> > > void skl_pipe_wm_get_hw_state(struct intel_crtc *crtc,
> > > struct skl_pipe_wm *out);
> > > void g4x_wm_sanitize(struct drm_i915_private *dev_priv);
> > > --
> > > 2.17.1
> >
> >
--
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] 22+ messages in thread
* ✗ Fi.CI.IGT: failure for Enable second DBuf slice for ICL and TGL (rev2)
2019-11-27 14:41 [PATCH v6 0/4] Enable second DBuf slice for ICL and TGL Stanislav Lisovskiy
` (6 preceding siblings ...)
2019-11-27 19:59 ` ✓ Fi.CI.BAT: success " Patchwork
@ 2019-11-29 0:02 ` Patchwork
2019-11-29 0:02 ` [Intel-gfx] " Patchwork
7 siblings, 1 reply; 22+ messages in thread
From: Patchwork @ 2019-11-29 0:02 UTC (permalink / raw)
To: Lisovskiy, Stanislav; +Cc: intel-gfx
== Series Details ==
Series: Enable second DBuf slice for ICL and TGL (rev2)
URL : https://patchwork.freedesktop.org/series/70059/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_7434_full -> Patchwork_15469_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with Patchwork_15469_full absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_15469_full, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_15469_full:
### IGT changes ###
#### Possible regressions ####
* igt@kms_big_fb@y-tiled-8bpp-rotate-0:
- shard-tglb: [PASS][1] -> [INCOMPLETE][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-tglb7/igt@kms_big_fb@y-tiled-8bpp-rotate-0.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-tglb1/igt@kms_big_fb@y-tiled-8bpp-rotate-0.html
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* {igt@gem_exec_balancer@bonded-chain}:
- shard-kbl: NOTRUN -> [FAIL][3]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-kbl3/igt@gem_exec_balancer@bonded-chain.html
- shard-tglb: NOTRUN -> [FAIL][4]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-tglb3/igt@gem_exec_balancer@bonded-chain.html
Known issues
------------
Here are the changes found in Patchwork_15469_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_busy@busy-vcs1:
- shard-iclb: [PASS][5] -> [SKIP][6] ([fdo#112080]) +9 similar issues
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-iclb2/igt@gem_busy@busy-vcs1.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-iclb3/igt@gem_busy@busy-vcs1.html
* igt@gem_ctx_isolation@bcs0-s3:
- shard-tglb: [PASS][7] -> [INCOMPLETE][8] ([fdo#111832])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-tglb9/igt@gem_ctx_isolation@bcs0-s3.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-tglb1/igt@gem_ctx_isolation@bcs0-s3.html
* igt@gem_ctx_isolation@vcs1-none:
- shard-iclb: [PASS][9] -> [SKIP][10] ([fdo#109276] / [fdo#112080]) +2 similar issues
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-iclb4/igt@gem_ctx_isolation@vcs1-none.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-iclb6/igt@gem_ctx_isolation@vcs1-none.html
* igt@gem_ctx_switch@queue-light:
- shard-tglb: [PASS][11] -> [INCOMPLETE][12] ([fdo#111672])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-tglb5/igt@gem_ctx_switch@queue-light.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-tglb3/igt@gem_ctx_switch@queue-light.html
* igt@gem_exec_balancer@smoke:
- shard-tglb: [PASS][13] -> [INCOMPLETE][14] ([fdo#111593])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-tglb6/igt@gem_exec_balancer@smoke.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-tglb4/igt@gem_exec_balancer@smoke.html
* igt@gem_exec_schedule@preempt-queue-contexts-bsd:
- shard-iclb: [PASS][15] -> [SKIP][16] ([fdo#112146])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-iclb3/igt@gem_exec_schedule@preempt-queue-contexts-bsd.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-iclb4/igt@gem_exec_schedule@preempt-queue-contexts-bsd.html
* igt@gem_exec_suspend@basic-s3:
- shard-kbl: [PASS][17] -> [DMESG-WARN][18] ([fdo#108566]) +1 similar issue
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-kbl1/igt@gem_exec_suspend@basic-s3.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-kbl4/igt@gem_exec_suspend@basic-s3.html
* igt@gem_persistent_relocs@forked-faulting-reloc-thrash-inactive:
- shard-tglb: [PASS][19] -> [TIMEOUT][20] ([fdo#112068 ])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-tglb9/igt@gem_persistent_relocs@forked-faulting-reloc-thrash-inactive.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-tglb5/igt@gem_persistent_relocs@forked-faulting-reloc-thrash-inactive.html
* igt@gem_persistent_relocs@forked-interruptible-thrashing:
- shard-snb: [PASS][21] -> [FAIL][22] ([fdo#112037])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-snb4/igt@gem_persistent_relocs@forked-interruptible-thrashing.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-snb7/igt@gem_persistent_relocs@forked-interruptible-thrashing.html
* igt@gem_persistent_relocs@forked-thrashing:
- shard-kbl: [PASS][23] -> [FAIL][24] ([fdo#112037])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-kbl1/igt@gem_persistent_relocs@forked-thrashing.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-kbl6/igt@gem_persistent_relocs@forked-thrashing.html
* igt@gem_ppgtt@flink-and-close-vma-leak:
- shard-glk: [PASS][25] -> [FAIL][26] ([fdo#112392])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-glk1/igt@gem_ppgtt@flink-and-close-vma-leak.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-glk4/igt@gem_ppgtt@flink-and-close-vma-leak.html
* igt@gem_softpin@noreloc-s3:
- shard-apl: [PASS][27] -> [DMESG-WARN][28] ([fdo#108566]) +1 similar issue
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-apl7/igt@gem_softpin@noreloc-s3.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-apl6/igt@gem_softpin@noreloc-s3.html
* igt@gem_sync@basic-all:
- shard-tglb: [PASS][29] -> [INCOMPLETE][30] ([fdo#111880])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-tglb3/igt@gem_sync@basic-all.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-tglb6/igt@gem_sync@basic-all.html
* igt@gem_userptr_blits@map-fixed-invalidate-busy:
- shard-hsw: [PASS][31] -> [DMESG-WARN][32] ([fdo#111870])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-hsw8/igt@gem_userptr_blits@map-fixed-invalidate-busy.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-hsw1/igt@gem_userptr_blits@map-fixed-invalidate-busy.html
* igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy:
- shard-snb: [PASS][33] -> [DMESG-WARN][34] ([fdo#111870])
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-snb4/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-snb2/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html
* igt@i915_pm_backlight@fade_with_suspend:
- shard-tglb: [PASS][35] -> [INCOMPLETE][36] ([fdo#111832] / [fdo#111850]) +1 similar issue
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-tglb2/igt@i915_pm_backlight@fade_with_suspend.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-tglb2/igt@i915_pm_backlight@fade_with_suspend.html
* igt@kms_big_fb@y-tiled-32bpp-rotate-180:
- shard-skl: [PASS][37] -> [INCOMPLETE][38] ([fdo#112409])
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-skl7/igt@kms_big_fb@y-tiled-32bpp-rotate-180.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-skl3/igt@kms_big_fb@y-tiled-32bpp-rotate-180.html
* igt@kms_color@pipe-a-ctm-negative:
- shard-skl: [PASS][39] -> [DMESG-WARN][40] ([fdo#106107])
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-skl2/igt@kms_color@pipe-a-ctm-negative.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-skl5/igt@kms_color@pipe-a-ctm-negative.html
* igt@kms_flip@flip-vs-expired-vblank:
- shard-glk: [PASS][41] -> [FAIL][42] ([fdo#105363])
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-glk4/igt@kms_flip@flip-vs-expired-vblank.html
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-glk1/igt@kms_flip@flip-vs-expired-vblank.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible:
- shard-skl: [PASS][43] -> [FAIL][44] ([fdo#105363])
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-skl6/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-skl10/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
* igt@kms_flip@flip-vs-suspend:
- shard-skl: [PASS][45] -> [INCOMPLETE][46] ([fdo#109507])
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-skl5/igt@kms_flip@flip-vs-suspend.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-skl2/igt@kms_flip@flip-vs-suspend.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-render:
- shard-iclb: [PASS][47] -> [FAIL][48] ([fdo#103167]) +3 similar issues
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-iclb4/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-render.html
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-iclb6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw:
- shard-tglb: [PASS][49] -> [FAIL][50] ([fdo#103167]) +1 similar issue
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-tglb5/igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw.html
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-tglb1/igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw.html
* igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
- shard-skl: [PASS][51] -> [FAIL][52] ([fdo#108145] / [fdo#110403])
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-skl4/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-skl4/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html
* igt@kms_plane_lowres@pipe-a-tiling-x:
- shard-iclb: [PASS][53] -> [FAIL][54] ([fdo#103166])
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-iclb6/igt@kms_plane_lowres@pipe-a-tiling-x.html
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-iclb8/igt@kms_plane_lowres@pipe-a-tiling-x.html
* igt@kms_psr@psr2_cursor_blt:
- shard-iclb: [PASS][55] -> [SKIP][56] ([fdo#109441]) +1 similar issue
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-iclb2/igt@kms_psr@psr2_cursor_blt.html
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-iclb4/igt@kms_psr@psr2_cursor_blt.html
* igt@kms_setmode@basic:
- shard-hsw: [PASS][57] -> [FAIL][58] ([fdo#99912])
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-hsw1/igt@kms_setmode@basic.html
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-hsw6/igt@kms_setmode@basic.html
* igt@kms_vblank@pipe-d-ts-continuation-suspend:
- shard-tglb: [PASS][59] -> [INCOMPLETE][60] ([fdo#111850]) +1 similar issue
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-tglb1/igt@kms_vblank@pipe-d-ts-continuation-suspend.html
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-tglb7/igt@kms_vblank@pipe-d-ts-continuation-suspend.html
* igt@prime_vgem@fence-wait-bsd2:
- shard-iclb: [PASS][61] -> [SKIP][62] ([fdo#109276]) +10 similar issues
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-iclb4/igt@prime_vgem@fence-wait-bsd2.html
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-iclb6/igt@prime_vgem@fence-wait-bsd2.html
#### Possible fixes ####
* igt@gem_ctx_isolation@rcs0-s3:
- shard-kbl: [DMESG-WARN][63] ([fdo#108566]) -> [PASS][64] +7 similar issues
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-kbl7/igt@gem_ctx_isolation@rcs0-s3.html
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-kbl7/igt@gem_ctx_isolation@rcs0-s3.html
- shard-tglb: [INCOMPLETE][65] ([fdo#111832]) -> [PASS][66]
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-tglb9/igt@gem_ctx_isolation@rcs0-s3.html
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-tglb9/igt@gem_ctx_isolation@rcs0-s3.html
* igt@gem_ctx_persistence@smoketest:
- shard-glk: [TIMEOUT][67] ([fdo#112404]) -> [PASS][68]
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-glk8/igt@gem_ctx_persistence@smoketest.html
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-glk4/igt@gem_ctx_persistence@smoketest.html
* igt@gem_ctx_persistence@vcs1-persistence:
- shard-iclb: [SKIP][69] ([fdo#109276] / [fdo#112080]) -> [PASS][70]
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-iclb3/igt@gem_ctx_persistence@vcs1-persistence.html
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-iclb4/igt@gem_ctx_persistence@vcs1-persistence.html
* igt@gem_eio@in-flight-suspend:
- shard-skl: [INCOMPLETE][71] ([fdo#104108]) -> [PASS][72] +1 similar issue
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-skl8/igt@gem_eio@in-flight-suspend.html
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-skl6/igt@gem_eio@in-flight-suspend.html
* igt@gem_eio@kms:
- shard-snb: [INCOMPLETE][73] ([fdo#105411]) -> [PASS][74]
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-snb1/igt@gem_eio@kms.html
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-snb6/igt@gem_eio@kms.html
* igt@gem_eio@unwedge-stress:
- shard-hsw: [INCOMPLETE][75] ([fdo#103540]) -> [PASS][76]
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-hsw4/igt@gem_eio@unwedge-stress.html
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-hsw7/igt@gem_eio@unwedge-stress.html
* igt@gem_exec_schedule@in-order-bsd2:
- shard-iclb: [SKIP][77] ([fdo#109276]) -> [PASS][78] +1 similar issue
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-iclb3/igt@gem_exec_schedule@in-order-bsd2.html
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-iclb4/igt@gem_exec_schedule@in-order-bsd2.html
* igt@gem_exec_schedule@preempt-queue-bsd:
- shard-iclb: [SKIP][79] ([fdo#112146]) -> [PASS][80] +1 similar issue
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-iclb4/igt@gem_exec_schedule@preempt-queue-bsd.html
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-iclb5/igt@gem_exec_schedule@preempt-queue-bsd.html
* igt@gem_exec_schedule@preempt-queue-chain-vebox:
- shard-tglb: [INCOMPLETE][81] ([fdo#111677]) -> [PASS][82]
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-tglb6/igt@gem_exec_schedule@preempt-queue-chain-vebox.html
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-tglb2/igt@gem_exec_schedule@preempt-queue-chain-vebox.html
* igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy:
- shard-hsw: [DMESG-WARN][83] ([fdo#111870]) -> [PASS][84]
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-hsw1/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-hsw5/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html
* igt@gem_userptr_blits@sync-unmap-after-close:
- shard-kbl: [INCOMPLETE][85] ([fdo#103665]) -> [PASS][86] +1 similar issue
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-kbl6/igt@gem_userptr_blits@sync-unmap-after-close.html
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-kbl4/igt@gem_userptr_blits@sync-unmap-after-close.html
- shard-snb: [DMESG-WARN][87] ([fdo#111870]) -> [PASS][88]
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-snb6/igt@gem_userptr_blits@sync-unmap-after-close.html
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-snb4/igt@gem_userptr_blits@sync-unmap-after-close.html
* igt@kms_big_fb@y-tiled-32bpp-rotate-270:
- shard-glk: [INCOMPLETE][89] ([fdo#103359] / [k.org#198133]) -> [PASS][90]
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-glk7/igt@kms_big_fb@y-tiled-32bpp-rotate-270.html
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-glk3/igt@kms_big_fb@y-tiled-32bpp-rotate-270.html
* igt@kms_color@pipe-c-ctm-negative:
- shard-skl: [FAIL][91] ([fdo#107361]) -> [PASS][92]
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-skl6/igt@kms_color@pipe-c-ctm-negative.html
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-skl10/igt@kms_color@pipe-c-ctm-negative.html
* igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic:
- shard-glk: [FAIL][93] ([fdo#107409]) -> [PASS][94]
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-glk9/igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic.html
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-glk2/igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic.html
* igt@kms_draw_crc@draw-method-xrgb8888-render-ytiled:
- shard-tglb: [INCOMPLETE][95] ([fdo#112393]) -> [PASS][96]
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-tglb2/igt@kms_draw_crc@draw-method-xrgb8888-render-ytiled.html
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-tglb5/igt@kms_draw_crc@draw-method-xrgb8888-render-ytiled.html
* igt@kms_flip@flip-vs-suspend-interruptible:
- shard-iclb: [INCOMPLETE][97] ([fdo#107713] / [fdo#109507]) -> [PASS][98]
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-iclb3/igt@kms_flip@flip-vs-suspend-interruptible.html
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-iclb3/igt@kms_flip@flip-vs-suspend-interruptible.html
* igt@kms_flip@plain-flip-ts-check-interruptible:
- shard-skl: [FAIL][99] ([fdo#100368]) -> [PASS][100] +1 similar issue
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-skl2/igt@kms_flip@plain-flip-ts-check-interruptible.html
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-skl2/igt@kms_flip@plain-flip-ts-check-interruptible.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-blt:
- shard-tglb: [INCOMPLETE][101] ([fdo#111884]) -> [PASS][102]
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-tglb3/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-blt.html
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-tglb7/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-wc:
- shard-tglb: [FAIL][103] ([fdo#103167]) -> [PASS][104] +2 similar issues
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-tglb7/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-wc.html
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-tglb4/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-wc.html
* igt@kms_plane@pixel-format-pipe-a-planes-source-clamping:
- shard-skl: [INCOMPLETE][105] ([fdo#112397]) -> [PASS][106]
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-skl4/igt@kms_plane@pixel-format-pipe-a-planes-source-clamping.html
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-skl4/igt@kms_plane@pixel-format-pipe-a-planes-source-clamping.html
* igt@kms_plane@pixel-format-pipe-b-planes-source-clamping:
- shard-kbl: [INCOMPLETE][107] ([fdo#103665] / [fdo#111747]) -> [PASS][108]
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-kbl6/igt@kms_plane@pixel-format-pipe-b-planes-source-clamping.html
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-kbl3/igt@kms_plane@pixel-format-pipe-b-planes-source-clamping.html
* igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes:
- shard-apl: [DMESG-WARN][109] ([fdo#108566]) -> [PASS][110] +2 similar issues
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-apl1/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes.html
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-apl4/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes.html
* igt@kms_plane_alpha_blend@pipe-b-coverage-7efc:
- shard-skl: [FAIL][111] ([fdo#108145] / [fdo#110403]) -> [PASS][112]
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-skl9/igt@kms_plane_alpha_blend@pipe-b-coverage-7efc.html
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-skl10/igt@kms_plane_alpha_blend@pipe-b-coverage-7efc.html
* igt@kms_vblank@pipe-a-ts-continuation-suspend:
- shard-tglb: [INCOMPLETE][113] ([fdo#111832] / [fdo#111850]) -> [PASS][114] +2 similar issues
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-tglb5/igt@kms_vblank@pipe-a-ts-continuation-suspend.html
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-tglb6/igt@kms_vblank@pipe-a-ts-continuation-suspend.html
* igt@perf_pmu@idle-no-semaphores-vcs1:
- shard-iclb: [SKIP][115] ([fdo#112080]) -> [PASS][116]
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-iclb3/igt@perf_pmu@idle-no-semaphores-vcs1.html
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-iclb4/igt@perf_pmu@idle-no-semaphores-vcs1.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#100368]: https://bugs.freedesktop.org/show_bug.cgi?id=100368
[fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
[fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
[fdo#103359]: https://bugs.freedesktop.org/show_bug.cgi?id=103359
[fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540
[fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
[fdo#104108]: https://bugs.freedesktop.org/show_bug.cgi?id=104108
[fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363
[fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
[fdo#106107]: https://bugs.freedesktop.org/show_bug.cgi?id=106107
[fdo#107361]: https://bugs.freedesktop.org/show_bug.cgi?id=107361
[fdo#107409]: https://bugs.freedesktop.org/show_bug.cgi?id=107409
[fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
[fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
[fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
[fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[fdo#109507]: https://bugs.freedesktop.org/show_bug.cgi?id=109507
[fdo#110403]: https://bugs.freedesktop.org/show_bug.cgi?id=110403
[fdo#111593]: https://bugs.freedesktop.org/show_bug.cgi?id=111593
[fdo#111672]: https://bugs.freedesktop.org/show_bug.cgi?id=111672
[fdo#111677]: https://bugs.freedesktop.org/show_bug.cgi?id=111677
[fdo#111747]: https://bugs.freedesktop.org/show_bug.cgi?id=111747
[fdo#111832]: https://bugs.freedesktop.org/show_bug.cgi?id=111832
[fdo#111850]: https://bugs.freedesktop.org/show_bug.cgi?id=111850
[fdo#111870]: https://bugs.freedesktop.org/show_bug.cgi?id=111870
[fdo#111880]: https://bugs.freedesktop.org/show_bug.cgi?id=111880
[fdo#111884]: https://bugs.freedesktop.org/show_bug.cgi?id=111884
[fdo#112037]: https://bugs.freedesktop.org/show_bug.cgi?id=112037
[fdo#112068 ]: https://bugs.freedesktop.org/show_bug.cgi?id=112068
[fdo#112080]: https://bugs.freedesktop.org/show_bug.cgi?id=112080
[fdo#112146]: https://bugs.freedesktop.org/show_bug.cgi?id=112146
[fdo#112392]: https://bugs.freedesktop.org/show_bug.cgi?id=112392
[fdo#112393]: https://bugs.freedesktop.org/show_bug.cgi?id=112393
[fdo#112397]: https://bugs.freedesktop.org/show_bug.cgi?id=112397
[fdo#112404]: https://bugs.freedesktop.org/show_bug.cgi?id=112404
[fdo#112409]: https://bugs.freedesktop.org/show_bug.cgi?id=112409
[fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912
[k.org#198133]: https://bugzilla.kernel.org/show_bug.cgi?id=198133
Participating hosts (11 -> 11)
------------------------------
No changes in participating hosts
Build changes
-------------
* CI: CI-20190529 -> None
* Linux: CI_DRM_7434 -> Patchwork_15469
CI-20190529: 20190529
CI_DRM_7434: 1bbc4d30ca9fd950cbcb73f324e00d0bc357758e @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_5312: 851c75531043cd906e028632b64b02b9312e9945 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_15469: 93e6a322bd59b057ea3301d8610580d42d2396ce @ 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_15469/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 22+ messages in thread
* [Intel-gfx] ✗ Fi.CI.IGT: failure for Enable second DBuf slice for ICL and TGL (rev2)
2019-11-29 0:02 ` ✗ Fi.CI.IGT: failure " Patchwork
@ 2019-11-29 0:02 ` Patchwork
0 siblings, 0 replies; 22+ messages in thread
From: Patchwork @ 2019-11-29 0:02 UTC (permalink / raw)
To: Lisovskiy, Stanislav; +Cc: intel-gfx
== Series Details ==
Series: Enable second DBuf slice for ICL and TGL (rev2)
URL : https://patchwork.freedesktop.org/series/70059/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_7434_full -> Patchwork_15469_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with Patchwork_15469_full absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_15469_full, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_15469_full:
### IGT changes ###
#### Possible regressions ####
* igt@kms_big_fb@y-tiled-8bpp-rotate-0:
- shard-tglb: [PASS][1] -> [INCOMPLETE][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-tglb7/igt@kms_big_fb@y-tiled-8bpp-rotate-0.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-tglb1/igt@kms_big_fb@y-tiled-8bpp-rotate-0.html
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* {igt@gem_exec_balancer@bonded-chain}:
- shard-kbl: NOTRUN -> [FAIL][3]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-kbl3/igt@gem_exec_balancer@bonded-chain.html
- shard-tglb: NOTRUN -> [FAIL][4]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-tglb3/igt@gem_exec_balancer@bonded-chain.html
Known issues
------------
Here are the changes found in Patchwork_15469_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_busy@busy-vcs1:
- shard-iclb: [PASS][5] -> [SKIP][6] ([fdo#112080]) +9 similar issues
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-iclb2/igt@gem_busy@busy-vcs1.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-iclb3/igt@gem_busy@busy-vcs1.html
* igt@gem_ctx_isolation@bcs0-s3:
- shard-tglb: [PASS][7] -> [INCOMPLETE][8] ([fdo#111832])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-tglb9/igt@gem_ctx_isolation@bcs0-s3.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-tglb1/igt@gem_ctx_isolation@bcs0-s3.html
* igt@gem_ctx_isolation@vcs1-none:
- shard-iclb: [PASS][9] -> [SKIP][10] ([fdo#109276] / [fdo#112080]) +2 similar issues
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-iclb4/igt@gem_ctx_isolation@vcs1-none.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-iclb6/igt@gem_ctx_isolation@vcs1-none.html
* igt@gem_ctx_switch@queue-light:
- shard-tglb: [PASS][11] -> [INCOMPLETE][12] ([fdo#111672])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-tglb5/igt@gem_ctx_switch@queue-light.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-tglb3/igt@gem_ctx_switch@queue-light.html
* igt@gem_exec_balancer@smoke:
- shard-tglb: [PASS][13] -> [INCOMPLETE][14] ([fdo#111593])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-tglb6/igt@gem_exec_balancer@smoke.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-tglb4/igt@gem_exec_balancer@smoke.html
* igt@gem_exec_schedule@preempt-queue-contexts-bsd:
- shard-iclb: [PASS][15] -> [SKIP][16] ([fdo#112146])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-iclb3/igt@gem_exec_schedule@preempt-queue-contexts-bsd.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-iclb4/igt@gem_exec_schedule@preempt-queue-contexts-bsd.html
* igt@gem_exec_suspend@basic-s3:
- shard-kbl: [PASS][17] -> [DMESG-WARN][18] ([fdo#108566]) +1 similar issue
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-kbl1/igt@gem_exec_suspend@basic-s3.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-kbl4/igt@gem_exec_suspend@basic-s3.html
* igt@gem_persistent_relocs@forked-faulting-reloc-thrash-inactive:
- shard-tglb: [PASS][19] -> [TIMEOUT][20] ([fdo#112068 ])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-tglb9/igt@gem_persistent_relocs@forked-faulting-reloc-thrash-inactive.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-tglb5/igt@gem_persistent_relocs@forked-faulting-reloc-thrash-inactive.html
* igt@gem_persistent_relocs@forked-interruptible-thrashing:
- shard-snb: [PASS][21] -> [FAIL][22] ([fdo#112037])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-snb4/igt@gem_persistent_relocs@forked-interruptible-thrashing.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-snb7/igt@gem_persistent_relocs@forked-interruptible-thrashing.html
* igt@gem_persistent_relocs@forked-thrashing:
- shard-kbl: [PASS][23] -> [FAIL][24] ([fdo#112037])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-kbl1/igt@gem_persistent_relocs@forked-thrashing.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-kbl6/igt@gem_persistent_relocs@forked-thrashing.html
* igt@gem_ppgtt@flink-and-close-vma-leak:
- shard-glk: [PASS][25] -> [FAIL][26] ([fdo#112392])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-glk1/igt@gem_ppgtt@flink-and-close-vma-leak.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-glk4/igt@gem_ppgtt@flink-and-close-vma-leak.html
* igt@gem_softpin@noreloc-s3:
- shard-apl: [PASS][27] -> [DMESG-WARN][28] ([fdo#108566]) +1 similar issue
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-apl7/igt@gem_softpin@noreloc-s3.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-apl6/igt@gem_softpin@noreloc-s3.html
* igt@gem_sync@basic-all:
- shard-tglb: [PASS][29] -> [INCOMPLETE][30] ([fdo#111880])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-tglb3/igt@gem_sync@basic-all.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-tglb6/igt@gem_sync@basic-all.html
* igt@gem_userptr_blits@map-fixed-invalidate-busy:
- shard-hsw: [PASS][31] -> [DMESG-WARN][32] ([fdo#111870])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-hsw8/igt@gem_userptr_blits@map-fixed-invalidate-busy.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-hsw1/igt@gem_userptr_blits@map-fixed-invalidate-busy.html
* igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy:
- shard-snb: [PASS][33] -> [DMESG-WARN][34] ([fdo#111870])
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-snb4/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-snb2/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html
* igt@i915_pm_backlight@fade_with_suspend:
- shard-tglb: [PASS][35] -> [INCOMPLETE][36] ([fdo#111832] / [fdo#111850]) +1 similar issue
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-tglb2/igt@i915_pm_backlight@fade_with_suspend.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-tglb2/igt@i915_pm_backlight@fade_with_suspend.html
* igt@kms_big_fb@y-tiled-32bpp-rotate-180:
- shard-skl: [PASS][37] -> [INCOMPLETE][38] ([fdo#112409])
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-skl7/igt@kms_big_fb@y-tiled-32bpp-rotate-180.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-skl3/igt@kms_big_fb@y-tiled-32bpp-rotate-180.html
* igt@kms_color@pipe-a-ctm-negative:
- shard-skl: [PASS][39] -> [DMESG-WARN][40] ([fdo#106107])
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-skl2/igt@kms_color@pipe-a-ctm-negative.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-skl5/igt@kms_color@pipe-a-ctm-negative.html
* igt@kms_flip@flip-vs-expired-vblank:
- shard-glk: [PASS][41] -> [FAIL][42] ([fdo#105363])
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-glk4/igt@kms_flip@flip-vs-expired-vblank.html
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-glk1/igt@kms_flip@flip-vs-expired-vblank.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible:
- shard-skl: [PASS][43] -> [FAIL][44] ([fdo#105363])
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-skl6/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-skl10/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
* igt@kms_flip@flip-vs-suspend:
- shard-skl: [PASS][45] -> [INCOMPLETE][46] ([fdo#109507])
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-skl5/igt@kms_flip@flip-vs-suspend.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-skl2/igt@kms_flip@flip-vs-suspend.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-render:
- shard-iclb: [PASS][47] -> [FAIL][48] ([fdo#103167]) +3 similar issues
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-iclb4/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-render.html
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-iclb6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw:
- shard-tglb: [PASS][49] -> [FAIL][50] ([fdo#103167]) +1 similar issue
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-tglb5/igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw.html
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-tglb1/igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw.html
* igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
- shard-skl: [PASS][51] -> [FAIL][52] ([fdo#108145] / [fdo#110403])
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-skl4/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-skl4/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html
* igt@kms_plane_lowres@pipe-a-tiling-x:
- shard-iclb: [PASS][53] -> [FAIL][54] ([fdo#103166])
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-iclb6/igt@kms_plane_lowres@pipe-a-tiling-x.html
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-iclb8/igt@kms_plane_lowres@pipe-a-tiling-x.html
* igt@kms_psr@psr2_cursor_blt:
- shard-iclb: [PASS][55] -> [SKIP][56] ([fdo#109441]) +1 similar issue
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-iclb2/igt@kms_psr@psr2_cursor_blt.html
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-iclb4/igt@kms_psr@psr2_cursor_blt.html
* igt@kms_setmode@basic:
- shard-hsw: [PASS][57] -> [FAIL][58] ([fdo#99912])
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-hsw1/igt@kms_setmode@basic.html
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-hsw6/igt@kms_setmode@basic.html
* igt@kms_vblank@pipe-d-ts-continuation-suspend:
- shard-tglb: [PASS][59] -> [INCOMPLETE][60] ([fdo#111850]) +1 similar issue
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-tglb1/igt@kms_vblank@pipe-d-ts-continuation-suspend.html
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-tglb7/igt@kms_vblank@pipe-d-ts-continuation-suspend.html
* igt@prime_vgem@fence-wait-bsd2:
- shard-iclb: [PASS][61] -> [SKIP][62] ([fdo#109276]) +10 similar issues
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-iclb4/igt@prime_vgem@fence-wait-bsd2.html
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-iclb6/igt@prime_vgem@fence-wait-bsd2.html
#### Possible fixes ####
* igt@gem_ctx_isolation@rcs0-s3:
- shard-kbl: [DMESG-WARN][63] ([fdo#108566]) -> [PASS][64] +7 similar issues
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-kbl7/igt@gem_ctx_isolation@rcs0-s3.html
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-kbl7/igt@gem_ctx_isolation@rcs0-s3.html
- shard-tglb: [INCOMPLETE][65] ([fdo#111832]) -> [PASS][66]
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-tglb9/igt@gem_ctx_isolation@rcs0-s3.html
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-tglb9/igt@gem_ctx_isolation@rcs0-s3.html
* igt@gem_ctx_persistence@smoketest:
- shard-glk: [TIMEOUT][67] ([fdo#112404]) -> [PASS][68]
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-glk8/igt@gem_ctx_persistence@smoketest.html
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-glk4/igt@gem_ctx_persistence@smoketest.html
* igt@gem_ctx_persistence@vcs1-persistence:
- shard-iclb: [SKIP][69] ([fdo#109276] / [fdo#112080]) -> [PASS][70]
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-iclb3/igt@gem_ctx_persistence@vcs1-persistence.html
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-iclb4/igt@gem_ctx_persistence@vcs1-persistence.html
* igt@gem_eio@in-flight-suspend:
- shard-skl: [INCOMPLETE][71] ([fdo#104108]) -> [PASS][72] +1 similar issue
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-skl8/igt@gem_eio@in-flight-suspend.html
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-skl6/igt@gem_eio@in-flight-suspend.html
* igt@gem_eio@kms:
- shard-snb: [INCOMPLETE][73] ([fdo#105411]) -> [PASS][74]
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-snb1/igt@gem_eio@kms.html
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-snb6/igt@gem_eio@kms.html
* igt@gem_eio@unwedge-stress:
- shard-hsw: [INCOMPLETE][75] ([fdo#103540]) -> [PASS][76]
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-hsw4/igt@gem_eio@unwedge-stress.html
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-hsw7/igt@gem_eio@unwedge-stress.html
* igt@gem_exec_schedule@in-order-bsd2:
- shard-iclb: [SKIP][77] ([fdo#109276]) -> [PASS][78] +1 similar issue
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-iclb3/igt@gem_exec_schedule@in-order-bsd2.html
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-iclb4/igt@gem_exec_schedule@in-order-bsd2.html
* igt@gem_exec_schedule@preempt-queue-bsd:
- shard-iclb: [SKIP][79] ([fdo#112146]) -> [PASS][80] +1 similar issue
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-iclb4/igt@gem_exec_schedule@preempt-queue-bsd.html
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-iclb5/igt@gem_exec_schedule@preempt-queue-bsd.html
* igt@gem_exec_schedule@preempt-queue-chain-vebox:
- shard-tglb: [INCOMPLETE][81] ([fdo#111677]) -> [PASS][82]
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-tglb6/igt@gem_exec_schedule@preempt-queue-chain-vebox.html
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-tglb2/igt@gem_exec_schedule@preempt-queue-chain-vebox.html
* igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy:
- shard-hsw: [DMESG-WARN][83] ([fdo#111870]) -> [PASS][84]
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-hsw1/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-hsw5/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html
* igt@gem_userptr_blits@sync-unmap-after-close:
- shard-kbl: [INCOMPLETE][85] ([fdo#103665]) -> [PASS][86] +1 similar issue
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-kbl6/igt@gem_userptr_blits@sync-unmap-after-close.html
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-kbl4/igt@gem_userptr_blits@sync-unmap-after-close.html
- shard-snb: [DMESG-WARN][87] ([fdo#111870]) -> [PASS][88]
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-snb6/igt@gem_userptr_blits@sync-unmap-after-close.html
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-snb4/igt@gem_userptr_blits@sync-unmap-after-close.html
* igt@kms_big_fb@y-tiled-32bpp-rotate-270:
- shard-glk: [INCOMPLETE][89] ([fdo#103359] / [k.org#198133]) -> [PASS][90]
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-glk7/igt@kms_big_fb@y-tiled-32bpp-rotate-270.html
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-glk3/igt@kms_big_fb@y-tiled-32bpp-rotate-270.html
* igt@kms_color@pipe-c-ctm-negative:
- shard-skl: [FAIL][91] ([fdo#107361]) -> [PASS][92]
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-skl6/igt@kms_color@pipe-c-ctm-negative.html
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-skl10/igt@kms_color@pipe-c-ctm-negative.html
* igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic:
- shard-glk: [FAIL][93] ([fdo#107409]) -> [PASS][94]
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-glk9/igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic.html
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-glk2/igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic.html
* igt@kms_draw_crc@draw-method-xrgb8888-render-ytiled:
- shard-tglb: [INCOMPLETE][95] ([fdo#112393]) -> [PASS][96]
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-tglb2/igt@kms_draw_crc@draw-method-xrgb8888-render-ytiled.html
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-tglb5/igt@kms_draw_crc@draw-method-xrgb8888-render-ytiled.html
* igt@kms_flip@flip-vs-suspend-interruptible:
- shard-iclb: [INCOMPLETE][97] ([fdo#107713] / [fdo#109507]) -> [PASS][98]
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-iclb3/igt@kms_flip@flip-vs-suspend-interruptible.html
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-iclb3/igt@kms_flip@flip-vs-suspend-interruptible.html
* igt@kms_flip@plain-flip-ts-check-interruptible:
- shard-skl: [FAIL][99] ([fdo#100368]) -> [PASS][100] +1 similar issue
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-skl2/igt@kms_flip@plain-flip-ts-check-interruptible.html
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-skl2/igt@kms_flip@plain-flip-ts-check-interruptible.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-blt:
- shard-tglb: [INCOMPLETE][101] ([fdo#111884]) -> [PASS][102]
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-tglb3/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-blt.html
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-tglb7/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-wc:
- shard-tglb: [FAIL][103] ([fdo#103167]) -> [PASS][104] +2 similar issues
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-tglb7/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-wc.html
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-tglb4/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-wc.html
* igt@kms_plane@pixel-format-pipe-a-planes-source-clamping:
- shard-skl: [INCOMPLETE][105] ([fdo#112397]) -> [PASS][106]
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-skl4/igt@kms_plane@pixel-format-pipe-a-planes-source-clamping.html
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-skl4/igt@kms_plane@pixel-format-pipe-a-planes-source-clamping.html
* igt@kms_plane@pixel-format-pipe-b-planes-source-clamping:
- shard-kbl: [INCOMPLETE][107] ([fdo#103665] / [fdo#111747]) -> [PASS][108]
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-kbl6/igt@kms_plane@pixel-format-pipe-b-planes-source-clamping.html
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-kbl3/igt@kms_plane@pixel-format-pipe-b-planes-source-clamping.html
* igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes:
- shard-apl: [DMESG-WARN][109] ([fdo#108566]) -> [PASS][110] +2 similar issues
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-apl1/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes.html
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-apl4/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes.html
* igt@kms_plane_alpha_blend@pipe-b-coverage-7efc:
- shard-skl: [FAIL][111] ([fdo#108145] / [fdo#110403]) -> [PASS][112]
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-skl9/igt@kms_plane_alpha_blend@pipe-b-coverage-7efc.html
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-skl10/igt@kms_plane_alpha_blend@pipe-b-coverage-7efc.html
* igt@kms_vblank@pipe-a-ts-continuation-suspend:
- shard-tglb: [INCOMPLETE][113] ([fdo#111832] / [fdo#111850]) -> [PASS][114] +2 similar issues
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-tglb5/igt@kms_vblank@pipe-a-ts-continuation-suspend.html
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-tglb6/igt@kms_vblank@pipe-a-ts-continuation-suspend.html
* igt@perf_pmu@idle-no-semaphores-vcs1:
- shard-iclb: [SKIP][115] ([fdo#112080]) -> [PASS][116]
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7434/shard-iclb3/igt@perf_pmu@idle-no-semaphores-vcs1.html
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15469/shard-iclb4/igt@perf_pmu@idle-no-semaphores-vcs1.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#100368]: https://bugs.freedesktop.org/show_bug.cgi?id=100368
[fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
[fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
[fdo#103359]: https://bugs.freedesktop.org/show_bug.cgi?id=103359
[fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540
[fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
[fdo#104108]: https://bugs.freedesktop.org/show_bug.cgi?id=104108
[fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363
[fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
[fdo#106107]: https://bugs.freedesktop.org/show_bug.cgi?id=106107
[fdo#107361]: https://bugs.freedesktop.org/show_bug.cgi?id=107361
[fdo#107409]: https://bugs.freedesktop.org/show_bug.cgi?id=107409
[fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
[fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
[fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
[fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[fdo#109507]: https://bugs.freedesktop.org/show_bug.cgi?id=109507
[fdo#110403]: https://bugs.freedesktop.org/show_bug.cgi?id=110403
[fdo#111593]: https://bugs.freedesktop.org/show_bug.cgi?id=111593
[fdo#111672]: https://bugs.freedesktop.org/show_bug.cgi?id=111672
[fdo#111677]: https://bugs.freedesktop.org/show_bug.cgi?id=111677
[fdo#111747]: https://bugs.freedesktop.org/show_bug.cgi?id=111747
[fdo#111832]: https://bugs.freedesktop.org/show_bug.cgi?id=111832
[fdo#111850]: https://bugs.freedesktop.org/show_bug.cgi?id=111850
[fdo#111870]: https://bugs.freedesktop.org/show_bug.cgi?id=111870
[fdo#111880]: https://bugs.freedesktop.org/show_bug.cgi?id=111880
[fdo#111884]: https://bugs.freedesktop.org/show_bug.cgi?id=111884
[fdo#112037]: https://bugs.freedesktop.org/show_bug.cgi?id=112037
[fdo#112068 ]: https://bugs.freedesktop.org/show_bug.cgi?id=112068
[fdo#112080]: https://bugs.freedesktop.org/show_bug.cgi?id=112080
[fdo#112146]: https://bugs.freedesktop.org/show_bug.cgi?id=112146
[fdo#112392]: https://bugs.freedesktop.org/show_bug.cgi?id=112392
[fdo#112393]: https://bugs.freedesktop.org/show_bug.cgi?id=112393
[fdo#112397]: https://bugs.freedesktop.org/show_bug.cgi?id=112397
[fdo#112404]: https://bugs.freedesktop.org/show_bug.cgi?id=112404
[fdo#112409]: https://bugs.freedesktop.org/show_bug.cgi?id=112409
[fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912
[k.org#198133]: https://bugzilla.kernel.org/show_bug.cgi?id=198133
Participating hosts (11 -> 11)
------------------------------
No changes in participating hosts
Build changes
-------------
* CI: CI-20190529 -> None
* Linux: CI_DRM_7434 -> Patchwork_15469
CI-20190529: 20190529
CI_DRM_7434: 1bbc4d30ca9fd950cbcb73f324e00d0bc357758e @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_5312: 851c75531043cd906e028632b64b02b9312e9945 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_15469: 93e6a322bd59b057ea3301d8610580d42d2396ce @ 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_15469/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 22+ messages in thread
end of thread, other threads:[~2019-11-29 0:02 UTC | newest]
Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-11-27 14:41 [PATCH v6 0/4] Enable second DBuf slice for ICL and TGL Stanislav Lisovskiy
2019-11-27 14:41 ` [Intel-gfx] " Stanislav Lisovskiy
2019-11-27 14:41 ` [PATCH v6 1/4] drm/i915: Remove skl_ddl_allocation struct Stanislav Lisovskiy
2019-11-27 14:41 ` [Intel-gfx] " Stanislav Lisovskiy
2019-11-28 16:13 ` Ville Syrjälä
2019-11-28 16:13 ` [Intel-gfx] " Ville Syrjälä
2019-11-28 17:39 ` Lisovskiy, Stanislav
2019-11-28 17:39 ` [Intel-gfx] " Lisovskiy, Stanislav
2019-11-28 18:42 ` Ville Syrjälä
2019-11-28 18:42 ` [Intel-gfx] " Ville Syrjälä
2019-11-27 14:41 ` [PATCH v6 2/4] drm/i915: Move dbuf slice update to proper place Stanislav Lisovskiy
2019-11-27 14:41 ` [Intel-gfx] " Stanislav Lisovskiy
2019-11-27 14:41 ` [PATCH v6 3/4] drm/i915: Manipulate DBuf slices properly Stanislav Lisovskiy
2019-11-27 14:41 ` [Intel-gfx] " Stanislav Lisovskiy
2019-11-27 14:41 ` [PATCH v6 4/4] drm/i915: Correctly map DBUF slices to pipes Stanislav Lisovskiy
2019-11-27 14:41 ` [Intel-gfx] " Stanislav Lisovskiy
2019-11-27 19:31 ` ✗ Fi.CI.SPARSE: warning for Enable second DBuf slice for ICL and TGL (rev2) Patchwork
2019-11-27 19:31 ` [Intel-gfx] " Patchwork
2019-11-27 19:59 ` ✓ Fi.CI.BAT: success " Patchwork
2019-11-27 19:59 ` [Intel-gfx] " Patchwork
2019-11-29 0:02 ` ✗ Fi.CI.IGT: failure " Patchwork
2019-11-29 0:02 ` [Intel-gfx] " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox