* [PATCH 1/4] drm/i915/dp_mst: Fix connector initialization in intel_dp_add_mst_connector()
@ 2024-11-15 16:41 Imre Deak
2024-11-15 16:41 ` [PATCH 2/4] drm/dp: Add a way to init/add a connector in separate steps Imre Deak
` (7 more replies)
0 siblings, 8 replies; 22+ messages in thread
From: Imre Deak @ 2024-11-15 16:41 UTC (permalink / raw)
To: intel-gfx, dri-devel; +Cc: Jani Nikula
The connector initialization in intel_dp_add_mst_connector() depends on
the device pointer in connector to be valid, at least by connector
debug printing. The device pointer is initialized by drm_connector_init(),
however that function also exposes the connector to in-kernel users,
which can't be done before the connector is fully initialized. For now
make sure the device pointer is valid before it's used, until a
follow-up change moving this to DRM core.
This issue was revealed by the commit in the Fixes: line below, before
which the above debug printing checked and handled a NULL device pointer
gracefully in DRM core.
Cc: Jani Nikula <jani.nikula@intel.com>
Fixes: 529798bd786a ("drm/i915/mst: convert to struct intel_display")
Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12799
Signed-off-by: Imre Deak <imre.deak@intel.com>
---
drivers/gpu/drm/i915/display/intel_dp_mst.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
index df7edcfe885b6..f058360a26413 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
@@ -1727,6 +1727,16 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo
intel_dp_init_modeset_retry_work(intel_connector);
+ /*
+ * TODO: The following drm_connector specific initialization belongs
+ * to DRM core, however it happens atm too late in
+ * drm_connector_init(). That function will also expose the connector
+ * to in-kernel users, so it can't be called until the connector is
+ * sufficiently initialized; init the device pointer used by the
+ * following DSC setup, until a fix moving this to DRM core.
+ */
+ intel_connector->base.dev = mgr->dev;
+
intel_connector->dp.dsc_decompression_aux = drm_dp_mst_dsc_aux_for_port(port);
intel_dp_mst_read_decompression_port_dsc_caps(intel_dp, intel_connector);
intel_connector->dp.dsc_hblank_expansion_quirk =
--
2.44.2
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH 2/4] drm/dp: Add a way to init/add a connector in separate steps
2024-11-15 16:41 [PATCH 1/4] drm/i915/dp_mst: Fix connector initialization in intel_dp_add_mst_connector() Imre Deak
@ 2024-11-15 16:41 ` Imre Deak
2024-11-15 20:18 ` Rodrigo Vivi
2024-11-18 12:09 ` Jani Nikula
2024-11-15 16:41 ` [PATCH 3/4] drm/i915/dp_mst: Expose a connector to kernel users after it's properly initialized Imre Deak
` (6 subsequent siblings)
7 siblings, 2 replies; 22+ messages in thread
From: Imre Deak @ 2024-11-15 16:41 UTC (permalink / raw)
To: intel-gfx, dri-devel
Atm when the connector is added to the drm_mode_config::connector_list,
the connector may not be fully initialized yet. This is not a problem
for user space, which will see the connector only after it's registered
later, it could be a problem for in-kernel users looking up connectors
via the above list.
To resolve the above issue, add a way to separately initialize the DRM
core specific parts of the connector and add it to the above list. This
will move adding the connector to the list after the properties on the
connector have been added, this is ok since these steps don't have a
dependency.
Signed-off-by: Imre Deak <imre.deak@intel.com>
---
drivers/gpu/drm/drm_connector.c | 103 ++++++++++++++++++++++++++------
include/drm/drm_connector.h | 5 ++
2 files changed, 91 insertions(+), 17 deletions(-)
diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
index fc35f47e2849e..6132a7917b20c 100644
--- a/drivers/gpu/drm/drm_connector.c
+++ b/drivers/gpu/drm/drm_connector.c
@@ -218,11 +218,11 @@ void drm_connector_free_work_fn(struct work_struct *work)
}
}
-static int __drm_connector_init(struct drm_device *dev,
- struct drm_connector *connector,
- const struct drm_connector_funcs *funcs,
- int connector_type,
- struct i2c_adapter *ddc)
+static int __drm_connector_init_core(struct drm_device *dev,
+ struct drm_connector *connector,
+ const struct drm_connector_funcs *funcs,
+ int connector_type,
+ struct i2c_adapter *ddc)
{
struct drm_mode_config *config = &dev->mode_config;
int ret;
@@ -273,6 +273,7 @@ static int __drm_connector_init(struct drm_device *dev,
/* provide ddc symlink in sysfs */
connector->ddc = ddc;
+ INIT_LIST_HEAD(&connector->head);
INIT_LIST_HEAD(&connector->global_connector_list_entry);
INIT_LIST_HEAD(&connector->probed_modes);
INIT_LIST_HEAD(&connector->modes);
@@ -288,14 +289,6 @@ static int __drm_connector_init(struct drm_device *dev,
drm_connector_get_cmdline_mode(connector);
- /* We should add connectors at the end to avoid upsetting the connector
- * index too much.
- */
- spin_lock_irq(&config->connector_list_lock);
- list_add_tail(&connector->head, &config->connector_list);
- config->num_connector++;
- spin_unlock_irq(&config->connector_list_lock);
-
if (connector_type != DRM_MODE_CONNECTOR_VIRTUAL &&
connector_type != DRM_MODE_CONNECTOR_WRITEBACK)
drm_connector_attach_edid_property(connector);
@@ -332,6 +325,84 @@ static int __drm_connector_init(struct drm_device *dev,
return ret;
}
+/**
+ * drm_connector_init_core - Initialize the core state of a preallocated connector
+ * @dev: DRM device
+ * @connector: the connector to init
+ * @funcs: callbacks for this connector
+ * @connector_type: user visible type of the connector
+ *
+ * Initialises the core state of preallocated connector. This is
+ * equivalent to drm_connector_init(), without adding the connector to
+ * drm_mode_config::connector_list. This call must be followed by calling
+ * drm_connector_add() during initialization to expose the connector to
+ * in-kernel users via the above list.
+ *
+ * Returns:
+ * Zero on success, error code on failure.
+ */
+int drm_connector_init_core(struct drm_device *dev,
+ struct drm_connector *connector,
+ const struct drm_connector_funcs *funcs,
+ int connector_type)
+{
+ if (drm_WARN_ON(dev, !(funcs && funcs->destroy)))
+ return -EINVAL;
+
+ return __drm_connector_init_core(dev, connector, funcs, connector_type, NULL);
+}
+EXPORT_SYMBOL(drm_connector_init_core);
+
+/**
+ * drm_connector_add - Add the connector
+ * @connector: the connector to add
+ *
+ * Add the connector to the drm_mode_config::connector_list, exposing the
+ * connector to in-kernel users. This call must be preceded by a call to
+ * drm_connector_init_core().
+ */
+void drm_connector_add(struct drm_connector *connector)
+{
+ struct drm_device *dev = connector->dev;
+ struct drm_mode_config *config = &dev->mode_config;
+
+ spin_lock_irq(&config->connector_list_lock);
+ list_add_tail(&connector->head, &config->connector_list);
+ config->num_connector++;
+ spin_unlock_irq(&config->connector_list_lock);
+}
+EXPORT_SYMBOL(drm_connector_add);
+
+static void drm_connector_remove(struct drm_connector *connector)
+{
+ struct drm_device *dev = connector->dev;
+
+ if (list_empty(&connector->head))
+ return;
+
+ spin_lock_irq(&dev->mode_config.connector_list_lock);
+ list_del_init(&connector->head);
+ dev->mode_config.num_connector--;
+ spin_unlock_irq(&dev->mode_config.connector_list_lock);
+}
+
+static int __drm_connector_init(struct drm_device *dev,
+ struct drm_connector *connector,
+ const struct drm_connector_funcs *funcs,
+ int connector_type,
+ struct i2c_adapter *ddc)
+{
+ int ret;
+
+ ret = __drm_connector_init_core(dev, connector, funcs, connector_type, ddc);
+ if (ret)
+ return ret;
+
+ drm_connector_add(connector);
+
+ return 0;
+}
+
/**
* drm_connector_init - Init a preallocated connector
* @dev: DRM device
@@ -659,10 +730,8 @@ void drm_connector_cleanup(struct drm_connector *connector)
connector->name = NULL;
fwnode_handle_put(connector->fwnode);
connector->fwnode = NULL;
- spin_lock_irq(&dev->mode_config.connector_list_lock);
- list_del(&connector->head);
- dev->mode_config.num_connector--;
- spin_unlock_irq(&dev->mode_config.connector_list_lock);
+
+ drm_connector_remove(connector);
WARN_ON(connector->state && !connector->funcs->atomic_destroy_state);
if (connector->state && connector->funcs->atomic_destroy_state)
diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
index e3fa43291f449..8e8d130b40f98 100644
--- a/include/drm/drm_connector.h
+++ b/include/drm/drm_connector.h
@@ -2122,6 +2122,11 @@ struct drm_connector {
#define obj_to_connector(x) container_of(x, struct drm_connector, base)
+int drm_connector_init_core(struct drm_device *dev,
+ struct drm_connector *connector,
+ const struct drm_connector_funcs *funcs,
+ int connector_type);
+void drm_connector_add(struct drm_connector *connector);
int drm_connector_init(struct drm_device *dev,
struct drm_connector *connector,
const struct drm_connector_funcs *funcs,
--
2.44.2
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH 3/4] drm/i915/dp_mst: Expose a connector to kernel users after it's properly initialized
2024-11-15 16:41 [PATCH 1/4] drm/i915/dp_mst: Fix connector initialization in intel_dp_add_mst_connector() Imre Deak
2024-11-15 16:41 ` [PATCH 2/4] drm/dp: Add a way to init/add a connector in separate steps Imre Deak
@ 2024-11-15 16:41 ` Imre Deak
2024-11-15 20:18 ` Rodrigo Vivi
2024-11-18 12:12 ` Jani Nikula
2024-11-15 16:41 ` [PATCH 4/4] drm/i915/dp_mst: Fix error handling while adding a connector Imre Deak
` (5 subsequent siblings)
7 siblings, 2 replies; 22+ messages in thread
From: Imre Deak @ 2024-11-15 16:41 UTC (permalink / raw)
To: intel-gfx, dri-devel
After a connector is added to the drm_mode_config::connector_list, it's
visible to any in-kernel users looking up connectors via the above list.
Make sure that the connector is properly initialized before such
look-ups.
Signed-off-by: Imre Deak <imre.deak@intel.com>
---
drivers/gpu/drm/i915/display/intel_dp_mst.c | 29 ++++++++-------------
1 file changed, 11 insertions(+), 18 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
index f058360a26413..d91a1d1fb26f4 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
@@ -1719,6 +1719,8 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo
if (!intel_connector)
return NULL;
+ connector = &intel_connector->base;
+
intel_connector->get_hw_state = intel_dp_mst_get_hw_state;
intel_connector->sync_state = intel_dp_connector_sync_state;
intel_connector->mst_port = intel_dp;
@@ -1727,30 +1729,19 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo
intel_dp_init_modeset_retry_work(intel_connector);
- /*
- * TODO: The following drm_connector specific initialization belongs
- * to DRM core, however it happens atm too late in
- * drm_connector_init(). That function will also expose the connector
- * to in-kernel users, so it can't be called until the connector is
- * sufficiently initialized; init the device pointer used by the
- * following DSC setup, until a fix moving this to DRM core.
- */
- intel_connector->base.dev = mgr->dev;
-
- intel_connector->dp.dsc_decompression_aux = drm_dp_mst_dsc_aux_for_port(port);
- intel_dp_mst_read_decompression_port_dsc_caps(intel_dp, intel_connector);
- intel_connector->dp.dsc_hblank_expansion_quirk =
- detect_dsc_hblank_expansion_quirk(intel_connector);
-
- connector = &intel_connector->base;
- ret = drm_connector_init(display->drm, connector, &intel_dp_mst_connector_funcs,
- DRM_MODE_CONNECTOR_DisplayPort);
+ ret = drm_connector_init_core(display->drm, connector, &intel_dp_mst_connector_funcs,
+ DRM_MODE_CONNECTOR_DisplayPort);
if (ret) {
drm_dp_mst_put_port_malloc(port);
intel_connector_free(intel_connector);
return NULL;
}
+ intel_connector->dp.dsc_decompression_aux = drm_dp_mst_dsc_aux_for_port(port);
+ intel_dp_mst_read_decompression_port_dsc_caps(intel_dp, intel_connector);
+ intel_connector->dp.dsc_hblank_expansion_quirk =
+ detect_dsc_hblank_expansion_quirk(intel_connector);
+
drm_connector_helper_add(connector, &intel_dp_mst_connector_helper_funcs);
for_each_pipe(display, pipe) {
@@ -1771,6 +1762,8 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo
drm_dbg_kms(display->drm, "[%s:%d] HDCP MST init failed, skipping.\n",
connector->name, connector->base.id);
+ drm_connector_add(connector);
+
return connector;
err:
--
2.44.2
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH 4/4] drm/i915/dp_mst: Fix error handling while adding a connector
2024-11-15 16:41 [PATCH 1/4] drm/i915/dp_mst: Fix connector initialization in intel_dp_add_mst_connector() Imre Deak
2024-11-15 16:41 ` [PATCH 2/4] drm/dp: Add a way to init/add a connector in separate steps Imre Deak
2024-11-15 16:41 ` [PATCH 3/4] drm/i915/dp_mst: Expose a connector to kernel users after it's properly initialized Imre Deak
@ 2024-11-15 16:41 ` Imre Deak
2024-11-15 20:17 ` Rodrigo Vivi
2024-11-15 17:08 ` ✗ Fi.CI.SPARSE: warning for series starting with [1/4] drm/i915/dp_mst: Fix connector initialization in intel_dp_add_mst_connector() Patchwork
` (4 subsequent siblings)
7 siblings, 1 reply; 22+ messages in thread
From: Imre Deak @ 2024-11-15 16:41 UTC (permalink / raw)
To: intel-gfx, dri-devel
After an error during adding an MST connector the MST port and the
intel_connector object could be leaked, fix this up.
Signed-off-by: Imre Deak <imre.deak@intel.com>
---
drivers/gpu/drm/i915/display/intel_dp_mst.c | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
index d91a1d1fb26f4..70daa9131c92d 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
@@ -1731,11 +1731,8 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo
ret = drm_connector_init_core(display->drm, connector, &intel_dp_mst_connector_funcs,
DRM_MODE_CONNECTOR_DisplayPort);
- if (ret) {
- drm_dp_mst_put_port_malloc(port);
- intel_connector_free(intel_connector);
- return NULL;
- }
+ if (ret)
+ goto err_put_port;
intel_connector->dp.dsc_decompression_aux = drm_dp_mst_dsc_aux_for_port(port);
intel_dp_mst_read_decompression_port_dsc_caps(intel_dp, intel_connector);
@@ -1750,12 +1747,12 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo
ret = drm_connector_attach_encoder(&intel_connector->base, enc);
if (ret)
- goto err;
+ goto err_cleanup_connector;
}
ret = intel_dp_mst_add_properties(intel_dp, connector, pathprop);
if (ret)
- goto err;
+ goto err_cleanup_connector;
ret = intel_dp_hdcp_init(dig_port, intel_connector);
if (ret)
@@ -1766,8 +1763,12 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo
return connector;
-err:
+err_cleanup_connector:
drm_connector_cleanup(connector);
+err_put_port:
+ drm_dp_mst_put_port_malloc(port);
+ intel_connector_free(intel_connector);
+
return NULL;
}
--
2.44.2
^ permalink raw reply related [flat|nested] 22+ messages in thread
* ✗ Fi.CI.SPARSE: warning for series starting with [1/4] drm/i915/dp_mst: Fix connector initialization in intel_dp_add_mst_connector()
2024-11-15 16:41 [PATCH 1/4] drm/i915/dp_mst: Fix connector initialization in intel_dp_add_mst_connector() Imre Deak
` (2 preceding siblings ...)
2024-11-15 16:41 ` [PATCH 4/4] drm/i915/dp_mst: Fix error handling while adding a connector Imre Deak
@ 2024-11-15 17:08 ` Patchwork
2024-11-15 17:08 ` ✓ Fi.CI.BAT: success " Patchwork
` (3 subsequent siblings)
7 siblings, 0 replies; 22+ messages in thread
From: Patchwork @ 2024-11-15 17:08 UTC (permalink / raw)
To: Imre Deak; +Cc: intel-gfx
== Series Details ==
Series: series starting with [1/4] drm/i915/dp_mst: Fix connector initialization in intel_dp_add_mst_connector()
URL : https://patchwork.freedesktop.org/series/141419/
State : warning
== Summary ==
Error: dim sparse failed
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.
^ permalink raw reply [flat|nested] 22+ messages in thread
* ✓ Fi.CI.BAT: success for series starting with [1/4] drm/i915/dp_mst: Fix connector initialization in intel_dp_add_mst_connector()
2024-11-15 16:41 [PATCH 1/4] drm/i915/dp_mst: Fix connector initialization in intel_dp_add_mst_connector() Imre Deak
` (3 preceding siblings ...)
2024-11-15 17:08 ` ✗ Fi.CI.SPARSE: warning for series starting with [1/4] drm/i915/dp_mst: Fix connector initialization in intel_dp_add_mst_connector() Patchwork
@ 2024-11-15 17:08 ` Patchwork
2024-11-15 20:20 ` [PATCH 1/4] " Rodrigo Vivi
` (2 subsequent siblings)
7 siblings, 0 replies; 22+ messages in thread
From: Patchwork @ 2024-11-15 17:08 UTC (permalink / raw)
To: Imre Deak; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 7030 bytes --]
== Series Details ==
Series: series starting with [1/4] drm/i915/dp_mst: Fix connector initialization in intel_dp_add_mst_connector()
URL : https://patchwork.freedesktop.org/series/141419/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_15707 -> Patchwork_141419v1
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/index.html
Participating hosts (45 -> 46)
------------------------------
Additional (2): bat-mtlp-9 bat-adls-6
Missing (1): fi-snb-2520m
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_141419v1:
### IGT changes ###
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* igt@i915_selftest@live:
- {bat-arls-6}: [PASS][1] -> [ABORT][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/bat-arls-6/igt@i915_selftest@live.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/bat-arls-6/igt@i915_selftest@live.html
Known issues
------------
Here are the changes found in Patchwork_141419v1 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@debugfs_test@basic-hwmon:
- bat-adls-6: NOTRUN -> [SKIP][3] ([i915#9318])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/bat-adls-6/igt@debugfs_test@basic-hwmon.html
* igt@gem_lmem_swapping@parallel-random-engines:
- bat-adls-6: NOTRUN -> [SKIP][4] ([i915#4613]) +3 other tests skip
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/bat-adls-6/igt@gem_lmem_swapping@parallel-random-engines.html
* igt@gem_tiled_pread_basic:
- bat-adls-6: NOTRUN -> [SKIP][5] ([i915#3282])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/bat-adls-6/igt@gem_tiled_pread_basic.html
* igt@i915_selftest@live:
- bat-mtlp-8: [PASS][6] -> [ABORT][7] ([i915#12061]) +1 other test abort
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/bat-mtlp-8/igt@i915_selftest@live.html
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/bat-mtlp-8/igt@i915_selftest@live.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
- bat-adls-6: NOTRUN -> [SKIP][8] ([i915#4103]) +1 other test skip
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/bat-adls-6/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
* igt@kms_dsc@dsc-basic:
- bat-adls-6: NOTRUN -> [SKIP][9] ([i915#3555] / [i915#3840])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/bat-adls-6/igt@kms_dsc@dsc-basic.html
* igt@kms_force_connector_basic@force-load-detect:
- bat-adls-6: NOTRUN -> [SKIP][10]
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/bat-adls-6/igt@kms_force_connector_basic@force-load-detect.html
* igt@kms_pm_backlight@basic-brightness:
- bat-adls-6: NOTRUN -> [SKIP][11] ([i915#5354])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/bat-adls-6/igt@kms_pm_backlight@basic-brightness.html
* igt@kms_psr@psr-primary-mmap-gtt:
- bat-adls-6: NOTRUN -> [SKIP][12] ([i915#1072] / [i915#9732]) +3 other tests skip
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/bat-adls-6/igt@kms_psr@psr-primary-mmap-gtt.html
* igt@kms_setmode@basic-clone-single-crtc:
- bat-adls-6: NOTRUN -> [SKIP][13] ([i915#3555])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/bat-adls-6/igt@kms_setmode@basic-clone-single-crtc.html
* igt@prime_vgem@basic-fence-read:
- bat-adls-6: NOTRUN -> [SKIP][14] ([i915#3291]) +2 other tests skip
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/bat-adls-6/igt@prime_vgem@basic-fence-read.html
#### Possible fixes ####
* igt@i915_module_load@load:
- bat-adlp-6: [DMESG-WARN][15] ([i915#12253]) -> [PASS][16]
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/bat-adlp-6/igt@i915_module_load@load.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/bat-adlp-6/igt@i915_module_load@load.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[i915#10216]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10216
[i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
[i915#11681]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11681
[i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
[i915#12253]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12253
[i915#3282]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3282
[i915#3291]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3291
[i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555
[i915#3708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3708
[i915#3840]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3840
[i915#4077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4077
[i915#4079]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4083
[i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103
[i915#4212]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4212
[i915#4213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4213
[i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
[i915#5190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5190
[i915#5274]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5274
[i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354
[i915#6621]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6621
[i915#8809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8809
[i915#9159]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9159
[i915#9318]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9318
[i915#9688]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9688
[i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
Build changes
-------------
* Linux: CI_DRM_15707 -> Patchwork_141419v1
CI-20190529: 20190529
CI_DRM_15707: c43ac257e8f2dfe3a5f56d3565472cb8051ca32d @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_8112: ef5d662b38a758a23fee2a61ae7aaa3ab0079ed8 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_141419v1: c43ac257e8f2dfe3a5f56d3565472cb8051ca32d @ git://anongit.freedesktop.org/gfx-ci/linux
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/index.html
[-- Attachment #2: Type: text/html, Size: 6967 bytes --]
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 4/4] drm/i915/dp_mst: Fix error handling while adding a connector
2024-11-15 16:41 ` [PATCH 4/4] drm/i915/dp_mst: Fix error handling while adding a connector Imre Deak
@ 2024-11-15 20:17 ` Rodrigo Vivi
0 siblings, 0 replies; 22+ messages in thread
From: Rodrigo Vivi @ 2024-11-15 20:17 UTC (permalink / raw)
To: Imre Deak; +Cc: intel-gfx, dri-devel
On Fri, Nov 15, 2024 at 06:41:59PM +0200, Imre Deak wrote:
> After an error during adding an MST connector the MST port and the
> intel_connector object could be leaked, fix this up.
>
> Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_dp_mst.c | 17 +++++++++--------
> 1 file changed, 9 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> index d91a1d1fb26f4..70daa9131c92d 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> @@ -1731,11 +1731,8 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo
>
> ret = drm_connector_init_core(display->drm, connector, &intel_dp_mst_connector_funcs,
> DRM_MODE_CONNECTOR_DisplayPort);
> - if (ret) {
> - drm_dp_mst_put_port_malloc(port);
> - intel_connector_free(intel_connector);
> - return NULL;
> - }
> + if (ret)
> + goto err_put_port;
>
> intel_connector->dp.dsc_decompression_aux = drm_dp_mst_dsc_aux_for_port(port);
> intel_dp_mst_read_decompression_port_dsc_caps(intel_dp, intel_connector);
> @@ -1750,12 +1747,12 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo
>
> ret = drm_connector_attach_encoder(&intel_connector->base, enc);
> if (ret)
> - goto err;
> + goto err_cleanup_connector;
> }
>
> ret = intel_dp_mst_add_properties(intel_dp, connector, pathprop);
> if (ret)
> - goto err;
> + goto err_cleanup_connector;
>
> ret = intel_dp_hdcp_init(dig_port, intel_connector);
> if (ret)
> @@ -1766,8 +1763,12 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo
>
> return connector;
>
> -err:
> +err_cleanup_connector:
> drm_connector_cleanup(connector);
> +err_put_port:
> + drm_dp_mst_put_port_malloc(port);
> + intel_connector_free(intel_connector);
> +
> return NULL;
> }
>
> --
> 2.44.2
>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 3/4] drm/i915/dp_mst: Expose a connector to kernel users after it's properly initialized
2024-11-15 16:41 ` [PATCH 3/4] drm/i915/dp_mst: Expose a connector to kernel users after it's properly initialized Imre Deak
@ 2024-11-15 20:18 ` Rodrigo Vivi
2024-11-18 12:12 ` Jani Nikula
1 sibling, 0 replies; 22+ messages in thread
From: Rodrigo Vivi @ 2024-11-15 20:18 UTC (permalink / raw)
To: Imre Deak; +Cc: intel-gfx, dri-devel
On Fri, Nov 15, 2024 at 06:41:58PM +0200, Imre Deak wrote:
> After a connector is added to the drm_mode_config::connector_list, it's
> visible to any in-kernel users looking up connectors via the above list.
> Make sure that the connector is properly initialized before such
> look-ups.
>
> Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_dp_mst.c | 29 ++++++++-------------
> 1 file changed, 11 insertions(+), 18 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> index f058360a26413..d91a1d1fb26f4 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> @@ -1719,6 +1719,8 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo
> if (!intel_connector)
> return NULL;
>
> + connector = &intel_connector->base;
> +
> intel_connector->get_hw_state = intel_dp_mst_get_hw_state;
> intel_connector->sync_state = intel_dp_connector_sync_state;
> intel_connector->mst_port = intel_dp;
> @@ -1727,30 +1729,19 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo
>
> intel_dp_init_modeset_retry_work(intel_connector);
>
> - /*
> - * TODO: The following drm_connector specific initialization belongs
> - * to DRM core, however it happens atm too late in
> - * drm_connector_init(). That function will also expose the connector
> - * to in-kernel users, so it can't be called until the connector is
> - * sufficiently initialized; init the device pointer used by the
> - * following DSC setup, until a fix moving this to DRM core.
> - */
> - intel_connector->base.dev = mgr->dev;
> -
> - intel_connector->dp.dsc_decompression_aux = drm_dp_mst_dsc_aux_for_port(port);
> - intel_dp_mst_read_decompression_port_dsc_caps(intel_dp, intel_connector);
> - intel_connector->dp.dsc_hblank_expansion_quirk =
> - detect_dsc_hblank_expansion_quirk(intel_connector);
> -
> - connector = &intel_connector->base;
> - ret = drm_connector_init(display->drm, connector, &intel_dp_mst_connector_funcs,
> - DRM_MODE_CONNECTOR_DisplayPort);
> + ret = drm_connector_init_core(display->drm, connector, &intel_dp_mst_connector_funcs,
> + DRM_MODE_CONNECTOR_DisplayPort);
> if (ret) {
> drm_dp_mst_put_port_malloc(port);
> intel_connector_free(intel_connector);
> return NULL;
> }
>
> + intel_connector->dp.dsc_decompression_aux = drm_dp_mst_dsc_aux_for_port(port);
> + intel_dp_mst_read_decompression_port_dsc_caps(intel_dp, intel_connector);
> + intel_connector->dp.dsc_hblank_expansion_quirk =
> + detect_dsc_hblank_expansion_quirk(intel_connector);
> +
> drm_connector_helper_add(connector, &intel_dp_mst_connector_helper_funcs);
>
> for_each_pipe(display, pipe) {
> @@ -1771,6 +1762,8 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo
> drm_dbg_kms(display->drm, "[%s:%d] HDCP MST init failed, skipping.\n",
> connector->name, connector->base.id);
>
> + drm_connector_add(connector);
> +
> return connector;
>
> err:
> --
> 2.44.2
>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 2/4] drm/dp: Add a way to init/add a connector in separate steps
2024-11-15 16:41 ` [PATCH 2/4] drm/dp: Add a way to init/add a connector in separate steps Imre Deak
@ 2024-11-15 20:18 ` Rodrigo Vivi
2024-11-18 12:09 ` Jani Nikula
1 sibling, 0 replies; 22+ messages in thread
From: Rodrigo Vivi @ 2024-11-15 20:18 UTC (permalink / raw)
To: Imre Deak; +Cc: intel-gfx, dri-devel
On Fri, Nov 15, 2024 at 06:41:57PM +0200, Imre Deak wrote:
> Atm when the connector is added to the drm_mode_config::connector_list,
> the connector may not be fully initialized yet. This is not a problem
> for user space, which will see the connector only after it's registered
> later, it could be a problem for in-kernel users looking up connectors
> via the above list.
>
> To resolve the above issue, add a way to separately initialize the DRM
> core specific parts of the connector and add it to the above list. This
> will move adding the connector to the list after the properties on the
> connector have been added, this is ok since these steps don't have a
> dependency.
>
> Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> ---
> drivers/gpu/drm/drm_connector.c | 103 ++++++++++++++++++++++++++------
> include/drm/drm_connector.h | 5 ++
> 2 files changed, 91 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
> index fc35f47e2849e..6132a7917b20c 100644
> --- a/drivers/gpu/drm/drm_connector.c
> +++ b/drivers/gpu/drm/drm_connector.c
> @@ -218,11 +218,11 @@ void drm_connector_free_work_fn(struct work_struct *work)
> }
> }
>
> -static int __drm_connector_init(struct drm_device *dev,
> - struct drm_connector *connector,
> - const struct drm_connector_funcs *funcs,
> - int connector_type,
> - struct i2c_adapter *ddc)
> +static int __drm_connector_init_core(struct drm_device *dev,
> + struct drm_connector *connector,
> + const struct drm_connector_funcs *funcs,
> + int connector_type,
> + struct i2c_adapter *ddc)
> {
> struct drm_mode_config *config = &dev->mode_config;
> int ret;
> @@ -273,6 +273,7 @@ static int __drm_connector_init(struct drm_device *dev,
> /* provide ddc symlink in sysfs */
> connector->ddc = ddc;
>
> + INIT_LIST_HEAD(&connector->head);
> INIT_LIST_HEAD(&connector->global_connector_list_entry);
> INIT_LIST_HEAD(&connector->probed_modes);
> INIT_LIST_HEAD(&connector->modes);
> @@ -288,14 +289,6 @@ static int __drm_connector_init(struct drm_device *dev,
>
> drm_connector_get_cmdline_mode(connector);
>
> - /* We should add connectors at the end to avoid upsetting the connector
> - * index too much.
> - */
> - spin_lock_irq(&config->connector_list_lock);
> - list_add_tail(&connector->head, &config->connector_list);
> - config->num_connector++;
> - spin_unlock_irq(&config->connector_list_lock);
> -
> if (connector_type != DRM_MODE_CONNECTOR_VIRTUAL &&
> connector_type != DRM_MODE_CONNECTOR_WRITEBACK)
> drm_connector_attach_edid_property(connector);
> @@ -332,6 +325,84 @@ static int __drm_connector_init(struct drm_device *dev,
> return ret;
> }
>
> +/**
> + * drm_connector_init_core - Initialize the core state of a preallocated connector
> + * @dev: DRM device
> + * @connector: the connector to init
> + * @funcs: callbacks for this connector
> + * @connector_type: user visible type of the connector
> + *
> + * Initialises the core state of preallocated connector. This is
> + * equivalent to drm_connector_init(), without adding the connector to
> + * drm_mode_config::connector_list. This call must be followed by calling
> + * drm_connector_add() during initialization to expose the connector to
> + * in-kernel users via the above list.
> + *
> + * Returns:
> + * Zero on success, error code on failure.
> + */
> +int drm_connector_init_core(struct drm_device *dev,
> + struct drm_connector *connector,
> + const struct drm_connector_funcs *funcs,
> + int connector_type)
> +{
> + if (drm_WARN_ON(dev, !(funcs && funcs->destroy)))
> + return -EINVAL;
> +
> + return __drm_connector_init_core(dev, connector, funcs, connector_type, NULL);
> +}
> +EXPORT_SYMBOL(drm_connector_init_core);
> +
> +/**
> + * drm_connector_add - Add the connector
> + * @connector: the connector to add
> + *
> + * Add the connector to the drm_mode_config::connector_list, exposing the
> + * connector to in-kernel users. This call must be preceded by a call to
> + * drm_connector_init_core().
> + */
> +void drm_connector_add(struct drm_connector *connector)
> +{
> + struct drm_device *dev = connector->dev;
> + struct drm_mode_config *config = &dev->mode_config;
> +
> + spin_lock_irq(&config->connector_list_lock);
> + list_add_tail(&connector->head, &config->connector_list);
> + config->num_connector++;
> + spin_unlock_irq(&config->connector_list_lock);
> +}
> +EXPORT_SYMBOL(drm_connector_add);
> +
> +static void drm_connector_remove(struct drm_connector *connector)
> +{
> + struct drm_device *dev = connector->dev;
> +
> + if (list_empty(&connector->head))
> + return;
> +
> + spin_lock_irq(&dev->mode_config.connector_list_lock);
> + list_del_init(&connector->head);
> + dev->mode_config.num_connector--;
> + spin_unlock_irq(&dev->mode_config.connector_list_lock);
> +}
> +
> +static int __drm_connector_init(struct drm_device *dev,
> + struct drm_connector *connector,
> + const struct drm_connector_funcs *funcs,
> + int connector_type,
> + struct i2c_adapter *ddc)
> +{
> + int ret;
> +
> + ret = __drm_connector_init_core(dev, connector, funcs, connector_type, ddc);
> + if (ret)
> + return ret;
> +
> + drm_connector_add(connector);
> +
> + return 0;
> +}
> +
> /**
> * drm_connector_init - Init a preallocated connector
> * @dev: DRM device
> @@ -659,10 +730,8 @@ void drm_connector_cleanup(struct drm_connector *connector)
> connector->name = NULL;
> fwnode_handle_put(connector->fwnode);
> connector->fwnode = NULL;
> - spin_lock_irq(&dev->mode_config.connector_list_lock);
> - list_del(&connector->head);
> - dev->mode_config.num_connector--;
> - spin_unlock_irq(&dev->mode_config.connector_list_lock);
> +
> + drm_connector_remove(connector);
>
> WARN_ON(connector->state && !connector->funcs->atomic_destroy_state);
> if (connector->state && connector->funcs->atomic_destroy_state)
> diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
> index e3fa43291f449..8e8d130b40f98 100644
> --- a/include/drm/drm_connector.h
> +++ b/include/drm/drm_connector.h
> @@ -2122,6 +2122,11 @@ struct drm_connector {
>
> #define obj_to_connector(x) container_of(x, struct drm_connector, base)
>
> +int drm_connector_init_core(struct drm_device *dev,
> + struct drm_connector *connector,
> + const struct drm_connector_funcs *funcs,
> + int connector_type);
> +void drm_connector_add(struct drm_connector *connector);
> int drm_connector_init(struct drm_device *dev,
> struct drm_connector *connector,
> const struct drm_connector_funcs *funcs,
> --
> 2.44.2
>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 1/4] drm/i915/dp_mst: Fix connector initialization in intel_dp_add_mst_connector()
2024-11-15 16:41 [PATCH 1/4] drm/i915/dp_mst: Fix connector initialization in intel_dp_add_mst_connector() Imre Deak
` (4 preceding siblings ...)
2024-11-15 17:08 ` ✓ Fi.CI.BAT: success " Patchwork
@ 2024-11-15 20:20 ` Rodrigo Vivi
2024-11-15 20:30 ` Imre Deak
2024-11-15 21:56 ` ✗ Fi.CI.IGT: failure for series starting with [1/4] " Patchwork
2024-11-18 11:45 ` [PATCH 1/4] " Jani Nikula
7 siblings, 1 reply; 22+ messages in thread
From: Rodrigo Vivi @ 2024-11-15 20:20 UTC (permalink / raw)
To: Imre Deak; +Cc: intel-gfx, dri-devel, Jani Nikula
On Fri, Nov 15, 2024 at 06:41:56PM +0200, Imre Deak wrote:
> The connector initialization in intel_dp_add_mst_connector() depends on
> the device pointer in connector to be valid, at least by connector
> debug printing. The device pointer is initialized by drm_connector_init(),
> however that function also exposes the connector to in-kernel users,
> which can't be done before the connector is fully initialized. For now
> make sure the device pointer is valid before it's used, until a
> follow-up change moving this to DRM core.
>
> This issue was revealed by the commit in the Fixes: line below, before
> which the above debug printing checked and handled a NULL device pointer
> gracefully in DRM core.
>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Fixes: 529798bd786a ("drm/i915/mst: convert to struct intel_display")
This is awkward. This patch actually removes callers of base.dev.
I don't see how that it could be causing this new null dereference.
> Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12799
But well, trusting more the tests then my eyes, let's move forward.
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Signed-off-by: Imre Deak <imre.deak@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_dp_mst.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> index df7edcfe885b6..f058360a26413 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> @@ -1727,6 +1727,16 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo
>
> intel_dp_init_modeset_retry_work(intel_connector);
>
> + /*
> + * TODO: The following drm_connector specific initialization belongs
> + * to DRM core, however it happens atm too late in
> + * drm_connector_init(). That function will also expose the connector
> + * to in-kernel users, so it can't be called until the connector is
> + * sufficiently initialized; init the device pointer used by the
> + * following DSC setup, until a fix moving this to DRM core.
> + */
> + intel_connector->base.dev = mgr->dev;
> +
> intel_connector->dp.dsc_decompression_aux = drm_dp_mst_dsc_aux_for_port(port);
> intel_dp_mst_read_decompression_port_dsc_caps(intel_dp, intel_connector);
> intel_connector->dp.dsc_hblank_expansion_quirk =
> --
> 2.44.2
>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 1/4] drm/i915/dp_mst: Fix connector initialization in intel_dp_add_mst_connector()
2024-11-15 20:20 ` [PATCH 1/4] " Rodrigo Vivi
@ 2024-11-15 20:30 ` Imre Deak
2024-11-15 22:30 ` Rodrigo Vivi
2024-11-18 9:10 ` Jani Nikula
0 siblings, 2 replies; 22+ messages in thread
From: Imre Deak @ 2024-11-15 20:30 UTC (permalink / raw)
To: Rodrigo Vivi; +Cc: intel-gfx, dri-devel, Jani Nikula
On Fri, Nov 15, 2024 at 03:20:58PM -0500, Rodrigo Vivi wrote:
> On Fri, Nov 15, 2024 at 06:41:56PM +0200, Imre Deak wrote:
> > The connector initialization in intel_dp_add_mst_connector() depends on
> > the device pointer in connector to be valid, at least by connector
> > debug printing. The device pointer is initialized by drm_connector_init(),
> > however that function also exposes the connector to in-kernel users,
> > which can't be done before the connector is fully initialized. For now
> > make sure the device pointer is valid before it's used, until a
> > follow-up change moving this to DRM core.
> >
> > This issue was revealed by the commit in the Fixes: line below, before
> > which the above debug printing checked and handled a NULL device pointer
> > gracefully in DRM core.
> >
> > Cc: Jani Nikula <jani.nikula@intel.com>
> > Fixes: 529798bd786a ("drm/i915/mst: convert to struct intel_display")
>
> This is awkward. This patch actually removes callers of base.dev.
> I don't see how that it could be causing this new null dereference.
It adds
struct intel_display *display = to_intel_display(connector);
which will be NULL since connector->base.dev is NULL and later display
is dereferenced.
> > Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12799
>
> But well, trusting more the tests then my eyes, let's move forward.
>
> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
>
> > Signed-off-by: Imre Deak <imre.deak@intel.com>
> > ---
> > drivers/gpu/drm/i915/display/intel_dp_mst.c | 10 ++++++++++
> > 1 file changed, 10 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > index df7edcfe885b6..f058360a26413 100644
> > --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > @@ -1727,6 +1727,16 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo
> >
> > intel_dp_init_modeset_retry_work(intel_connector);
> >
> > + /*
> > + * TODO: The following drm_connector specific initialization belongs
> > + * to DRM core, however it happens atm too late in
> > + * drm_connector_init(). That function will also expose the connector
> > + * to in-kernel users, so it can't be called until the connector is
> > + * sufficiently initialized; init the device pointer used by the
> > + * following DSC setup, until a fix moving this to DRM core.
> > + */
> > + intel_connector->base.dev = mgr->dev;
> > +
> > intel_connector->dp.dsc_decompression_aux = drm_dp_mst_dsc_aux_for_port(port);
> > intel_dp_mst_read_decompression_port_dsc_caps(intel_dp, intel_connector);
> > intel_connector->dp.dsc_hblank_expansion_quirk =
> > --
> > 2.44.2
> >
^ permalink raw reply [flat|nested] 22+ messages in thread
* ✗ Fi.CI.IGT: failure for series starting with [1/4] drm/i915/dp_mst: Fix connector initialization in intel_dp_add_mst_connector()
2024-11-15 16:41 [PATCH 1/4] drm/i915/dp_mst: Fix connector initialization in intel_dp_add_mst_connector() Imre Deak
` (5 preceding siblings ...)
2024-11-15 20:20 ` [PATCH 1/4] " Rodrigo Vivi
@ 2024-11-15 21:56 ` Patchwork
2024-11-18 11:45 ` [PATCH 1/4] " Jani Nikula
7 siblings, 0 replies; 22+ messages in thread
From: Patchwork @ 2024-11-15 21:56 UTC (permalink / raw)
To: Imre Deak; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 101741 bytes --]
== Series Details ==
Series: series starting with [1/4] drm/i915/dp_mst: Fix connector initialization in intel_dp_add_mst_connector()
URL : https://patchwork.freedesktop.org/series/141419/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_15707_full -> Patchwork_141419v1_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with Patchwork_141419v1_full absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_141419v1_full, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
to document this new failure mode, which will reduce false positives in CI.
Participating hosts (10 -> 9)
------------------------------
Missing (1): shard-glk-0
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_141419v1_full:
### IGT changes ###
#### Possible regressions ####
* igt@gem_lmem_swapping@heavy-verify-random:
- shard-dg2: [PASS][1] -> [SKIP][2] +24 other tests skip
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-1/igt@gem_lmem_swapping@heavy-verify-random.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-11/igt@gem_lmem_swapping@heavy-verify-random.html
* igt@i915_pm_rpm@debugfs-read:
- shard-dg1: NOTRUN -> [SKIP][3]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-15/igt@i915_pm_rpm@debugfs-read.html
* igt@i915_selftest@live@hugepages:
- shard-mtlp: NOTRUN -> [ABORT][4] +1 other test abort
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-mtlp-5/igt@i915_selftest@live@hugepages.html
* igt@kms_ccs@crc-primary-suspend-y-tiled-ccs:
- shard-glk: NOTRUN -> [ABORT][5]
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk4/igt@kms_ccs@crc-primary-suspend-y-tiled-ccs.html
* igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs:
- shard-tglu-1: NOTRUN -> [ABORT][6] +1 other test abort
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-1/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs.html
* igt@kms_color@ctm-0-50:
- shard-tglu: [PASS][7] -> [ABORT][8] +1 other test abort
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-tglu-3/igt@kms_color@ctm-0-50.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-5/igt@kms_color@ctm-0-50.html
* igt@kms_cursor_edge_walk@128x128-top-bottom:
- shard-dg1: NOTRUN -> [INCOMPLETE][9] +1 other test incomplete
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-12/igt@kms_cursor_edge_walk@128x128-top-bottom.html
* igt@kms_plane_multiple@tiling-4@pipe-c-edp-1:
- shard-mtlp: NOTRUN -> [FAIL][10] +2 other tests fail
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-mtlp-5/igt@kms_plane_multiple@tiling-4@pipe-c-edp-1.html
* igt@tools_test@tools_test:
- shard-dg2: [PASS][11] -> [FAIL][12]
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-1/igt@tools_test@tools_test.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-11/igt@tools_test@tools_test.html
#### Warnings ####
* igt@device_reset@unbind-cold-reset-rebind:
- shard-dg2: [SKIP][13] ([i915#11078]) -> [SKIP][14]
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-1/igt@device_reset@unbind-cold-reset-rebind.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-11/igt@device_reset@unbind-cold-reset-rebind.html
* igt@drm_fdinfo@all-busy-check-all:
- shard-dg2: [SKIP][15] ([i915#8414]) -> [SKIP][16]
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-1/igt@drm_fdinfo@all-busy-check-all.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-11/igt@drm_fdinfo@all-busy-check-all.html
* igt@i915_module_load@reload-with-fault-injection:
- shard-dg2: [ABORT][17] ([i915#9820]) -> [DMESG-WARN][18]
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-10/igt@i915_module_load@reload-with-fault-injection.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-2/igt@i915_module_load@reload-with-fault-injection.html
* igt@kms_pm_rpm@fences-dpms:
- shard-dg2: [SKIP][19] ([i915#4077]) -> [SKIP][20] +1 other test skip
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-7/igt@kms_pm_rpm@fences-dpms.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-11/igt@kms_pm_rpm@fences-dpms.html
* igt@kms_prime@d3hot:
- shard-dg2: [SKIP][21] ([i915#6524] / [i915#6805]) -> [SKIP][22]
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-1/igt@kms_prime@d3hot.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-11/igt@kms_prime@d3hot.html
* igt@perf_pmu@frequency:
- shard-dg2: [FAIL][23] ([i915#12549] / [i915#6806]) -> [SKIP][24]
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-10/igt@perf_pmu@frequency.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-11/igt@perf_pmu@frequency.html
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* {igt@kms_ccs@crc-primary-suspend-y-tiled-ccs@pipe-c-hdmi-a-2}:
- shard-glk: NOTRUN -> [ABORT][25]
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk4/igt@kms_ccs@crc-primary-suspend-y-tiled-ccs@pipe-c-hdmi-a-2.html
Known issues
------------
Here are the changes found in Patchwork_141419v1_full that come from known issues:
### CI changes ###
#### Possible fixes ####
* boot:
- shard-dg1: ([PASS][26], [PASS][27], [PASS][28], [PASS][29], [PASS][30], [PASS][31], [PASS][32], [PASS][33], [PASS][34], [PASS][35], [PASS][36], [PASS][37], [PASS][38], [PASS][39], [PASS][40], [PASS][41], [PASS][42], [PASS][43], [PASS][44], [PASS][45], [PASS][46], [PASS][47], [FAIL][48], [PASS][49], [PASS][50]) -> ([PASS][51], [PASS][52], [PASS][53], [PASS][54], [PASS][55], [PASS][56], [PASS][57], [PASS][58], [PASS][59], [PASS][60], [PASS][61], [PASS][62], [PASS][63], [PASS][64], [PASS][65], [PASS][66], [PASS][67], [PASS][68], [PASS][69], [PASS][70], [PASS][71], [PASS][72], [PASS][73], [PASS][74], [PASS][75])
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg1-12/boot.html
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg1-12/boot.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg1-12/boot.html
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg1-12/boot.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg1-13/boot.html
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg1-13/boot.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg1-13/boot.html
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg1-14/boot.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg1-14/boot.html
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg1-14/boot.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg1-15/boot.html
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg1-15/boot.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg1-15/boot.html
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg1-16/boot.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg1-16/boot.html
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg1-16/boot.html
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg1-16/boot.html
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg1-17/boot.html
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg1-17/boot.html
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg1-17/boot.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg1-18/boot.html
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg1-18/boot.html
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg1-19/boot.html
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg1-19/boot.html
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg1-19/boot.html
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-12/boot.html
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-12/boot.html
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-12/boot.html
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-13/boot.html
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-13/boot.html
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-13/boot.html
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-14/boot.html
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-14/boot.html
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-15/boot.html
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-15/boot.html
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-15/boot.html
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-15/boot.html
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-16/boot.html
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-16/boot.html
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-16/boot.html
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-17/boot.html
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-17/boot.html
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-17/boot.html
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-18/boot.html
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-18/boot.html
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-18/boot.html
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-18/boot.html
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-19/boot.html
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-19/boot.html
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-19/boot.html
- shard-glk: ([PASS][76], [PASS][77], [PASS][78], [PASS][79], [PASS][80], [PASS][81], [PASS][82], [PASS][83], [PASS][84], [PASS][85], [PASS][86], [PASS][87], [PASS][88], [PASS][89], [FAIL][90], [PASS][91], [PASS][92], [PASS][93], [PASS][94], [PASS][95], [PASS][96], [PASS][97], [PASS][98], [PASS][99], [PASS][100], [PASS][101], [PASS][102], [PASS][103], [PASS][104], [PASS][105], [PASS][106], [PASS][107], [PASS][108], [PASS][109], [PASS][110], [PASS][111], [PASS][112], [PASS][113], [PASS][114], [PASS][115], [PASS][116], [FAIL][117], [PASS][118], [PASS][119], [PASS][120], [PASS][121], [PASS][122], [PASS][123], [PASS][124], [PASS][125], [PASS][126], [PASS][127], [PASS][128], [PASS][129], [PASS][130], [PASS][131], [PASS][132], [PASS][133], [PASS][134], [PASS][135], [PASS][136], [PASS][137], [PASS][138], [PASS][139], [FAIL][140], [PASS][141], [PASS][142], [PASS][143], [PASS][144], [PASS][145], [PASS][146], [PASS][147], [PASS][148], [PASS][149], [PASS][150], [PASS][151], [PASS][152], [PASS][153], [PASS][154], [PASS][155], [PASS][156], [PASS][157], [PASS][158]) -> ([PASS][159], [PASS][160], [PASS][161], [PASS][162], [PASS][163], [PASS][164], [PASS][165], [PASS][166], [PASS][167], [PASS][168], [PASS][169], [PASS][170], [PASS][171], [PASS][172], [PASS][173], [PASS][174], [PASS][175], [PASS][176], [PASS][177], [PASS][178], [PASS][179], [PASS][180], [PASS][181], [PASS][182], [PASS][183])
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk5/boot.html
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk5/boot.html
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk5/boot.html
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk1/boot.html
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk1/boot.html
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk1/boot.html
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk5/boot.html
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk5/boot.html
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk5/boot.html
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk4/boot.html
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk1/boot.html
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk1/boot.html
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk1/boot.html
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk4/boot.html
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk4/boot.html
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk4/boot.html
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk4/boot.html
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk4/boot.html
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk1/boot.html
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk1/boot.html
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk1/boot.html
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk4/boot.html
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk1/boot.html
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk4/boot.html
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk4/boot.html
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk2/boot.html
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk2/boot.html
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk4/boot.html
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk3/boot.html
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk3/boot.html
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk3/boot.html
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk3/boot.html
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk3/boot.html
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk2/boot.html
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk3/boot.html
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk3/boot.html
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk2/boot.html
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk2/boot.html
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk2/boot.html
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk2/boot.html
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk2/boot.html
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk2/boot.html
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk2/boot.html
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk9/boot.html
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk9/boot.html
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk9/boot.html
[122]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk9/boot.html
[123]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk9/boot.html
[124]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk9/boot.html
[125]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk9/boot.html
[126]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk9/boot.html
[127]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk8/boot.html
[128]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk8/boot.html
[129]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk8/boot.html
[130]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk8/boot.html
[131]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk8/boot.html
[132]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk8/boot.html
[133]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk8/boot.html
[134]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk8/boot.html
[135]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk8/boot.html
[136]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk8/boot.html
[137]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk7/boot.html
[138]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk7/boot.html
[139]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk7/boot.html
[140]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk7/boot.html
[141]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk7/boot.html
[142]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk7/boot.html
[143]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk7/boot.html
[144]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk7/boot.html
[145]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk7/boot.html
[146]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk7/boot.html
[147]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk6/boot.html
[148]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk6/boot.html
[149]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk6/boot.html
[150]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk6/boot.html
[151]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk6/boot.html
[152]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk6/boot.html
[153]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk6/boot.html
[154]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk6/boot.html
[155]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk6/boot.html
[156]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk6/boot.html
[157]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk6/boot.html
[158]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk5/boot.html
[159]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk4/boot.html
[160]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk3/boot.html
[161]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk3/boot.html
[162]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk7/boot.html
[163]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk3/boot.html
[164]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk2/boot.html
[165]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk7/boot.html
[166]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk2/boot.html
[167]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk2/boot.html
[168]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk1/boot.html
[169]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk1/boot.html
[170]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk6/boot.html
[171]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk6/boot.html
[172]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk6/boot.html
[173]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk5/boot.html
[174]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk5/boot.html
[175]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk7/boot.html
[176]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk8/boot.html
[177]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk8/boot.html
[178]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk5/boot.html
[179]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk4/boot.html
[180]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk8/boot.html
[181]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk9/boot.html
[182]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk9/boot.html
[183]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk4/boot.html
### IGT changes ###
#### Issues hit ####
* igt@drm_fdinfo@busy-idle@bcs0:
- shard-dg2: NOTRUN -> [SKIP][184] ([i915#8414]) +15 other tests skip
[184]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-5/igt@drm_fdinfo@busy-idle@bcs0.html
* igt@gem_bad_reloc@negative-reloc-lut:
- shard-dg1: NOTRUN -> [SKIP][185] ([i915#3281]) +3 other tests skip
[185]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-12/igt@gem_bad_reloc@negative-reloc-lut.html
* igt@gem_busy@close-race:
- shard-tglu: NOTRUN -> [FAIL][186] ([i915#12296] / [i915#12577])
[186]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-8/igt@gem_busy@close-race.html
* igt@gem_caching@reads:
- shard-mtlp: NOTRUN -> [SKIP][187] ([i915#4873])
[187]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-mtlp-5/igt@gem_caching@reads.html
* igt@gem_ccs@block-multicopy-compressed:
- shard-tglu-1: NOTRUN -> [SKIP][188] ([i915#9323])
[188]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-1/igt@gem_ccs@block-multicopy-compressed.html
* igt@gem_ccs@block-multicopy-inplace:
- shard-tglu-1: NOTRUN -> [SKIP][189] ([i915#3555] / [i915#9323])
[189]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-1/igt@gem_ccs@block-multicopy-inplace.html
* igt@gem_ccs@suspend-resume@xmajor-compressed-compfmt0-lmem0-lmem0:
- shard-dg2: [PASS][190] -> [INCOMPLETE][191] ([i915#12392] / [i915#7297])
[190]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-6/igt@gem_ccs@suspend-resume@xmajor-compressed-compfmt0-lmem0-lmem0.html
[191]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-10/igt@gem_ccs@suspend-resume@xmajor-compressed-compfmt0-lmem0-lmem0.html
* igt@gem_create@create-ext-set-pat:
- shard-tglu: NOTRUN -> [SKIP][192] ([i915#8562])
[192]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-8/igt@gem_create@create-ext-set-pat.html
* igt@gem_ctx_sseu@invalid-sseu:
- shard-dg1: NOTRUN -> [SKIP][193] ([i915#280])
[193]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-12/igt@gem_ctx_sseu@invalid-sseu.html
* igt@gem_exec_capture@capture@vecs0-lmem0:
- shard-dg1: NOTRUN -> [FAIL][194] ([i915#11965] / [i915#12558]) +2 other tests fail
[194]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-12/igt@gem_exec_capture@capture@vecs0-lmem0.html
* igt@gem_exec_fair@basic-pace@rcs0:
- shard-rkl: [PASS][195] -> [FAIL][196] ([i915#2842])
[195]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-rkl-4/igt@gem_exec_fair@basic-pace@rcs0.html
[196]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-rkl-5/igt@gem_exec_fair@basic-pace@rcs0.html
* igt@gem_exec_fair@basic-sync:
- shard-dg2: NOTRUN -> [SKIP][197] ([i915#3539])
[197]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-4/igt@gem_exec_fair@basic-sync.html
* igt@gem_exec_fair@basic-throttle:
- shard-tglu-1: NOTRUN -> [FAIL][198] ([i915#2842]) +7 other tests fail
[198]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-1/igt@gem_exec_fair@basic-throttle.html
* igt@gem_exec_reloc@basic-write-gtt-noreloc:
- shard-dg2: NOTRUN -> [SKIP][199] ([i915#3281]) +2 other tests skip
[199]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-4/igt@gem_exec_reloc@basic-write-gtt-noreloc.html
* igt@gem_lmem_swapping@massive-random:
- shard-tglu-1: NOTRUN -> [SKIP][200] ([i915#4613]) +1 other test skip
[200]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-1/igt@gem_lmem_swapping@massive-random.html
* igt@gem_lmem_swapping@parallel-random-verify:
- shard-glk: NOTRUN -> [SKIP][201] ([i915#4613]) +1 other test skip
[201]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk1/igt@gem_lmem_swapping@parallel-random-verify.html
* igt@gem_lmem_swapping@random:
- shard-tglu: NOTRUN -> [SKIP][202] ([i915#4613])
[202]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-8/igt@gem_lmem_swapping@random.html
* igt@gem_mmap@short-mmap:
- shard-dg2: NOTRUN -> [SKIP][203] ([i915#4083]) +1 other test skip
[203]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-4/igt@gem_mmap@short-mmap.html
* igt@gem_mmap_gtt@cpuset-big-copy-xy:
- shard-dg2: NOTRUN -> [SKIP][204] ([i915#4077]) +6 other tests skip
[204]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-6/igt@gem_mmap_gtt@cpuset-big-copy-xy.html
* igt@gem_mmap_gtt@cpuset-medium-copy-odd:
- shard-mtlp: NOTRUN -> [SKIP][205] ([i915#4077])
[205]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-mtlp-8/igt@gem_mmap_gtt@cpuset-medium-copy-odd.html
* igt@gem_mmap_wc@bad-object:
- shard-dg1: NOTRUN -> [SKIP][206] ([i915#4083])
[206]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-12/igt@gem_mmap_wc@bad-object.html
* igt@gem_partial_pwrite_pread@reads:
- shard-dg2: NOTRUN -> [SKIP][207] ([i915#3282]) +1 other test skip
[207]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-6/igt@gem_partial_pwrite_pread@reads.html
* igt@gem_partial_pwrite_pread@reads-uncached:
- shard-dg1: NOTRUN -> [SKIP][208] ([i915#3282])
[208]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-12/igt@gem_partial_pwrite_pread@reads-uncached.html
* igt@gem_pwrite@basic-exhaustion:
- shard-snb: NOTRUN -> [WARN][209] ([i915#2658])
[209]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-snb1/igt@gem_pwrite@basic-exhaustion.html
* igt@gem_pxp@fail-invalid-protected-context:
- shard-tglu: NOTRUN -> [SKIP][210] ([i915#4270]) +3 other tests skip
[210]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-8/igt@gem_pxp@fail-invalid-protected-context.html
* igt@gem_pxp@reject-modify-context-protection-off-2:
- shard-dg2: NOTRUN -> [SKIP][211] ([i915#4270])
[211]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-4/igt@gem_pxp@reject-modify-context-protection-off-2.html
* igt@gem_pxp@reject-modify-context-protection-on:
- shard-tglu-1: NOTRUN -> [SKIP][212] ([i915#4270])
[212]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-1/igt@gem_pxp@reject-modify-context-protection-on.html
* igt@gem_render_copy@yf-tiled-ccs-to-linear:
- shard-dg2: NOTRUN -> [SKIP][213] ([i915#5190] / [i915#8428]) +3 other tests skip
[213]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-4/igt@gem_render_copy@yf-tiled-ccs-to-linear.html
* igt@gem_render_tiled_blits@basic:
- shard-dg2: NOTRUN -> [SKIP][214] ([i915#4079])
[214]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-6/igt@gem_render_tiled_blits@basic.html
* igt@gem_softpin@evict-snoop-interruptible:
- shard-dg2: NOTRUN -> [SKIP][215] ([i915#4885])
[215]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-4/igt@gem_softpin@evict-snoop-interruptible.html
* igt@gem_unfence_active_buffers:
- shard-dg1: NOTRUN -> [SKIP][216] ([i915#4879])
[216]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-12/igt@gem_unfence_active_buffers.html
* igt@gem_userptr_blits@map-fixed-invalidate:
- shard-dg1: NOTRUN -> [SKIP][217] ([i915#3297] / [i915#4880])
[217]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-12/igt@gem_userptr_blits@map-fixed-invalidate.html
* igt@gem_userptr_blits@unsync-unmap-cycles:
- shard-tglu: NOTRUN -> [SKIP][218] ([i915#3297])
[218]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-6/igt@gem_userptr_blits@unsync-unmap-cycles.html
* igt@gen9_exec_parse@allowed-all:
- shard-dg2: NOTRUN -> [SKIP][219] ([i915#2856]) +2 other tests skip
[219]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-2/igt@gen9_exec_parse@allowed-all.html
- shard-dg1: NOTRUN -> [SKIP][220] ([i915#2527]) +2 other tests skip
[220]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-15/igt@gen9_exec_parse@allowed-all.html
* igt@i915_module_load@reload-with-fault-injection:
- shard-rkl: [PASS][221] -> [ABORT][222] ([i915#9820])
[221]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-rkl-6/igt@i915_module_load@reload-with-fault-injection.html
[222]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-rkl-3/igt@i915_module_load@reload-with-fault-injection.html
- shard-tglu: NOTRUN -> [ABORT][223] ([i915#12817] / [i915#9820])
[223]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-6/igt@i915_module_load@reload-with-fault-injection.html
* igt@i915_pm_freq_api@freq-suspend:
- shard-tglu-1: NOTRUN -> [SKIP][224] ([i915#8399])
[224]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-1/igt@i915_pm_freq_api@freq-suspend.html
* igt@i915_pm_rc6_residency@rc6-idle@gt0-bcs0:
- shard-dg1: [PASS][225] -> [FAIL][226] ([i915#12548] / [i915#3591]) +1 other test fail
[225]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg1-14/igt@i915_pm_rc6_residency@rc6-idle@gt0-bcs0.html
[226]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-19/igt@i915_pm_rc6_residency@rc6-idle@gt0-bcs0.html
* igt@i915_pm_rps@thresholds:
- shard-dg2: NOTRUN -> [SKIP][227] ([i915#11681])
[227]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-6/igt@i915_pm_rps@thresholds.html
* igt@i915_power@sanity:
- shard-mtlp: [PASS][228] -> [SKIP][229] ([i915#7984])
[228]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-mtlp-4/igt@i915_power@sanity.html
[229]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-mtlp-8/igt@i915_power@sanity.html
* igt@i915_selftest@mock:
- shard-tglu: NOTRUN -> [DMESG-WARN][230] ([i915#9311]) +1 other test dmesg-warn
[230]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-6/igt@i915_selftest@mock.html
* igt@intel_hwmon@hwmon-write:
- shard-tglu: NOTRUN -> [SKIP][231] ([i915#7707])
[231]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-6/igt@intel_hwmon@hwmon-write.html
* igt@kms_async_flips@async-flip-with-page-flip-events@pipe-b-hdmi-a-1-y-rc-ccs:
- shard-tglu: NOTRUN -> [SKIP][232] ([i915#8709]) +7 other tests skip
[232]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-8/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-b-hdmi-a-1-y-rc-ccs.html
* igt@kms_async_flips@async-flip-with-page-flip-events@pipe-b-hdmi-a-2-y-rc-ccs-cc:
- shard-rkl: NOTRUN -> [SKIP][233] ([i915#8709]) +3 other tests skip
[233]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-rkl-3/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-b-hdmi-a-2-y-rc-ccs-cc.html
* igt@kms_async_flips@async-flip-with-page-flip-events@pipe-d-hdmi-a-3-4-mc-ccs:
- shard-dg2: NOTRUN -> [SKIP][234] ([i915#8709]) +11 other tests skip
[234]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-5/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-d-hdmi-a-3-4-mc-ccs.html
* igt@kms_async_flips@invalid-async-flip:
- shard-dg2: NOTRUN -> [SKIP][235] ([i915#6228])
[235]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-4/igt@kms_async_flips@invalid-async-flip.html
* igt@kms_atomic_transition@plane-all-modeset-transition:
- shard-dg1: [PASS][236] -> [FAIL][237] ([i915#5956])
[236]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg1-12/igt@kms_atomic_transition@plane-all-modeset-transition.html
[237]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-18/igt@kms_atomic_transition@plane-all-modeset-transition.html
* igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels:
- shard-dg2: NOTRUN -> [SKIP][238] ([i915#1769] / [i915#3555])
[238]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-6/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html
* igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-4:
- shard-dg1: NOTRUN -> [FAIL][239] ([i915#5956])
[239]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-18/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-4.html
* igt@kms_big_fb@4-tiled-64bpp-rotate-0:
- shard-tglu-1: NOTRUN -> [SKIP][240] ([i915#5286]) +2 other tests skip
[240]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-1/igt@kms_big_fb@4-tiled-64bpp-rotate-0.html
* igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip:
- shard-dg1: NOTRUN -> [SKIP][241] ([i915#4538] / [i915#5286]) +4 other tests skip
[241]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-12/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html
* igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-hflip:
- shard-tglu: NOTRUN -> [SKIP][242] ([i915#5286]) +1 other test skip
[242]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-3/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-hflip.html
* igt@kms_big_fb@linear-64bpp-rotate-270:
- shard-dg1: NOTRUN -> [SKIP][243] ([i915#3638])
[243]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-12/igt@kms_big_fb@linear-64bpp-rotate-270.html
* igt@kms_big_fb@yf-tiled-16bpp-rotate-180:
- shard-dg1: NOTRUN -> [SKIP][244] ([i915#4538])
[244]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-12/igt@kms_big_fb@yf-tiled-16bpp-rotate-180.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-async-flip:
- shard-dg2: NOTRUN -> [SKIP][245] ([i915#4538] / [i915#5190]) +5 other tests skip
[245]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-4/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html
* igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs-cc@pipe-b-hdmi-a-4:
- shard-dg1: NOTRUN -> [SKIP][246] ([i915#6095]) +148 other tests skip
[246]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-16/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs-cc@pipe-b-hdmi-a-4.html
* igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs-cc@pipe-a-hdmi-a-1:
- shard-tglu-1: NOTRUN -> [SKIP][247] ([i915#6095]) +24 other tests skip
[247]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-1/igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs-cc@pipe-a-hdmi-a-1.html
* igt@kms_ccs@crc-primary-rotation-180-4-tiled-dg2-rc-ccs-cc:
- shard-tglu: NOTRUN -> [SKIP][248] ([i915#6095]) +59 other tests skip
[248]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-8/igt@kms_ccs@crc-primary-rotation-180-4-tiled-dg2-rc-ccs-cc.html
* igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs:
- shard-tglu: NOTRUN -> [SKIP][249] ([i915#12313])
[249]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-3/igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs:
- shard-dg2: NOTRUN -> [SKIP][250] ([i915#12805])
[250]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-6/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs@pipe-a-hdmi-a-3:
- shard-dg2: NOTRUN -> [SKIP][251] ([i915#6095]) +7 other tests skip
[251]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-5/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs@pipe-a-hdmi-a-3.html
* igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs@pipe-b-hdmi-a-1:
- shard-tglu-1: NOTRUN -> [INCOMPLETE][252] ([i915#1982])
[252]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-1/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs@pipe-b-hdmi-a-1.html
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs@pipe-b-hdmi-a-2:
- shard-rkl: NOTRUN -> [SKIP][253] ([i915#6095]) +73 other tests skip
[253]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-rkl-6/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs@pipe-b-hdmi-a-2.html
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs-cc@pipe-a-hdmi-a-3:
- shard-dg1: NOTRUN -> [SKIP][254] ([i915#4423] / [i915#6095])
[254]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-12/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs-cc@pipe-a-hdmi-a-3.html
* igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs:
- shard-dg1: NOTRUN -> [SKIP][255] ([i915#12313])
[255]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-12/igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs.html
* igt@kms_ccs@random-ccs-data-y-tiled-gen12-mc-ccs@pipe-c-hdmi-a-1:
- shard-dg2: NOTRUN -> [SKIP][256] ([i915#10307] / [i915#6095]) +101 other tests skip
[256]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-4/igt@kms_ccs@random-ccs-data-y-tiled-gen12-mc-ccs@pipe-c-hdmi-a-1.html
* igt@kms_ccs@random-ccs-data-y-tiled-gen12-mc-ccs@pipe-d-hdmi-a-1:
- shard-dg2: NOTRUN -> [SKIP][257] ([i915#10307] / [i915#10434] / [i915#6095]) +2 other tests skip
[257]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-4/igt@kms_ccs@random-ccs-data-y-tiled-gen12-mc-ccs@pipe-d-hdmi-a-1.html
* igt@kms_cdclk@mode-transition:
- shard-tglu-1: NOTRUN -> [SKIP][258] ([i915#3742])
[258]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-1/igt@kms_cdclk@mode-transition.html
* igt@kms_cdclk@plane-scaling@pipe-c-hdmi-a-3:
- shard-dg2: NOTRUN -> [SKIP][259] ([i915#4087]) +4 other tests skip
[259]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-6/igt@kms_cdclk@plane-scaling@pipe-c-hdmi-a-3.html
* igt@kms_chamelium_audio@hdmi-audio-edid:
- shard-tglu-1: NOTRUN -> [SKIP][260] ([i915#7828]) +4 other tests skip
[260]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-1/igt@kms_chamelium_audio@hdmi-audio-edid.html
* igt@kms_chamelium_edid@dp-edid-change-during-suspend:
- shard-glk: NOTRUN -> [SKIP][261] +60 other tests skip
[261]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk4/igt@kms_chamelium_edid@dp-edid-change-during-suspend.html
* igt@kms_chamelium_edid@hdmi-mode-timings:
- shard-dg1: NOTRUN -> [SKIP][262] ([i915#7828]) +2 other tests skip
[262]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-15/igt@kms_chamelium_edid@hdmi-mode-timings.html
- shard-mtlp: NOTRUN -> [SKIP][263] ([i915#7828]) +1 other test skip
[263]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-mtlp-5/igt@kms_chamelium_edid@hdmi-mode-timings.html
* igt@kms_chamelium_frames@hdmi-cmp-planar-formats:
- shard-dg2: NOTRUN -> [SKIP][264] ([i915#7828]) +3 other tests skip
[264]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-6/igt@kms_chamelium_frames@hdmi-cmp-planar-formats.html
* igt@kms_chamelium_hpd@vga-hpd-fast:
- shard-tglu: NOTRUN -> [SKIP][265] ([i915#7828]) +4 other tests skip
[265]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-8/igt@kms_chamelium_hpd@vga-hpd-fast.html
* igt@kms_color@deep-color:
- shard-tglu: NOTRUN -> [SKIP][266] ([i915#3555] / [i915#9979])
[266]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-3/igt@kms_color@deep-color.html
* igt@kms_content_protection@lic-type-1:
- shard-dg1: NOTRUN -> [SKIP][267] ([i915#9424])
[267]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-12/igt@kms_content_protection@lic-type-1.html
* igt@kms_content_protection@mei-interface:
- shard-tglu-1: NOTRUN -> [SKIP][268] ([i915#6944] / [i915#9424])
[268]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-1/igt@kms_content_protection@mei-interface.html
* igt@kms_content_protection@srm:
- shard-mtlp: NOTRUN -> [SKIP][269] ([i915#6944])
[269]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-mtlp-2/igt@kms_content_protection@srm.html
* igt@kms_content_protection@type1:
- shard-tglu: NOTRUN -> [SKIP][270] ([i915#6944] / [i915#7116] / [i915#7118] / [i915#9424])
[270]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-6/igt@kms_content_protection@type1.html
* igt@kms_content_protection@uevent:
- shard-tglu-1: NOTRUN -> [SKIP][271] ([i915#6944] / [i915#7116] / [i915#7118] / [i915#9424])
[271]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-1/igt@kms_content_protection@uevent.html
* igt@kms_cursor_crc@cursor-offscreen-64x21:
- shard-mtlp: NOTRUN -> [SKIP][272] ([i915#8814]) +1 other test skip
[272]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-mtlp-5/igt@kms_cursor_crc@cursor-offscreen-64x21.html
* igt@kms_cursor_crc@cursor-onscreen-32x32:
- shard-dg1: NOTRUN -> [SKIP][273] ([i915#3555]) +2 other tests skip
[273]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-12/igt@kms_cursor_crc@cursor-onscreen-32x32.html
* igt@kms_cursor_crc@cursor-rapid-movement-512x170:
- shard-tglu: NOTRUN -> [SKIP][274] ([i915#11453] / [i915#3359])
[274]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-6/igt@kms_cursor_crc@cursor-rapid-movement-512x170.html
* igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic:
- shard-mtlp: NOTRUN -> [SKIP][275] ([i915#9809])
[275]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-mtlp-8/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
- shard-tglu-1: NOTRUN -> [SKIP][276] ([i915#4103]) +1 other test skip
[276]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-1/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
* igt@kms_dp_linktrain_fallback@dp-fallback:
- shard-dg2: NOTRUN -> [SKIP][277] ([i915#12402])
[277]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-6/igt@kms_dp_linktrain_fallback@dp-fallback.html
* igt@kms_dsc@dsc-basic:
- shard-dg2: NOTRUN -> [SKIP][278] ([i915#3555] / [i915#3840])
[278]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-4/igt@kms_dsc@dsc-basic.html
* igt@kms_dsc@dsc-fractional-bpp:
- shard-tglu-1: NOTRUN -> [SKIP][279] ([i915#3840])
[279]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-1/igt@kms_dsc@dsc-fractional-bpp.html
* igt@kms_dsc@dsc-with-bpc:
- shard-tglu: NOTRUN -> [SKIP][280] ([i915#3555] / [i915#3840])
[280]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-8/igt@kms_dsc@dsc-with-bpc.html
* igt@kms_dsc@dsc-with-bpc-formats:
- shard-tglu-1: NOTRUN -> [SKIP][281] ([i915#3555] / [i915#3840])
[281]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-1/igt@kms_dsc@dsc-with-bpc-formats.html
* igt@kms_fbcon_fbt@psr-suspend:
- shard-dg1: NOTRUN -> [SKIP][282] ([i915#3469])
[282]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-12/igt@kms_fbcon_fbt@psr-suspend.html
* igt@kms_feature_discovery@chamelium:
- shard-dg1: NOTRUN -> [SKIP][283] ([i915#4854])
[283]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-16/igt@kms_feature_discovery@chamelium.html
* igt@kms_feature_discovery@psr1:
- shard-tglu-1: NOTRUN -> [SKIP][284] ([i915#658])
[284]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-1/igt@kms_feature_discovery@psr1.html
* igt@kms_feature_discovery@psr2:
- shard-dg2: NOTRUN -> [SKIP][285] ([i915#658])
[285]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-4/igt@kms_feature_discovery@psr2.html
* igt@kms_flip@2x-flip-vs-fences:
- shard-dg1: NOTRUN -> [SKIP][286] ([i915#8381])
[286]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-12/igt@kms_flip@2x-flip-vs-fences.html
* igt@kms_flip@2x-flip-vs-suspend:
- shard-dg1: NOTRUN -> [SKIP][287] ([i915#9934])
[287]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-12/igt@kms_flip@2x-flip-vs-suspend.html
* igt@kms_flip@2x-plain-flip:
- shard-tglu: NOTRUN -> [SKIP][288] ([i915#3637]) +2 other tests skip
[288]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-8/igt@kms_flip@2x-plain-flip.html
* igt@kms_flip@2x-plain-flip-interruptible:
- shard-tglu-1: NOTRUN -> [SKIP][289] ([i915#3637]) +3 other tests skip
[289]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-1/igt@kms_flip@2x-plain-flip-interruptible.html
* igt@kms_flip@2x-wf_vblank-ts-check-interruptible:
- shard-glk: ([PASS][290], [PASS][291], [PASS][292]) -> [FAIL][293] ([i915#2122]) +1 other test fail
[290]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk7/igt@kms_flip@2x-wf_vblank-ts-check-interruptible.html
[291]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk3/igt@kms_flip@2x-wf_vblank-ts-check-interruptible.html
[292]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk6/igt@kms_flip@2x-wf_vblank-ts-check-interruptible.html
[293]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk7/igt@kms_flip@2x-wf_vblank-ts-check-interruptible.html
* igt@kms_flip@flip-vs-expired-vblank:
- shard-rkl: [PASS][294] -> [FAIL][295] ([i915#79])
[294]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-rkl-7/igt@kms_flip@flip-vs-expired-vblank.html
[295]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-rkl-3/igt@kms_flip@flip-vs-expired-vblank.html
* igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a2:
- shard-rkl: NOTRUN -> [FAIL][296] ([i915#79])
[296]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-rkl-3/igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a2.html
* igt@kms_flip@flip-vs-suspend:
- shard-dg1: NOTRUN -> [INCOMPLETE][297] ([i915#4839] / [i915#6113]) +1 other test incomplete
[297]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-13/igt@kms_flip@flip-vs-suspend.html
* igt@kms_flip@wf_vblank-ts-check-interruptible@c-hdmi-a3:
- shard-dg2: NOTRUN -> [FAIL][298] ([i915#2122]) +1 other test fail
[298]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-5/igt@kms_flip@wf_vblank-ts-check-interruptible@c-hdmi-a3.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling@pipe-a-valid-mode:
- shard-tglu: NOTRUN -> [SKIP][299] ([i915#2587] / [i915#2672]) +3 other tests skip
[299]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-6/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling:
- shard-dg2: NOTRUN -> [SKIP][300] ([i915#2672] / [i915#3555])
[300]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-4/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling:
- shard-dg1: NOTRUN -> [SKIP][301] ([i915#2672] / [i915#3555])
[301]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-12/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling@pipe-a-valid-mode:
- shard-dg1: NOTRUN -> [SKIP][302] ([i915#2587] / [i915#2672])
[302]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-12/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling:
- shard-tglu: NOTRUN -> [SKIP][303] ([i915#2672] / [i915#3555]) +2 other tests skip
[303]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-8/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling:
- shard-tglu: NOTRUN -> [SKIP][304] ([i915#2587] / [i915#2672] / [i915#3555])
[304]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-3/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-upscaling:
- shard-tglu-1: NOTRUN -> [SKIP][305] ([i915#2672] / [i915#3555])
[305]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-1/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-upscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-upscaling@pipe-a-valid-mode:
- shard-tglu-1: NOTRUN -> [SKIP][306] ([i915#2587] / [i915#2672])
[306]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-1/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-upscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling:
- shard-mtlp: NOTRUN -> [SKIP][307] ([i915#2672] / [i915#3555] / [i915#8813])
[307]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-mtlp-7/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling@pipe-a-default-mode:
- shard-mtlp: NOTRUN -> [SKIP][308] ([i915#2672] / [i915#8813])
[308]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-mtlp-7/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling:
- shard-dg2: NOTRUN -> [SKIP][309] ([i915#2672] / [i915#3555] / [i915#5190])
[309]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-4/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling@pipe-a-valid-mode:
- shard-dg2: NOTRUN -> [SKIP][310] ([i915#2672]) +4 other tests skip
[310]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-3/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling@pipe-a-valid-mode.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-pgflip-blt:
- shard-dg2: NOTRUN -> [SKIP][311] ([i915#5354]) +18 other tests skip
[311]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-4/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-render:
- shard-tglu: NOTRUN -> [SKIP][312] +40 other tests skip
[312]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-8/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-fullscreen:
- shard-dg1: NOTRUN -> [SKIP][313] +18 other tests skip
[313]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-15/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-fullscreen.html
* igt@kms_frontbuffer_tracking@fbc-farfromfence-mmap-gtt:
- shard-dg1: NOTRUN -> [SKIP][314] ([i915#8708]) +4 other tests skip
[314]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-12/igt@kms_frontbuffer_tracking@fbc-farfromfence-mmap-gtt.html
* igt@kms_frontbuffer_tracking@fbc-rgb565-draw-blt:
- shard-dg2: [PASS][315] -> [FAIL][316] ([i915#6880])
[315]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-6/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-blt.html
[316]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-3/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-blt.html
* igt@kms_frontbuffer_tracking@fbc-rgb565-draw-render:
- shard-dg2: [PASS][317] -> [SKIP][318] +32 other tests skip
[317]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-1/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-render.html
[318]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-11/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-render.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-cpu:
- shard-dg2: NOTRUN -> [SKIP][319] ([i915#3458]) +2 other tests skip
[319]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-6/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-cpu.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-rte:
- shard-dg1: NOTRUN -> [SKIP][320] ([i915#3458]) +5 other tests skip
[320]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-12/igt@kms_frontbuffer_tracking@fbcpsr-1p-rte.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-pwrite:
- shard-tglu-1: NOTRUN -> [SKIP][321] +26 other tests skip
[321]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-1/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-pwrite.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-blt:
- shard-dg2: NOTRUN -> [SKIP][322] ([i915#10433] / [i915#3458]) +3 other tests skip
[322]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-4/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-blt.html
* igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-gtt:
- shard-dg2: NOTRUN -> [SKIP][323] ([i915#8708]) +5 other tests skip
[323]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-6/igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-gtt.html
* igt@kms_hdr@bpc-switch:
- shard-dg2: [PASS][324] -> [SKIP][325] ([i915#3555] / [i915#8228])
[324]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-10/igt@kms_hdr@bpc-switch.html
[325]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-2/igt@kms_hdr@bpc-switch.html
* igt@kms_hdr@brightness-with-hdr:
- shard-tglu-1: NOTRUN -> [SKIP][326] ([i915#12713])
[326]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-1/igt@kms_hdr@brightness-with-hdr.html
* igt@kms_hdr@static-toggle:
- shard-tglu: NOTRUN -> [SKIP][327] ([i915#3555] / [i915#8228])
[327]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-3/igt@kms_hdr@static-toggle.html
* igt@kms_joiner@basic-force-big-joiner:
- shard-dg2: NOTRUN -> [SKIP][328] ([i915#12388])
[328]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-4/igt@kms_joiner@basic-force-big-joiner.html
* igt@kms_joiner@invalid-modeset-force-big-joiner:
- shard-tglu-1: NOTRUN -> [SKIP][329] ([i915#12388])
[329]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-1/igt@kms_joiner@invalid-modeset-force-big-joiner.html
* igt@kms_panel_fitting@atomic-fastset:
- shard-dg2: NOTRUN -> [SKIP][330] ([i915#6301])
[330]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-6/igt@kms_panel_fitting@atomic-fastset.html
* igt@kms_panel_fitting@legacy:
- shard-tglu: NOTRUN -> [SKIP][331] ([i915#6301])
[331]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-8/igt@kms_panel_fitting@legacy.html
* igt@kms_plane_alpha_blend@alpha-opaque-fb:
- shard-glk: NOTRUN -> [FAIL][332] ([i915#12169])
[332]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk4/igt@kms_plane_alpha_blend@alpha-opaque-fb.html
* igt@kms_plane_alpha_blend@alpha-opaque-fb@pipe-a-hdmi-a-1:
- shard-glk: NOTRUN -> [FAIL][333] ([i915#10647]) +1 other test fail
[333]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk4/igt@kms_plane_alpha_blend@alpha-opaque-fb@pipe-a-hdmi-a-1.html
* igt@kms_plane_lowres@tiling-yf:
- shard-dg2: NOTRUN -> [SKIP][334] ([i915#3555] / [i915#8821])
[334]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-6/igt@kms_plane_lowres@tiling-yf.html
* igt@kms_plane_multiple@tiling-yf:
- shard-tglu-1: NOTRUN -> [SKIP][335] ([i915#3555])
[335]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-1/igt@kms_plane_multiple@tiling-yf.html
* igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-c:
- shard-tglu: NOTRUN -> [SKIP][336] ([i915#12247]) +9 other tests skip
[336]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-8/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-c.html
* igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-b:
- shard-tglu-1: NOTRUN -> [SKIP][337] ([i915#12247]) +4 other tests skip
[337]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-1/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-b.html
* igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-pixel-formats@pipe-b:
- shard-mtlp: NOTRUN -> [SKIP][338] ([i915#12247]) +1 other test skip
[338]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-mtlp-5/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-pixel-formats@pipe-b.html
* igt@kms_plane_scaling@plane-upscale-factor-0-25-with-modifiers:
- shard-dg2: [PASS][339] -> [SKIP][340] ([i915#2575] / [i915#9423]) +5 other tests skip
[339]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-10/igt@kms_plane_scaling@plane-upscale-factor-0-25-with-modifiers.html
[340]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-11/igt@kms_plane_scaling@plane-upscale-factor-0-25-with-modifiers.html
* igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25:
- shard-dg2: NOTRUN -> [SKIP][341] ([i915#12247] / [i915#6953] / [i915#9423])
[341]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-6/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25.html
* igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-b:
- shard-dg2: NOTRUN -> [SKIP][342] ([i915#12247]) +3 other tests skip
[342]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-6/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-b.html
* igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25@pipe-b:
- shard-snb: NOTRUN -> [SKIP][343] +63 other tests skip
[343]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-snb1/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25@pipe-b.html
* igt@kms_pm_backlight@bad-brightness:
- shard-dg1: NOTRUN -> [SKIP][344] ([i915#5354])
[344]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-12/igt@kms_pm_backlight@bad-brightness.html
* igt@kms_pm_backlight@fade-with-dpms:
- shard-tglu: NOTRUN -> [SKIP][345] ([i915#9812])
[345]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-8/igt@kms_pm_backlight@fade-with-dpms.html
* igt@kms_pm_dc@dc6-dpms:
- shard-dg2: NOTRUN -> [SKIP][346] ([i915#5978])
[346]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-4/igt@kms_pm_dc@dc6-dpms.html
* igt@kms_pm_dc@dc9-dpms:
- shard-tglu-1: NOTRUN -> [SKIP][347] ([i915#4281])
[347]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-1/igt@kms_pm_dc@dc9-dpms.html
* igt@kms_pm_lpsp@kms-lpsp:
- shard-dg2: NOTRUN -> [SKIP][348] ([i915#9340])
[348]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-6/igt@kms_pm_lpsp@kms-lpsp.html
* igt@kms_pm_rpm@fences-dpms:
- shard-dg1: NOTRUN -> [SKIP][349] ([i915#4077]) +4 other tests skip
[349]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-12/igt@kms_pm_rpm@fences-dpms.html
* igt@kms_pm_rpm@modeset-lpsp:
- shard-rkl: [PASS][350] -> [SKIP][351] ([i915#9519])
[350]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-rkl-2/igt@kms_pm_rpm@modeset-lpsp.html
[351]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-rkl-6/igt@kms_pm_rpm@modeset-lpsp.html
* igt@kms_prime@basic-crc-hybrid:
- shard-dg2: NOTRUN -> [SKIP][352] ([i915#6524] / [i915#6805])
[352]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-6/igt@kms_prime@basic-crc-hybrid.html
* igt@kms_prime@d3hot:
- shard-tglu-1: NOTRUN -> [SKIP][353] ([i915#6524])
[353]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-1/igt@kms_prime@d3hot.html
* igt@kms_psr2_sf@fbc-pr-overlay-plane-update-continuous-sf:
- shard-dg1: NOTRUN -> [SKIP][354] ([i915#11520]) +3 other tests skip
[354]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-12/igt@kms_psr2_sf@fbc-pr-overlay-plane-update-continuous-sf.html
* igt@kms_psr2_sf@fbc-pr-overlay-plane-update-sf-dmg-area:
- shard-tglu-1: NOTRUN -> [SKIP][355] ([i915#11520]) +1 other test skip
[355]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-1/igt@kms_psr2_sf@fbc-pr-overlay-plane-update-sf-dmg-area.html
* igt@kms_psr2_sf@fbc-pr-primary-plane-update-sf-dmg-area:
- shard-dg2: NOTRUN -> [SKIP][356] ([i915#11520]) +4 other tests skip
[356]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-4/igt@kms_psr2_sf@fbc-pr-primary-plane-update-sf-dmg-area.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-fully-sf@pipe-a-edp-1:
- shard-mtlp: NOTRUN -> [SKIP][357] ([i915#9808])
[357]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-mtlp-8/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-fully-sf@pipe-a-edp-1.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-fully-sf@pipe-b-edp-1:
- shard-mtlp: NOTRUN -> [SKIP][358] ([i915#12316]) +1 other test skip
[358]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-mtlp-8/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-fully-sf@pipe-b-edp-1.html
* igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-fully-sf:
- shard-snb: NOTRUN -> [SKIP][359] ([i915#11520]) +1 other test skip
[359]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-snb1/igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-fully-sf.html
* igt@kms_psr2_sf@pr-cursor-plane-update-sf:
- shard-tglu: NOTRUN -> [SKIP][360] ([i915#11520]) +5 other tests skip
[360]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-3/igt@kms_psr2_sf@pr-cursor-plane-update-sf.html
* igt@kms_psr2_sf@pr-overlay-plane-move-continuous-sf:
- shard-glk: NOTRUN -> [SKIP][361] ([i915#11520]) +1 other test skip
[361]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk4/igt@kms_psr2_sf@pr-overlay-plane-move-continuous-sf.html
* igt@kms_psr@fbc-psr2-cursor-plane-move:
- shard-tglu: NOTRUN -> [SKIP][362] ([i915#9732]) +11 other tests skip
[362]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-6/igt@kms_psr@fbc-psr2-cursor-plane-move.html
* igt@kms_psr@pr-primary-mmap-gtt:
- shard-dg1: NOTRUN -> [SKIP][363] ([i915#1072] / [i915#9732]) +7 other tests skip
[363]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-12/igt@kms_psr@pr-primary-mmap-gtt.html
* igt@kms_psr@pr-sprite-plane-onoff:
- shard-tglu-1: NOTRUN -> [SKIP][364] ([i915#9732]) +6 other tests skip
[364]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-1/igt@kms_psr@pr-sprite-plane-onoff.html
* igt@kms_psr@psr2-cursor-blt:
- shard-dg2: NOTRUN -> [SKIP][365] ([i915#1072] / [i915#9732]) +8 other tests skip
[365]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-6/igt@kms_psr@psr2-cursor-blt.html
* igt@kms_psr_stress_test@invalidate-primary-flip-overlay:
- shard-dg2: NOTRUN -> [SKIP][366] ([i915#9685])
[366]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-6/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html
* igt@kms_rotation_crc@exhaust-fences:
- shard-dg2: NOTRUN -> [SKIP][367] ([i915#4235])
[367]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-6/igt@kms_rotation_crc@exhaust-fences.html
* igt@kms_rotation_crc@primary-y-tiled-reflect-x-180:
- shard-dg2: NOTRUN -> [SKIP][368] ([i915#5190])
[368]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-4/igt@kms_rotation_crc@primary-y-tiled-reflect-x-180.html
* igt@kms_scaling_modes@scaling-mode-full:
- shard-tglu: NOTRUN -> [SKIP][369] ([i915#3555]) +6 other tests skip
[369]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-8/igt@kms_scaling_modes@scaling-mode-full.html
* igt@kms_selftest@drm_framebuffer:
- shard-tglu-1: NOTRUN -> [ABORT][370] ([i915#12231]) +1 other test abort
[370]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-1/igt@kms_selftest@drm_framebuffer.html
* igt@kms_setmode@basic:
- shard-snb: NOTRUN -> [FAIL][371] ([i915#5465]) +2 other tests fail
[371]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-snb1/igt@kms_setmode@basic.html
* igt@kms_vblank@ts-continuation-modeset:
- shard-dg2: [PASS][372] -> [SKIP][373] ([i915#2575]) +181 other tests skip
[372]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-1/igt@kms_vblank@ts-continuation-modeset.html
[373]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-11/igt@kms_vblank@ts-continuation-modeset.html
* igt@kms_vrr@flip-basic:
- shard-dg2: NOTRUN -> [SKIP][374] ([i915#3555]) +1 other test skip
[374]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-4/igt@kms_vrr@flip-basic.html
* igt@kms_writeback@writeback-pixel-formats:
- shard-dg2: NOTRUN -> [SKIP][375] ([i915#2437] / [i915#9412])
[375]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-6/igt@kms_writeback@writeback-pixel-formats.html
* igt@perf@gen8-unprivileged-single-ctx-counters:
- shard-mtlp: NOTRUN -> [SKIP][376] +4 other tests skip
[376]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-mtlp-8/igt@perf@gen8-unprivileged-single-ctx-counters.html
- shard-dg2: NOTRUN -> [SKIP][377] ([i915#2436])
[377]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-2/igt@perf@gen8-unprivileged-single-ctx-counters.html
* igt@perf@global-sseu-config-invalid:
- shard-dg2: NOTRUN -> [SKIP][378] ([i915#7387])
[378]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-6/igt@perf@global-sseu-config-invalid.html
* igt@perf@invalid-remove-userspace-config:
- shard-dg2: [PASS][379] -> [SKIP][380] ([i915#12506])
[379]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-10/igt@perf@invalid-remove-userspace-config.html
[380]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-11/igt@perf@invalid-remove-userspace-config.html
* igt@perf_pmu@event-wait@rcs0:
- shard-dg2: NOTRUN -> [SKIP][381] +6 other tests skip
[381]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-3/igt@perf_pmu@event-wait@rcs0.html
* igt@perf_pmu@rc6@other-idle-gt0:
- shard-dg2: NOTRUN -> [SKIP][382] ([i915#8516])
[382]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-4/igt@perf_pmu@rc6@other-idle-gt0.html
* igt@prime_vgem@basic-fence-mmap:
- shard-dg1: NOTRUN -> [SKIP][383] ([i915#3708] / [i915#4077])
[383]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-16/igt@prime_vgem@basic-fence-mmap.html
* igt@prime_vgem@basic-fence-read:
- shard-dg2: NOTRUN -> [SKIP][384] ([i915#3291] / [i915#3708])
[384]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-4/igt@prime_vgem@basic-fence-read.html
* igt@prime_vgem@fence-flip-hang:
- shard-dg1: NOTRUN -> [SKIP][385] ([i915#3708]) +1 other test skip
[385]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-12/igt@prime_vgem@fence-flip-hang.html
* igt@sriov_basic@enable-vfs-autoprobe-on:
- shard-dg1: NOTRUN -> [SKIP][386] ([i915#9917])
[386]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-12/igt@sriov_basic@enable-vfs-autoprobe-on.html
* igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all:
- shard-dg2: NOTRUN -> [SKIP][387] ([i915#9917])
[387]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-4/igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all.html
* igt@syncobj_wait@invalid-wait-zero-handles:
- shard-tglu: NOTRUN -> [FAIL][388] ([i915#12564] / [i915#9781])
[388]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-6/igt@syncobj_wait@invalid-wait-zero-handles.html
#### Possible fixes ####
* igt@api_intel_allocator@default-alignment:
- shard-dg2: [SKIP][389] -> [PASS][390] +40 other tests pass
[389]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-11/igt@api_intel_allocator@default-alignment.html
[390]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-3/igt@api_intel_allocator@default-alignment.html
* igt@fbdev@unaligned-read:
- shard-dg2: [SKIP][391] ([i915#2582]) -> [PASS][392]
[391]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-11/igt@fbdev@unaligned-read.html
[392]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-5/igt@fbdev@unaligned-read.html
* igt@gem_ctx_engines@invalid-engines:
- shard-rkl: [FAIL][393] ([i915#12031]) -> [PASS][394]
[393]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-rkl-2/igt@gem_ctx_engines@invalid-engines.html
[394]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-rkl-5/igt@gem_ctx_engines@invalid-engines.html
* igt@gem_exec_fair@basic-none-share:
- shard-rkl: [FAIL][395] ([i915#2842]) -> [PASS][396] +1 other test pass
[395]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-rkl-5/igt@gem_exec_fair@basic-none-share.html
[396]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-rkl-4/igt@gem_exec_fair@basic-none-share.html
* igt@gem_exec_fair@basic-pace-share@rcs0:
- shard-tglu: [FAIL][397] ([i915#2842]) -> [PASS][398] +1 other test pass
[397]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-tglu-8/igt@gem_exec_fair@basic-pace-share@rcs0.html
[398]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-7/igt@gem_exec_fair@basic-pace-share@rcs0.html
* igt@gem_exec_suspend@basic-s3-devices:
- shard-dg1: [INCOMPLETE][399] -> [PASS][400] +1 other test pass
[399]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg1-17/igt@gem_exec_suspend@basic-s3-devices.html
[400]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-16/igt@gem_exec_suspend@basic-s3-devices.html
* igt@i915_hangman@gt-error-state-capture@vcs1:
- shard-dg2: [ABORT][401] -> [PASS][402]
[401]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-5/igt@i915_hangman@gt-error-state-capture@vcs1.html
[402]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-5/igt@i915_hangman@gt-error-state-capture@vcs1.html
* igt@i915_module_load@reload-with-fault-injection:
- shard-dg1: [ABORT][403] ([i915#9820]) -> [PASS][404]
[403]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg1-13/igt@i915_module_load@reload-with-fault-injection.html
[404]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-15/igt@i915_module_load@reload-with-fault-injection.html
- shard-mtlp: [ABORT][405] ([i915#10131] / [i915#10887]) -> [PASS][406]
[405]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-mtlp-8/igt@i915_module_load@reload-with-fault-injection.html
[406]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-mtlp-8/igt@i915_module_load@reload-with-fault-injection.html
* igt@i915_pm_rps@reset:
- shard-snb: [INCOMPLETE][407] ([i915#7790]) -> [PASS][408]
[407]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-snb6/igt@i915_pm_rps@reset.html
[408]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-snb1/igt@i915_pm_rps@reset.html
* igt@kms_atomic_transition@plane-all-modeset-transition-fencing@pipe-a-hdmi-a-4:
- shard-dg1: [FAIL][409] ([i915#5956]) -> [PASS][410] +1 other test pass
[409]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg1-14/igt@kms_atomic_transition@plane-all-modeset-transition-fencing@pipe-a-hdmi-a-4.html
[410]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-19/igt@kms_atomic_transition@plane-all-modeset-transition-fencing@pipe-a-hdmi-a-4.html
* igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1:
- shard-tglu: [FAIL][411] ([i915#11808]) -> [PASS][412] +1 other test pass
[411]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-tglu-8/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1.html
[412]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-5/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1.html
* igt@kms_busy@basic:
- shard-dg2: [SKIP][413] ([i915#2575]) -> [PASS][414] +145 other tests pass
[413]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-11/igt@kms_busy@basic.html
[414]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-6/igt@kms_busy@basic.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
- shard-glk: ([PASS][415], [FAIL][416], [PASS][417], [PASS][418]) ([i915#2346]) -> [PASS][419]
[415]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
[416]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk4/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
[417]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk5/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
[418]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk7/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
[419]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk4/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
- shard-glk: ([FAIL][420], [PASS][421], [PASS][422]) ([i915#2346]) -> [PASS][423]
[420]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk6/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
[421]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk3/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
[422]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk7/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
[423]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk7/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
* igt@kms_fbcon_fbt@fbc-suspend:
- shard-glk: ([FAIL][424], [PASS][425], [PASS][426], [PASS][427]) ([i915#4767]) -> [PASS][428]
[424]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk2/igt@kms_fbcon_fbt@fbc-suspend.html
[425]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk8/igt@kms_fbcon_fbt@fbc-suspend.html
[426]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk4/igt@kms_fbcon_fbt@fbc-suspend.html
[427]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk7/igt@kms_fbcon_fbt@fbc-suspend.html
[428]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk8/igt@kms_fbcon_fbt@fbc-suspend.html
* igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ac-hdmi-a1-hdmi-a2:
- shard-glk: ([FAIL][429], [PASS][430], [PASS][431]) ([i915#2122]) -> [PASS][432] +1 other test pass
[429]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk5/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ac-hdmi-a1-hdmi-a2.html
[430]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk9/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ac-hdmi-a1-hdmi-a2.html
[431]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk1/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ac-hdmi-a1-hdmi-a2.html
[432]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk3/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ac-hdmi-a1-hdmi-a2.html
* igt@kms_flip@flip-vs-absolute-wf_vblank:
- shard-snb: [FAIL][433] ([i915#2122]) -> [PASS][434] +1 other test pass
[433]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-snb7/igt@kms_flip@flip-vs-absolute-wf_vblank.html
[434]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-snb7/igt@kms_flip@flip-vs-absolute-wf_vblank.html
* igt@kms_flip@flip-vs-suspend@b-hdmi-a1:
- shard-snb: [INCOMPLETE][435] ([i915#4839]) -> [PASS][436] +1 other test pass
[435]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-snb1/igt@kms_flip@flip-vs-suspend@b-hdmi-a1.html
[436]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-snb2/igt@kms_flip@flip-vs-suspend@b-hdmi-a1.html
* igt@kms_flip@flip-vs-suspend@c-hdmi-a1:
- shard-glk: ([INCOMPLETE][437], [PASS][438], [PASS][439]) ([i915#4839]) -> [PASS][440]
[437]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk3/igt@kms_flip@flip-vs-suspend@c-hdmi-a1.html
[438]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk7/igt@kms_flip@flip-vs-suspend@c-hdmi-a1.html
[439]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk6/igt@kms_flip@flip-vs-suspend@c-hdmi-a1.html
[440]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk7/igt@kms_flip@flip-vs-suspend@c-hdmi-a1.html
* igt@kms_flip@wf_vblank-ts-check-interruptible@b-edp1:
- shard-mtlp: [FAIL][441] ([i915#2122]) -> [PASS][442] +3 other tests pass
[441]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-mtlp-3/igt@kms_flip@wf_vblank-ts-check-interruptible@b-edp1.html
[442]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-mtlp-4/igt@kms_flip@wf_vblank-ts-check-interruptible@b-edp1.html
* igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-mmap-cpu:
- shard-dg1: [DMESG-WARN][443] ([i915#4423]) -> [PASS][444] +1 other test pass
[443]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg1-13/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-mmap-cpu.html
[444]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg1-15/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-mmap-cpu.html
* igt@kms_hdr@invalid-metadata-sizes:
- shard-dg2: [SKIP][445] ([i915#3555] / [i915#8228]) -> [PASS][446] +1 other test pass
[445]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-5/igt@kms_hdr@invalid-metadata-sizes.html
[446]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-10/igt@kms_hdr@invalid-metadata-sizes.html
* igt@kms_pipe_crc_basic@suspend-read-crc:
- shard-tglu: [ABORT][447] ([i915#10159]) -> [PASS][448] +1 other test pass
[447]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-tglu-2/igt@kms_pipe_crc_basic@suspend-read-crc.html
[448]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-tglu-6/igt@kms_pipe_crc_basic@suspend-read-crc.html
* igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation:
- shard-dg2: [SKIP][449] ([i915#2575] / [i915#9423]) -> [PASS][450] +3 other tests pass
[449]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-11/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation.html
[450]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-5/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation.html
* igt@kms_pm_rpm@modeset-lpsp:
- shard-dg2: [SKIP][451] ([i915#9519]) -> [PASS][452]
[451]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-2/igt@kms_pm_rpm@modeset-lpsp.html
[452]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-4/igt@kms_pm_rpm@modeset-lpsp.html
* igt@kms_pm_rpm@modeset-non-lpsp-stress:
- shard-rkl: [SKIP][453] ([i915#9519]) -> [PASS][454] +1 other test pass
[453]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-rkl-2/igt@kms_pm_rpm@modeset-non-lpsp-stress.html
[454]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-rkl-5/igt@kms_pm_rpm@modeset-non-lpsp-stress.html
* igt@perf@gen12-group-exclusive-stream-sample-oa:
- shard-dg2: [SKIP][455] ([i915#12506]) -> [PASS][456] +1 other test pass
[455]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-11/igt@perf@gen12-group-exclusive-stream-sample-oa.html
[456]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-5/igt@perf@gen12-group-exclusive-stream-sample-oa.html
* igt@perf_pmu@render-node-busy:
- shard-glk: ([PASS][457], [INCOMPLETE][458]) -> [PASS][459] +1 other test pass
[457]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk5/igt@perf_pmu@render-node-busy.html
[458]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk2/igt@perf_pmu@render-node-busy.html
[459]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk1/igt@perf_pmu@render-node-busy.html
#### Warnings ####
* igt@api_intel_bb@blit-reloc-purge-cache:
- shard-dg2: [SKIP][460] ([i915#8411]) -> [SKIP][461] ([i915#2575])
[460]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-1/igt@api_intel_bb@blit-reloc-purge-cache.html
[461]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-11/igt@api_intel_bb@blit-reloc-purge-cache.html
* igt@drm_fdinfo@busy-idle:
- shard-dg2: [SKIP][462] -> [SKIP][463] ([i915#8414]) +3 other tests skip
[462]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-11/igt@drm_fdinfo@busy-idle.html
[463]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-5/igt@drm_fdinfo@busy-idle.html
* igt@gem_busy@close-race:
- shard-dg2: [SKIP][464] ([i915#2575]) -> [FAIL][465] ([i915#12296] / [i915#12577])
[464]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-11/igt@gem_busy@close-race.html
[465]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-5/igt@gem_busy@close-race.html
* igt@gem_close_race@multigpu-basic-process:
- shard-dg2: [SKIP][466] ([i915#7697]) -> [SKIP][467] ([i915#2575])
[466]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-10/igt@gem_close_race@multigpu-basic-process.html
[467]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-11/igt@gem_close_race@multigpu-basic-process.html
* igt@gem_create@create-ext-set-pat:
- shard-dg2: [SKIP][468] ([i915#2575]) -> [SKIP][469] ([i915#8562])
[468]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-11/igt@gem_create@create-ext-set-pat.html
[469]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-5/igt@gem_create@create-ext-set-pat.html
* igt@gem_ctx_persistence@heartbeat-hostile:
- shard-dg2: [SKIP][470] ([i915#8555]) -> [SKIP][471] ([i915#2575]) +1 other test skip
[470]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-10/igt@gem_ctx_persistence@heartbeat-hostile.html
[471]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-11/igt@gem_ctx_persistence@heartbeat-hostile.html
* igt@gem_ctx_persistence@heartbeat-stop:
- shard-dg2: [SKIP][472] ([i915#2575]) -> [SKIP][473] ([i915#8555])
[472]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-11/igt@gem_ctx_persistence@heartbeat-stop.html
[473]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-5/igt@gem_ctx_persistence@heartbeat-stop.html
* igt@gem_ctx_sseu@invalid-sseu:
- shard-dg2: [SKIP][474] ([i915#280]) -> [SKIP][475] ([i915#2575])
[474]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-7/igt@gem_ctx_sseu@invalid-sseu.html
[475]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-11/igt@gem_ctx_sseu@invalid-sseu.html
* igt@gem_exec_balancer@bonded-false-hang:
- shard-dg2: [SKIP][476] ([i915#4812]) -> [SKIP][477] ([i915#2575])
[476]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-1/igt@gem_exec_balancer@bonded-false-hang.html
[477]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-11/igt@gem_exec_balancer@bonded-false-hang.html
* igt@gem_exec_balancer@invalid-bonds:
- shard-dg2: [SKIP][478] ([i915#2575]) -> [SKIP][479] ([i915#4036])
[478]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-11/igt@gem_exec_balancer@invalid-bonds.html
[479]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-3/igt@gem_exec_balancer@invalid-bonds.html
* igt@gem_exec_capture@capture:
- shard-dg2: [FAIL][480] ([i915#11965] / [i915#12558]) -> [SKIP][481] ([i915#2575])
[480]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-7/igt@gem_exec_capture@capture.html
[481]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-11/igt@gem_exec_capture@capture.html
* igt@gem_exec_fair@basic-pace-solo:
- shard-glk: ([FAIL][482], [PASS][483], [FAIL][484], [FAIL][485]) ([i915#2842]) -> [FAIL][486] ([i915#2842]) +1 other test fail
[482]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk6/igt@gem_exec_fair@basic-pace-solo.html
[483]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk7/igt@gem_exec_fair@basic-pace-solo.html
[484]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk4/igt@gem_exec_fair@basic-pace-solo.html
[485]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-glk8/igt@gem_exec_fair@basic-pace-solo.html
[486]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-glk6/igt@gem_exec_fair@basic-pace-solo.html
- shard-dg2: [SKIP][487] ([i915#2575]) -> [SKIP][488] ([i915#3539])
[487]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-11/igt@gem_exec_fair@basic-pace-solo.html
[488]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-3/igt@gem_exec_fair@basic-pace-solo.html
* igt@gem_exec_fair@basic-throttle:
- shard-dg2: [SKIP][489] ([i915#3539]) -> [SKIP][490] ([i915#2575])
[489]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-1/igt@gem_exec_fair@basic-throttle.html
[490]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-11/igt@gem_exec_fair@basic-throttle.html
* igt@gem_exec_fence@concurrent:
- shard-dg2: [SKIP][491] ([i915#2575]) -> [SKIP][492] ([i915#4812])
[491]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-11/igt@gem_exec_fence@concurrent.html
[492]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-3/igt@gem_exec_fence@concurrent.html
* igt@gem_exec_flush@basic-uc-ro-default:
- shard-dg2: [SKIP][493] ([i915#2575]) -> [SKIP][494] ([i915#3539] / [i915#4852])
[493]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-11/igt@gem_exec_flush@basic-uc-ro-default.html
[494]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-5/igt@gem_exec_flush@basic-uc-ro-default.html
* igt@gem_exec_flush@basic-wb-ro-default:
- shard-dg2: [SKIP][495] ([i915#3539] / [i915#4852]) -> [SKIP][496] ([i915#2575])
[495]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-10/igt@gem_exec_flush@basic-wb-ro-default.html
[496]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-11/igt@gem_exec_flush@basic-wb-ro-default.html
* igt@gem_exec_params@secure-non-master:
- shard-dg2: [SKIP][497] -> [SKIP][498] ([i915#2575]) +5 other tests skip
[497]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-10/igt@gem_exec_params@secure-non-master.html
[498]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-11/igt@gem_exec_params@secure-non-master.html
* igt@gem_exec_reloc@basic-gtt-wc-active:
- shard-dg2: [SKIP][499] ([i915#3281]) -> [SKIP][500] ([i915#2575]) +11 other tests skip
[499]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-7/igt@gem_exec_reloc@basic-gtt-wc-active.html
[500]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-11/igt@gem_exec_reloc@basic-gtt-wc-active.html
* igt@gem_exec_reloc@basic-write-read-active:
- shard-dg2: [SKIP][501] ([i915#2575]) -> [SKIP][502] ([i915#3281]) +7 other tests skip
[501]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-11/igt@gem_exec_reloc@basic-write-read-active.html
[502]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-6/igt@gem_exec_reloc@basic-write-read-active.html
* igt@gem_exec_schedule@preempt-queue:
- shard-dg2: [SKIP][503] ([i915#4537] / [i915#4812]) -> [SKIP][504] ([i915#2575])
[503]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-10/igt@gem_exec_schedule@preempt-queue.html
[504]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-11/igt@gem_exec_schedule@preempt-queue.html
* igt@gem_fenced_exec_thrash@no-spare-fences-busy-interruptible:
- shard-dg2: [SKIP][505] ([i915#2575]) -> [SKIP][506] ([i915#4860]) +3 other tests skip
[505]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-11/igt@gem_fenced_exec_thrash@no-spare-fences-busy-interruptible.html
[506]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-5/igt@gem_fenced_exec_thrash@no-spare-fences-busy-interruptible.html
* igt@gem_media_vme:
- shard-dg2: [SKIP][507] ([i915#2575]) -> [SKIP][508] ([i915#284])
[507]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-11/igt@gem_media_vme.html
[508]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-3/igt@gem_media_vme.html
* igt@gem_mmap_gtt@cpuset-big-copy:
- shard-dg2: [SKIP][509] ([i915#2575]) -> [SKIP][510] ([i915#4077]) +5 other tests skip
[509]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-11/igt@gem_mmap_gtt@cpuset-big-copy.html
[510]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-6/igt@gem_mmap_gtt@cpuset-big-copy.html
* igt@gem_mmap_gtt@zero-extend:
- shard-dg2: [SKIP][511] ([i915#4077]) -> [SKIP][512] ([i915#2575]) +12 other tests skip
[511]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-10/igt@gem_mmap_gtt@zero-extend.html
[512]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-11/igt@gem_mmap_gtt@zero-extend.html
* igt@gem_mmap_wc@bad-object:
- shard-dg2: [SKIP][513] ([i915#4083]) -> [SKIP][514] ([i915#2575]) +3 other tests skip
[513]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-7/igt@gem_mmap_wc@bad-object.html
[514]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-11/igt@gem_mmap_wc@bad-object.html
* igt@gem_mmap_wc@write-wc-read-gtt:
- shard-dg2: [SKIP][515] ([i915#2575]) -> [SKIP][516] ([i915#4083]) +2 other tests skip
[515]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-11/igt@gem_mmap_wc@write-wc-read-gtt.html
[516]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-6/igt@gem_mmap_wc@write-wc-read-gtt.html
* igt@gem_partial_pwrite_pread@reads-uncached:
- shard-dg2: [SKIP][517] ([i915#3282]) -> [SKIP][518] ([i915#2575]) +2 other tests skip
[517]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-7/igt@gem_partial_pwrite_pread@reads-uncached.html
[518]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-11/igt@gem_partial_pwrite_pread@reads-uncached.html
* igt@gem_pxp@create-regular-context-2:
- shard-dg2: [SKIP][519] ([i915#2575]) -> [SKIP][520] ([i915#4270]) +1 other test skip
[519]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-11/igt@gem_pxp@create-regular-context-2.html
[520]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-5/igt@gem_pxp@create-regular-context-2.html
* igt@gem_pxp@display-protected-crc:
- shard-dg2: [SKIP][521] ([i915#4270]) -> [SKIP][522] ([i915#2575]) +2 other tests skip
[521]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-1/igt@gem_pxp@display-protected-crc.html
[522]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-11/igt@gem_pxp@display-protected-crc.html
* igt@gem_readwrite@beyond-eob:
- shard-dg2: [SKIP][523] ([i915#2575]) -> [SKIP][524] ([i915#3282]) +2 other tests skip
[523]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-11/igt@gem_readwrite@beyond-eob.html
[524]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-5/igt@gem_readwrite@beyond-eob.html
* igt@gem_render_copy@y-tiled-to-vebox-linear:
- shard-dg2: [SKIP][525] ([i915#2575] / [i915#5190]) -> [SKIP][526] ([i915#5190] / [i915#8428]) +4 other tests skip
[525]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-11/igt@gem_render_copy@y-tiled-to-vebox-linear.html
[526]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-3/igt@gem_render_copy@y-tiled-to-vebox-linear.html
* igt@gem_render_copy@y-tiled-to-vebox-y-tiled:
- shard-dg2: [SKIP][527] ([i915#5190] / [i915#8428]) -> [SKIP][528] ([i915#2575] / [i915#5190]) +5 other tests skip
[527]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-7/igt@gem_render_copy@y-tiled-to-vebox-y-tiled.html
[528]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-11/igt@gem_render_copy@y-tiled-to-vebox-y-tiled.html
* igt@gem_softpin@evict-snoop:
- shard-dg2: [SKIP][529] ([i915#2575]) -> [SKIP][530] ([i915#4885])
[529]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-11/igt@gem_softpin@evict-snoop.html
[530]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-5/igt@gem_softpin@evict-snoop.html
* igt@gem_unfence_active_buffers:
- shard-dg2: [SKIP][531] ([i915#4879]) -> [SKIP][532] ([i915#2575])
[531]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-7/igt@gem_unfence_active_buffers.html
[532]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-11/igt@gem_unfence_active_buffers.html
* igt@gem_userptr_blits@coherency-sync:
- shard-dg2: [SKIP][533] ([i915#3297]) -> [SKIP][534] ([i915#2575])
[533]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-10/igt@gem_userptr_blits@coherency-sync.html
[534]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/shard-dg2-11/igt@gem_userptr_blits@coherency-sync.html
* igt@gem_userptr_blits@map-fixed-invalidate:
- shard-dg2: [SKIP][535] ([i915#3297] / [i915#4880]) -> [SKIP][536] ([i915#2575])
[535]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15707/shard-dg2-7/igt@gem_userptr_blits@map-fixed-invalid
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141419v1/index.html
[-- Attachment #2: Type: text/html, Size: 109162 bytes --]
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 1/4] drm/i915/dp_mst: Fix connector initialization in intel_dp_add_mst_connector()
2024-11-15 20:30 ` Imre Deak
@ 2024-11-15 22:30 ` Rodrigo Vivi
2024-11-18 9:10 ` Jani Nikula
1 sibling, 0 replies; 22+ messages in thread
From: Rodrigo Vivi @ 2024-11-15 22:30 UTC (permalink / raw)
To: Imre Deak; +Cc: intel-gfx, dri-devel, Jani Nikula
On Fri, Nov 15, 2024 at 10:30:12PM +0200, Imre Deak wrote:
> On Fri, Nov 15, 2024 at 03:20:58PM -0500, Rodrigo Vivi wrote:
> > On Fri, Nov 15, 2024 at 06:41:56PM +0200, Imre Deak wrote:
> > > The connector initialization in intel_dp_add_mst_connector() depends on
> > > the device pointer in connector to be valid, at least by connector
> > > debug printing. The device pointer is initialized by drm_connector_init(),
> > > however that function also exposes the connector to in-kernel users,
> > > which can't be done before the connector is fully initialized. For now
> > > make sure the device pointer is valid before it's used, until a
> > > follow-up change moving this to DRM core.
> > >
> > > This issue was revealed by the commit in the Fixes: line below, before
> > > which the above debug printing checked and handled a NULL device pointer
> > > gracefully in DRM core.
> > >
> > > Cc: Jani Nikula <jani.nikula@intel.com>
> > > Fixes: 529798bd786a ("drm/i915/mst: convert to struct intel_display")
> >
> > This is awkward. This patch actually removes callers of base.dev.
> > I don't see how that it could be causing this new null dereference.
>
> It adds
>
> struct intel_display *display = to_intel_display(connector);
>
> which will be NULL since connector->base.dev is NULL and later display
> is dereferenced.
oh I see! Thanks
>
> > > Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12799
> >
> > But well, trusting more the tests then my eyes, let's move forward.
> >
> > Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> >
> > > Signed-off-by: Imre Deak <imre.deak@intel.com>
> > > ---
> > > drivers/gpu/drm/i915/display/intel_dp_mst.c | 10 ++++++++++
> > > 1 file changed, 10 insertions(+)
> > >
> > > diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > > index df7edcfe885b6..f058360a26413 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > > +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > > @@ -1727,6 +1727,16 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo
> > >
> > > intel_dp_init_modeset_retry_work(intel_connector);
> > >
> > > + /*
> > > + * TODO: The following drm_connector specific initialization belongs
> > > + * to DRM core, however it happens atm too late in
> > > + * drm_connector_init(). That function will also expose the connector
> > > + * to in-kernel users, so it can't be called until the connector is
> > > + * sufficiently initialized; init the device pointer used by the
> > > + * following DSC setup, until a fix moving this to DRM core.
> > > + */
> > > + intel_connector->base.dev = mgr->dev;
> > > +
> > > intel_connector->dp.dsc_decompression_aux = drm_dp_mst_dsc_aux_for_port(port);
> > > intel_dp_mst_read_decompression_port_dsc_caps(intel_dp, intel_connector);
> > > intel_connector->dp.dsc_hblank_expansion_quirk =
> > > --
> > > 2.44.2
> > >
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 1/4] drm/i915/dp_mst: Fix connector initialization in intel_dp_add_mst_connector()
2024-11-15 20:30 ` Imre Deak
2024-11-15 22:30 ` Rodrigo Vivi
@ 2024-11-18 9:10 ` Jani Nikula
2024-11-18 10:48 ` Imre Deak
1 sibling, 1 reply; 22+ messages in thread
From: Jani Nikula @ 2024-11-18 9:10 UTC (permalink / raw)
To: imre.deak, Rodrigo Vivi; +Cc: intel-gfx, dri-devel
On Fri, 15 Nov 2024, Imre Deak <imre.deak@intel.com> wrote:
> On Fri, Nov 15, 2024 at 03:20:58PM -0500, Rodrigo Vivi wrote:
>> On Fri, Nov 15, 2024 at 06:41:56PM +0200, Imre Deak wrote:
>> > The connector initialization in intel_dp_add_mst_connector() depends on
>> > the device pointer in connector to be valid, at least by connector
>> > debug printing. The device pointer is initialized by drm_connector_init(),
>> > however that function also exposes the connector to in-kernel users,
>> > which can't be done before the connector is fully initialized. For now
>> > make sure the device pointer is valid before it's used, until a
>> > follow-up change moving this to DRM core.
>> >
>> > This issue was revealed by the commit in the Fixes: line below, before
>> > which the above debug printing checked and handled a NULL device pointer
>> > gracefully in DRM core.
>> >
>> > Cc: Jani Nikula <jani.nikula@intel.com>
>> > Fixes: 529798bd786a ("drm/i915/mst: convert to struct intel_display")
>>
>> This is awkward. This patch actually removes callers of base.dev.
>> I don't see how that it could be causing this new null dereference.
>
> It adds
>
> struct intel_display *display = to_intel_display(connector);
>
> which will be NULL since connector->base.dev is NULL and later display
> is dereferenced.
So this happens in detect_dsc_hblank_expansion_quirk()?
The changes were:
- struct drm_i915_private *i915 = to_i915(connector->base.dev);
+ struct intel_display *display = to_intel_display(connector);
- drm_dbg_kms(&i915->drm,
+ drm_dbg_kms(display->drm,
And apparently i915 and &i915->drm were both NULL before, but the change
turned it into a NULL pointer dereference.
Why do we have to do this before drm_connector_init()? What if we just
moved it after the connector init? What are the in-kernel users that can
get called in between?
Or if it's absolutely required to do all that before init, then pass the
things to it instead of assuming the connector is ready?
BR,
Jani.
>
>> > Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12799
>>
>> But well, trusting more the tests then my eyes, let's move forward.
>>
>> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
>>
>> > Signed-off-by: Imre Deak <imre.deak@intel.com>
>> > ---
>> > drivers/gpu/drm/i915/display/intel_dp_mst.c | 10 ++++++++++
>> > 1 file changed, 10 insertions(+)
>> >
>> > diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
>> > index df7edcfe885b6..f058360a26413 100644
>> > --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
>> > +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
>> > @@ -1727,6 +1727,16 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo
>> >
>> > intel_dp_init_modeset_retry_work(intel_connector);
>> >
>> > + /*
>> > + * TODO: The following drm_connector specific initialization belongs
>> > + * to DRM core, however it happens atm too late in
>> > + * drm_connector_init(). That function will also expose the connector
>> > + * to in-kernel users, so it can't be called until the connector is
>> > + * sufficiently initialized; init the device pointer used by the
>> > + * following DSC setup, until a fix moving this to DRM core.
>> > + */
>> > + intel_connector->base.dev = mgr->dev;
>> > +
>> > intel_connector->dp.dsc_decompression_aux = drm_dp_mst_dsc_aux_for_port(port);
>> > intel_dp_mst_read_decompression_port_dsc_caps(intel_dp, intel_connector);
>> > intel_connector->dp.dsc_hblank_expansion_quirk =
>> > --
>> > 2.44.2
>> >
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 1/4] drm/i915/dp_mst: Fix connector initialization in intel_dp_add_mst_connector()
2024-11-18 9:10 ` Jani Nikula
@ 2024-11-18 10:48 ` Imre Deak
0 siblings, 0 replies; 22+ messages in thread
From: Imre Deak @ 2024-11-18 10:48 UTC (permalink / raw)
To: Jani Nikula; +Cc: Rodrigo Vivi, intel-gfx, dri-devel
On Mon, Nov 18, 2024 at 11:10:18AM +0200, Jani Nikula wrote:
> On Fri, 15 Nov 2024, Imre Deak <imre.deak@intel.com> wrote:
> > On Fri, Nov 15, 2024 at 03:20:58PM -0500, Rodrigo Vivi wrote:
> >> On Fri, Nov 15, 2024 at 06:41:56PM +0200, Imre Deak wrote:
> >> > The connector initialization in intel_dp_add_mst_connector() depends on
> >> > the device pointer in connector to be valid, at least by connector
> >> > debug printing. The device pointer is initialized by drm_connector_init(),
> >> > however that function also exposes the connector to in-kernel users,
> >> > which can't be done before the connector is fully initialized. For now
> >> > make sure the device pointer is valid before it's used, until a
> >> > follow-up change moving this to DRM core.
> >> >
> >> > This issue was revealed by the commit in the Fixes: line below, before
> >> > which the above debug printing checked and handled a NULL device pointer
> >> > gracefully in DRM core.
> >> >
> >> > Cc: Jani Nikula <jani.nikula@intel.com>
> >> > Fixes: 529798bd786a ("drm/i915/mst: convert to struct intel_display")
> >>
> >> This is awkward. This patch actually removes callers of base.dev.
> >> I don't see how that it could be causing this new null dereference.
> >
> > It adds
> >
> > struct intel_display *display = to_intel_display(connector);
> >
> > which will be NULL since connector->base.dev is NULL and later display
> > is dereferenced.
>
> So this happens in detect_dsc_hblank_expansion_quirk()?
>
> The changes were:
>
> - struct drm_i915_private *i915 = to_i915(connector->base.dev);
> + struct intel_display *display = to_intel_display(connector);
>
> - drm_dbg_kms(&i915->drm,
> + drm_dbg_kms(display->drm,
>
> And apparently i915 and &i915->drm were both NULL before, but the change
> turned it into a NULL pointer dereference.
>
> Why do we have to do this before drm_connector_init()?
drm_connector_init() adds the connector to the connector list, which
makes it visible to everything else that looks up the connector through
this list. Those users should see the driver specific parts of connector
already inited.
> What if we just moved it after the connector init? What are the
> in-kernel users that can get called in between?
Detection on this connector could happen in between for instance.
> Or if it's absolutely required to do all that before init, then pass the
> things to it instead of assuming the connector is ready?
Besides DSC all the other initializing steps in
intel_dp_add_mst_connector() should happen before adding it to the
connector list and those need a pointer to drm_connector.
> BR,
> Jani.
>
>
> >
> >> > Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12799
> >>
> >> But well, trusting more the tests then my eyes, let's move forward.
> >>
> >> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> >>
> >> > Signed-off-by: Imre Deak <imre.deak@intel.com>
> >> > ---
> >> > drivers/gpu/drm/i915/display/intel_dp_mst.c | 10 ++++++++++
> >> > 1 file changed, 10 insertions(+)
> >> >
> >> > diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> >> > index df7edcfe885b6..f058360a26413 100644
> >> > --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> >> > +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> >> > @@ -1727,6 +1727,16 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo
> >> >
> >> > intel_dp_init_modeset_retry_work(intel_connector);
> >> >
> >> > + /*
> >> > + * TODO: The following drm_connector specific initialization belongs
> >> > + * to DRM core, however it happens atm too late in
> >> > + * drm_connector_init(). That function will also expose the connector
> >> > + * to in-kernel users, so it can't be called until the connector is
> >> > + * sufficiently initialized; init the device pointer used by the
> >> > + * following DSC setup, until a fix moving this to DRM core.
> >> > + */
> >> > + intel_connector->base.dev = mgr->dev;
> >> > +
> >> > intel_connector->dp.dsc_decompression_aux = drm_dp_mst_dsc_aux_for_port(port);
> >> > intel_dp_mst_read_decompression_port_dsc_caps(intel_dp, intel_connector);
> >> > intel_connector->dp.dsc_hblank_expansion_quirk =
> >> > --
> >> > 2.44.2
> >> >
>
> --
> Jani Nikula, Intel
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 1/4] drm/i915/dp_mst: Fix connector initialization in intel_dp_add_mst_connector()
2024-11-15 16:41 [PATCH 1/4] drm/i915/dp_mst: Fix connector initialization in intel_dp_add_mst_connector() Imre Deak
` (6 preceding siblings ...)
2024-11-15 21:56 ` ✗ Fi.CI.IGT: failure for series starting with [1/4] " Patchwork
@ 2024-11-18 11:45 ` Jani Nikula
7 siblings, 0 replies; 22+ messages in thread
From: Jani Nikula @ 2024-11-18 11:45 UTC (permalink / raw)
To: Imre Deak, intel-gfx, dri-devel
On Fri, 15 Nov 2024, Imre Deak <imre.deak@intel.com> wrote:
> The connector initialization in intel_dp_add_mst_connector() depends on
> the device pointer in connector to be valid, at least by connector
> debug printing. The device pointer is initialized by drm_connector_init(),
> however that function also exposes the connector to in-kernel users,
> which can't be done before the connector is fully initialized. For now
> make sure the device pointer is valid before it's used, until a
> follow-up change moving this to DRM core.
>
> This issue was revealed by the commit in the Fixes: line below, before
> which the above debug printing checked and handled a NULL device pointer
> gracefully in DRM core.
>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Fixes: 529798bd786a ("drm/i915/mst: convert to struct intel_display")
> Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12799
> Signed-off-by: Imre Deak <imre.deak@intel.com>
I think you should send this patch alone to intel-gfx and intel-xe to
address the regression.
The others can follow later, and likely be merged via drm-misc. I have
some comments about them, but I don't want to block fixing the issue.
BR,
Jani.
> ---
> drivers/gpu/drm/i915/display/intel_dp_mst.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> index df7edcfe885b6..f058360a26413 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> @@ -1727,6 +1727,16 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo
>
> intel_dp_init_modeset_retry_work(intel_connector);
>
> + /*
> + * TODO: The following drm_connector specific initialization belongs
> + * to DRM core, however it happens atm too late in
> + * drm_connector_init(). That function will also expose the connector
> + * to in-kernel users, so it can't be called until the connector is
> + * sufficiently initialized; init the device pointer used by the
> + * following DSC setup, until a fix moving this to DRM core.
> + */
> + intel_connector->base.dev = mgr->dev;
> +
> intel_connector->dp.dsc_decompression_aux = drm_dp_mst_dsc_aux_for_port(port);
> intel_dp_mst_read_decompression_port_dsc_caps(intel_dp, intel_connector);
> intel_connector->dp.dsc_hblank_expansion_quirk =
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 2/4] drm/dp: Add a way to init/add a connector in separate steps
2024-11-15 16:41 ` [PATCH 2/4] drm/dp: Add a way to init/add a connector in separate steps Imre Deak
2024-11-15 20:18 ` Rodrigo Vivi
@ 2024-11-18 12:09 ` Jani Nikula
2024-11-18 17:54 ` Imre Deak
1 sibling, 1 reply; 22+ messages in thread
From: Jani Nikula @ 2024-11-18 12:09 UTC (permalink / raw)
To: Imre Deak, intel-gfx, dri-devel
On Fri, 15 Nov 2024, Imre Deak <imre.deak@intel.com> wrote:
> Atm when the connector is added to the drm_mode_config::connector_list,
> the connector may not be fully initialized yet. This is not a problem
> for user space, which will see the connector only after it's registered
> later, it could be a problem for in-kernel users looking up connectors
> via the above list.
>
> To resolve the above issue, add a way to separately initialize the DRM
> core specific parts of the connector and add it to the above list. This
> will move adding the connector to the list after the properties on the
> connector have been added, this is ok since these steps don't have a
> dependency.
>
> Signed-off-by: Imre Deak <imre.deak@intel.com>
> ---
> drivers/gpu/drm/drm_connector.c | 103 ++++++++++++++++++++++++++------
> include/drm/drm_connector.h | 5 ++
> 2 files changed, 91 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
> index fc35f47e2849e..6132a7917b20c 100644
> --- a/drivers/gpu/drm/drm_connector.c
> +++ b/drivers/gpu/drm/drm_connector.c
> @@ -218,11 +218,11 @@ void drm_connector_free_work_fn(struct work_struct *work)
> }
> }
>
> -static int __drm_connector_init(struct drm_device *dev,
> - struct drm_connector *connector,
> - const struct drm_connector_funcs *funcs,
> - int connector_type,
> - struct i2c_adapter *ddc)
> +static int __drm_connector_init_core(struct drm_device *dev,
> + struct drm_connector *connector,
> + const struct drm_connector_funcs *funcs,
> + int connector_type,
> + struct i2c_adapter *ddc)
> {
> struct drm_mode_config *config = &dev->mode_config;
> int ret;
> @@ -273,6 +273,7 @@ static int __drm_connector_init(struct drm_device *dev,
> /* provide ddc symlink in sysfs */
> connector->ddc = ddc;
>
> + INIT_LIST_HEAD(&connector->head);
> INIT_LIST_HEAD(&connector->global_connector_list_entry);
> INIT_LIST_HEAD(&connector->probed_modes);
> INIT_LIST_HEAD(&connector->modes);
> @@ -288,14 +289,6 @@ static int __drm_connector_init(struct drm_device *dev,
>
> drm_connector_get_cmdline_mode(connector);
>
> - /* We should add connectors at the end to avoid upsetting the connector
> - * index too much.
> - */
> - spin_lock_irq(&config->connector_list_lock);
> - list_add_tail(&connector->head, &config->connector_list);
> - config->num_connector++;
> - spin_unlock_irq(&config->connector_list_lock);
> -
> if (connector_type != DRM_MODE_CONNECTOR_VIRTUAL &&
> connector_type != DRM_MODE_CONNECTOR_WRITEBACK)
> drm_connector_attach_edid_property(connector);
> @@ -332,6 +325,84 @@ static int __drm_connector_init(struct drm_device *dev,
> return ret;
> }
>
> +/**
> + * drm_connector_init_core - Initialize the core state of a preallocated connector
> + * @dev: DRM device
> + * @connector: the connector to init
> + * @funcs: callbacks for this connector
> + * @connector_type: user visible type of the connector
> + *
> + * Initialises the core state of preallocated connector. This is
> + * equivalent to drm_connector_init(), without adding the connector to
> + * drm_mode_config::connector_list. This call must be followed by calling
> + * drm_connector_add() during initialization to expose the connector to
> + * in-kernel users via the above list.
> + *
> + * Returns:
> + * Zero on success, error code on failure.
> + */
> +int drm_connector_init_core(struct drm_device *dev,
> + struct drm_connector *connector,
> + const struct drm_connector_funcs *funcs,
> + int connector_type)
Please include the ddc parameter here, and have callers pass NULL. We
absolutely don't want to see drm_connector_init_core_with_ddc().
> +{
> + if (drm_WARN_ON(dev, !(funcs && funcs->destroy)))
> + return -EINVAL;
> +
> + return __drm_connector_init_core(dev, connector, funcs, connector_type, NULL);
> +}
> +EXPORT_SYMBOL(drm_connector_init_core);
> +
> +/**
> + * drm_connector_add - Add the connector
> + * @connector: the connector to add
> + *
> + * Add the connector to the drm_mode_config::connector_list, exposing the
> + * connector to in-kernel users. This call must be preceded by a call to
> + * drm_connector_init_core().
> + */
> +void drm_connector_add(struct drm_connector *connector)
> +{
> + struct drm_device *dev = connector->dev;
> + struct drm_mode_config *config = &dev->mode_config;
> +
> + spin_lock_irq(&config->connector_list_lock);
> + list_add_tail(&connector->head, &config->connector_list);
> + config->num_connector++;
> + spin_unlock_irq(&config->connector_list_lock);
> +}
> +EXPORT_SYMBOL(drm_connector_add);
> +
> +static void drm_connector_remove(struct drm_connector *connector)
> +{
> + struct drm_device *dev = connector->dev;
> +
> + if (list_empty(&connector->head))
> + return;
> +
> + spin_lock_irq(&dev->mode_config.connector_list_lock);
> + list_del_init(&connector->head);
> + dev->mode_config.num_connector--;
> + spin_unlock_irq(&dev->mode_config.connector_list_lock);
> +}
> +
> +static int __drm_connector_init(struct drm_device *dev,
> + struct drm_connector *connector,
> + const struct drm_connector_funcs *funcs,
> + int connector_type,
> + struct i2c_adapter *ddc)
I'd nuke this wrapper altogether, and put the stuff inline.
Which kind of highlights that drmm_connector_init() still has the same
problem, everyone's encouraged to move towards that, but then what?
> +{
> + int ret;
> +
> + ret = __drm_connector_init_core(dev, connector, funcs, connector_type, ddc);
> + if (ret)
> + return ret;
> +
> + drm_connector_add(connector);
> +
> + return 0;
> +}
> +
> /**
> * drm_connector_init - Init a preallocated connector
> * @dev: DRM device
> @@ -659,10 +730,8 @@ void drm_connector_cleanup(struct drm_connector *connector)
> connector->name = NULL;
> fwnode_handle_put(connector->fwnode);
> connector->fwnode = NULL;
> - spin_lock_irq(&dev->mode_config.connector_list_lock);
> - list_del(&connector->head);
> - dev->mode_config.num_connector--;
> - spin_unlock_irq(&dev->mode_config.connector_list_lock);
> +
> + drm_connector_remove(connector);
>
> WARN_ON(connector->state && !connector->funcs->atomic_destroy_state);
> if (connector->state && connector->funcs->atomic_destroy_state)
> diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
> index e3fa43291f449..8e8d130b40f98 100644
> --- a/include/drm/drm_connector.h
> +++ b/include/drm/drm_connector.h
> @@ -2122,6 +2122,11 @@ struct drm_connector {
>
> #define obj_to_connector(x) container_of(x, struct drm_connector, base)
>
> +int drm_connector_init_core(struct drm_device *dev,
> + struct drm_connector *connector,
> + const struct drm_connector_funcs *funcs,
> + int connector_type);
> +void drm_connector_add(struct drm_connector *connector);
> int drm_connector_init(struct drm_device *dev,
> struct drm_connector *connector,
> const struct drm_connector_funcs *funcs,
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 3/4] drm/i915/dp_mst: Expose a connector to kernel users after it's properly initialized
2024-11-15 16:41 ` [PATCH 3/4] drm/i915/dp_mst: Expose a connector to kernel users after it's properly initialized Imre Deak
2024-11-15 20:18 ` Rodrigo Vivi
@ 2024-11-18 12:12 ` Jani Nikula
2024-11-18 12:14 ` Imre Deak
1 sibling, 1 reply; 22+ messages in thread
From: Jani Nikula @ 2024-11-18 12:12 UTC (permalink / raw)
To: Imre Deak, intel-gfx, dri-devel
On Fri, 15 Nov 2024, Imre Deak <imre.deak@intel.com> wrote:
> After a connector is added to the drm_mode_config::connector_list, it's
> visible to any in-kernel users looking up connectors via the above list.
> Make sure that the connector is properly initialized before such
> look-ups.
>
> Signed-off-by: Imre Deak <imre.deak@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_dp_mst.c | 29 ++++++++-------------
> 1 file changed, 11 insertions(+), 18 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> index f058360a26413..d91a1d1fb26f4 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> @@ -1719,6 +1719,8 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo
> if (!intel_connector)
> return NULL;
>
> + connector = &intel_connector->base;
I'd rather see a patch s/intel_connector/connector/ and using
&connector->base for drm_connector.
> +
> intel_connector->get_hw_state = intel_dp_mst_get_hw_state;
> intel_connector->sync_state = intel_dp_connector_sync_state;
> intel_connector->mst_port = intel_dp;
> @@ -1727,30 +1729,19 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo
>
> intel_dp_init_modeset_retry_work(intel_connector);
>
> - /*
> - * TODO: The following drm_connector specific initialization belongs
> - * to DRM core, however it happens atm too late in
> - * drm_connector_init(). That function will also expose the connector
> - * to in-kernel users, so it can't be called until the connector is
> - * sufficiently initialized; init the device pointer used by the
> - * following DSC setup, until a fix moving this to DRM core.
> - */
> - intel_connector->base.dev = mgr->dev;
> -
> - intel_connector->dp.dsc_decompression_aux = drm_dp_mst_dsc_aux_for_port(port);
> - intel_dp_mst_read_decompression_port_dsc_caps(intel_dp, intel_connector);
> - intel_connector->dp.dsc_hblank_expansion_quirk =
> - detect_dsc_hblank_expansion_quirk(intel_connector);
> -
> - connector = &intel_connector->base;
> - ret = drm_connector_init(display->drm, connector, &intel_dp_mst_connector_funcs,
> - DRM_MODE_CONNECTOR_DisplayPort);
> + ret = drm_connector_init_core(display->drm, connector, &intel_dp_mst_connector_funcs,
> + DRM_MODE_CONNECTOR_DisplayPort);
> if (ret) {
> drm_dp_mst_put_port_malloc(port);
> intel_connector_free(intel_connector);
> return NULL;
> }
>
> + intel_connector->dp.dsc_decompression_aux = drm_dp_mst_dsc_aux_for_port(port);
> + intel_dp_mst_read_decompression_port_dsc_caps(intel_dp, intel_connector);
> + intel_connector->dp.dsc_hblank_expansion_quirk =
> + detect_dsc_hblank_expansion_quirk(intel_connector);
> +
> drm_connector_helper_add(connector, &intel_dp_mst_connector_helper_funcs);
>
> for_each_pipe(display, pipe) {
> @@ -1771,6 +1762,8 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo
> drm_dbg_kms(display->drm, "[%s:%d] HDCP MST init failed, skipping.\n",
> connector->name, connector->base.id);
>
> + drm_connector_add(connector);
> +
> return connector;
>
> err:
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 3/4] drm/i915/dp_mst: Expose a connector to kernel users after it's properly initialized
2024-11-18 12:12 ` Jani Nikula
@ 2024-11-18 12:14 ` Imre Deak
2024-11-18 12:23 ` Jani Nikula
0 siblings, 1 reply; 22+ messages in thread
From: Imre Deak @ 2024-11-18 12:14 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-gfx, dri-devel
On Mon, Nov 18, 2024 at 02:12:14PM +0200, Jani Nikula wrote:
> On Fri, 15 Nov 2024, Imre Deak <imre.deak@intel.com> wrote:
> > After a connector is added to the drm_mode_config::connector_list, it's
> > visible to any in-kernel users looking up connectors via the above list.
> > Make sure that the connector is properly initialized before such
> > look-ups.
> >
> > Signed-off-by: Imre Deak <imre.deak@intel.com>
> > ---
> > drivers/gpu/drm/i915/display/intel_dp_mst.c | 29 ++++++++-------------
> > 1 file changed, 11 insertions(+), 18 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > index f058360a26413..d91a1d1fb26f4 100644
> > --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > @@ -1719,6 +1719,8 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo
> > if (!intel_connector)
> > return NULL;
> >
> > + connector = &intel_connector->base;
>
> I'd rather see a patch s/intel_connector/connector/ and using
> &connector->base for drm_connector.
Yes, thought the same and did it. However I think that should be done
converting all the other intel_connector usage in the file. Is that ok
with you?
>
> > +
> > intel_connector->get_hw_state = intel_dp_mst_get_hw_state;
> > intel_connector->sync_state = intel_dp_connector_sync_state;
> > intel_connector->mst_port = intel_dp;
> > @@ -1727,30 +1729,19 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo
> >
> > intel_dp_init_modeset_retry_work(intel_connector);
> >
> > - /*
> > - * TODO: The following drm_connector specific initialization belongs
> > - * to DRM core, however it happens atm too late in
> > - * drm_connector_init(). That function will also expose the connector
> > - * to in-kernel users, so it can't be called until the connector is
> > - * sufficiently initialized; init the device pointer used by the
> > - * following DSC setup, until a fix moving this to DRM core.
> > - */
> > - intel_connector->base.dev = mgr->dev;
> > -
> > - intel_connector->dp.dsc_decompression_aux = drm_dp_mst_dsc_aux_for_port(port);
> > - intel_dp_mst_read_decompression_port_dsc_caps(intel_dp, intel_connector);
> > - intel_connector->dp.dsc_hblank_expansion_quirk =
> > - detect_dsc_hblank_expansion_quirk(intel_connector);
> > -
> > - connector = &intel_connector->base;
> > - ret = drm_connector_init(display->drm, connector, &intel_dp_mst_connector_funcs,
> > - DRM_MODE_CONNECTOR_DisplayPort);
> > + ret = drm_connector_init_core(display->drm, connector, &intel_dp_mst_connector_funcs,
> > + DRM_MODE_CONNECTOR_DisplayPort);
> > if (ret) {
> > drm_dp_mst_put_port_malloc(port);
> > intel_connector_free(intel_connector);
> > return NULL;
> > }
> >
> > + intel_connector->dp.dsc_decompression_aux = drm_dp_mst_dsc_aux_for_port(port);
> > + intel_dp_mst_read_decompression_port_dsc_caps(intel_dp, intel_connector);
> > + intel_connector->dp.dsc_hblank_expansion_quirk =
> > + detect_dsc_hblank_expansion_quirk(intel_connector);
> > +
> > drm_connector_helper_add(connector, &intel_dp_mst_connector_helper_funcs);
> >
> > for_each_pipe(display, pipe) {
> > @@ -1771,6 +1762,8 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo
> > drm_dbg_kms(display->drm, "[%s:%d] HDCP MST init failed, skipping.\n",
> > connector->name, connector->base.id);
> >
> > + drm_connector_add(connector);
> > +
> > return connector;
> >
> > err:
>
> --
> Jani Nikula, Intel
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 3/4] drm/i915/dp_mst: Expose a connector to kernel users after it's properly initialized
2024-11-18 12:14 ` Imre Deak
@ 2024-11-18 12:23 ` Jani Nikula
2024-11-18 13:12 ` Imre Deak
0 siblings, 1 reply; 22+ messages in thread
From: Jani Nikula @ 2024-11-18 12:23 UTC (permalink / raw)
To: imre.deak; +Cc: intel-gfx, dri-devel
On Mon, 18 Nov 2024, Imre Deak <imre.deak@intel.com> wrote:
> On Mon, Nov 18, 2024 at 02:12:14PM +0200, Jani Nikula wrote:
>> On Fri, 15 Nov 2024, Imre Deak <imre.deak@intel.com> wrote:
>> > After a connector is added to the drm_mode_config::connector_list, it's
>> > visible to any in-kernel users looking up connectors via the above list.
>> > Make sure that the connector is properly initialized before such
>> > look-ups.
>> >
>> > Signed-off-by: Imre Deak <imre.deak@intel.com>
>> > ---
>> > drivers/gpu/drm/i915/display/intel_dp_mst.c | 29 ++++++++-------------
>> > 1 file changed, 11 insertions(+), 18 deletions(-)
>> >
>> > diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
>> > index f058360a26413..d91a1d1fb26f4 100644
>> > --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
>> > +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
>> > @@ -1719,6 +1719,8 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo
>> > if (!intel_connector)
>> > return NULL;
>> >
>> > + connector = &intel_connector->base;
>>
>> I'd rather see a patch s/intel_connector/connector/ and using
>> &connector->base for drm_connector.
>
> Yes, thought the same and did it. However I think that should be done
> converting all the other intel_connector usage in the file. Is that ok
> with you?
Works for me.
>
>>
>> > +
>> > intel_connector->get_hw_state = intel_dp_mst_get_hw_state;
>> > intel_connector->sync_state = intel_dp_connector_sync_state;
>> > intel_connector->mst_port = intel_dp;
>> > @@ -1727,30 +1729,19 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo
>> >
>> > intel_dp_init_modeset_retry_work(intel_connector);
>> >
>> > - /*
>> > - * TODO: The following drm_connector specific initialization belongs
>> > - * to DRM core, however it happens atm too late in
>> > - * drm_connector_init(). That function will also expose the connector
>> > - * to in-kernel users, so it can't be called until the connector is
>> > - * sufficiently initialized; init the device pointer used by the
>> > - * following DSC setup, until a fix moving this to DRM core.
>> > - */
>> > - intel_connector->base.dev = mgr->dev;
>> > -
>> > - intel_connector->dp.dsc_decompression_aux = drm_dp_mst_dsc_aux_for_port(port);
>> > - intel_dp_mst_read_decompression_port_dsc_caps(intel_dp, intel_connector);
>> > - intel_connector->dp.dsc_hblank_expansion_quirk =
>> > - detect_dsc_hblank_expansion_quirk(intel_connector);
>> > -
>> > - connector = &intel_connector->base;
>> > - ret = drm_connector_init(display->drm, connector, &intel_dp_mst_connector_funcs,
>> > - DRM_MODE_CONNECTOR_DisplayPort);
>> > + ret = drm_connector_init_core(display->drm, connector, &intel_dp_mst_connector_funcs,
>> > + DRM_MODE_CONNECTOR_DisplayPort);
>> > if (ret) {
>> > drm_dp_mst_put_port_malloc(port);
>> > intel_connector_free(intel_connector);
>> > return NULL;
>> > }
>> >
>> > + intel_connector->dp.dsc_decompression_aux = drm_dp_mst_dsc_aux_for_port(port);
>> > + intel_dp_mst_read_decompression_port_dsc_caps(intel_dp, intel_connector);
>> > + intel_connector->dp.dsc_hblank_expansion_quirk =
>> > + detect_dsc_hblank_expansion_quirk(intel_connector);
>> > +
>> > drm_connector_helper_add(connector, &intel_dp_mst_connector_helper_funcs);
>> >
>> > for_each_pipe(display, pipe) {
>> > @@ -1771,6 +1762,8 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo
>> > drm_dbg_kms(display->drm, "[%s:%d] HDCP MST init failed, skipping.\n",
>> > connector->name, connector->base.id);
>> >
>> > + drm_connector_add(connector);
>> > +
>> > return connector;
>> >
>> > err:
>>
>> --
>> Jani Nikula, Intel
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 3/4] drm/i915/dp_mst: Expose a connector to kernel users after it's properly initialized
2024-11-18 12:23 ` Jani Nikula
@ 2024-11-18 13:12 ` Imre Deak
0 siblings, 0 replies; 22+ messages in thread
From: Imre Deak @ 2024-11-18 13:12 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-gfx, dri-devel
On Mon, Nov 18, 2024 at 02:23:48PM +0200, Jani Nikula wrote:
> On Mon, 18 Nov 2024, Imre Deak <imre.deak@intel.com> wrote:
> > On Mon, Nov 18, 2024 at 02:12:14PM +0200, Jani Nikula wrote:
> >> On Fri, 15 Nov 2024, Imre Deak <imre.deak@intel.com> wrote:
> >> > After a connector is added to the drm_mode_config::connector_list, it's
> >> > visible to any in-kernel users looking up connectors via the above list.
> >> > Make sure that the connector is properly initialized before such
> >> > look-ups.
> >> >
> >> > Signed-off-by: Imre Deak <imre.deak@intel.com>
> >> > ---
> >> > drivers/gpu/drm/i915/display/intel_dp_mst.c | 29 ++++++++-------------
> >> > 1 file changed, 11 insertions(+), 18 deletions(-)
> >> >
> >> > diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> >> > index f058360a26413..d91a1d1fb26f4 100644
> >> > --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> >> > +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> >> > @@ -1719,6 +1719,8 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo
> >> > if (!intel_connector)
> >> > return NULL;
> >> >
> >> > + connector = &intel_connector->base;
> >>
> >> I'd rather see a patch s/intel_connector/connector/ and using
> >> &connector->base for drm_connector.
> >
> > Yes, thought the same and did it. However I think that should be done
> > converting all the other intel_connector usage in the file. Is that ok
> > with you?
>
> Works for me.
Ok, will add that in a separate patch then.
> >> > +
> >> > intel_connector->get_hw_state = intel_dp_mst_get_hw_state;
> >> > intel_connector->sync_state = intel_dp_connector_sync_state;
> >> > intel_connector->mst_port = intel_dp;
> >> > @@ -1727,30 +1729,19 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo
> >> >
> >> > intel_dp_init_modeset_retry_work(intel_connector);
> >> >
> >> > - /*
> >> > - * TODO: The following drm_connector specific initialization belongs
> >> > - * to DRM core, however it happens atm too late in
> >> > - * drm_connector_init(). That function will also expose the connector
> >> > - * to in-kernel users, so it can't be called until the connector is
> >> > - * sufficiently initialized; init the device pointer used by the
> >> > - * following DSC setup, until a fix moving this to DRM core.
> >> > - */
> >> > - intel_connector->base.dev = mgr->dev;
> >> > -
> >> > - intel_connector->dp.dsc_decompression_aux = drm_dp_mst_dsc_aux_for_port(port);
> >> > - intel_dp_mst_read_decompression_port_dsc_caps(intel_dp, intel_connector);
> >> > - intel_connector->dp.dsc_hblank_expansion_quirk =
> >> > - detect_dsc_hblank_expansion_quirk(intel_connector);
> >> > -
> >> > - connector = &intel_connector->base;
> >> > - ret = drm_connector_init(display->drm, connector, &intel_dp_mst_connector_funcs,
> >> > - DRM_MODE_CONNECTOR_DisplayPort);
> >> > + ret = drm_connector_init_core(display->drm, connector, &intel_dp_mst_connector_funcs,
> >> > + DRM_MODE_CONNECTOR_DisplayPort);
> >> > if (ret) {
> >> > drm_dp_mst_put_port_malloc(port);
> >> > intel_connector_free(intel_connector);
> >> > return NULL;
> >> > }
> >> >
> >> > + intel_connector->dp.dsc_decompression_aux = drm_dp_mst_dsc_aux_for_port(port);
> >> > + intel_dp_mst_read_decompression_port_dsc_caps(intel_dp, intel_connector);
> >> > + intel_connector->dp.dsc_hblank_expansion_quirk =
> >> > + detect_dsc_hblank_expansion_quirk(intel_connector);
> >> > +
> >> > drm_connector_helper_add(connector, &intel_dp_mst_connector_helper_funcs);
> >> >
> >> > for_each_pipe(display, pipe) {
> >> > @@ -1771,6 +1762,8 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo
> >> > drm_dbg_kms(display->drm, "[%s:%d] HDCP MST init failed, skipping.\n",
> >> > connector->name, connector->base.id);
> >> >
> >> > + drm_connector_add(connector);
> >> > +
> >> > return connector;
> >> >
> >> > err:
> >>
> >> --
> >> Jani Nikula, Intel
>
> --
> Jani Nikula, Intel
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 2/4] drm/dp: Add a way to init/add a connector in separate steps
2024-11-18 12:09 ` Jani Nikula
@ 2024-11-18 17:54 ` Imre Deak
0 siblings, 0 replies; 22+ messages in thread
From: Imre Deak @ 2024-11-18 17:54 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-gfx, dri-devel
On Mon, Nov 18, 2024 at 02:09:29PM +0200, Jani Nikula wrote:
> On Fri, 15 Nov 2024, Imre Deak <imre.deak@intel.com> wrote:
> > Atm when the connector is added to the drm_mode_config::connector_list,
> > the connector may not be fully initialized yet. This is not a problem
> > for user space, which will see the connector only after it's registered
> > later, it could be a problem for in-kernel users looking up connectors
> > via the above list.
> >
> > To resolve the above issue, add a way to separately initialize the DRM
> > core specific parts of the connector and add it to the above list. This
> > will move adding the connector to the list after the properties on the
> > connector have been added, this is ok since these steps don't have a
> > dependency.
> >
> > Signed-off-by: Imre Deak <imre.deak@intel.com>
> > ---
> > drivers/gpu/drm/drm_connector.c | 103 ++++++++++++++++++++++++++------
> > include/drm/drm_connector.h | 5 ++
> > 2 files changed, 91 insertions(+), 17 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
> > index fc35f47e2849e..6132a7917b20c 100644
> > --- a/drivers/gpu/drm/drm_connector.c
> > +++ b/drivers/gpu/drm/drm_connector.c
> > @@ -218,11 +218,11 @@ void drm_connector_free_work_fn(struct work_struct *work)
> > }
> > }
> >
> > -static int __drm_connector_init(struct drm_device *dev,
> > - struct drm_connector *connector,
> > - const struct drm_connector_funcs *funcs,
> > - int connector_type,
> > - struct i2c_adapter *ddc)
> > +static int __drm_connector_init_core(struct drm_device *dev,
> > + struct drm_connector *connector,
> > + const struct drm_connector_funcs *funcs,
> > + int connector_type,
> > + struct i2c_adapter *ddc)
> > {
> > struct drm_mode_config *config = &dev->mode_config;
> > int ret;
> > @@ -273,6 +273,7 @@ static int __drm_connector_init(struct drm_device *dev,
> > /* provide ddc symlink in sysfs */
> > connector->ddc = ddc;
> >
> > + INIT_LIST_HEAD(&connector->head);
> > INIT_LIST_HEAD(&connector->global_connector_list_entry);
> > INIT_LIST_HEAD(&connector->probed_modes);
> > INIT_LIST_HEAD(&connector->modes);
> > @@ -288,14 +289,6 @@ static int __drm_connector_init(struct drm_device *dev,
> >
> > drm_connector_get_cmdline_mode(connector);
> >
> > - /* We should add connectors at the end to avoid upsetting the connector
> > - * index too much.
> > - */
> > - spin_lock_irq(&config->connector_list_lock);
> > - list_add_tail(&connector->head, &config->connector_list);
> > - config->num_connector++;
> > - spin_unlock_irq(&config->connector_list_lock);
> > -
> > if (connector_type != DRM_MODE_CONNECTOR_VIRTUAL &&
> > connector_type != DRM_MODE_CONNECTOR_WRITEBACK)
> > drm_connector_attach_edid_property(connector);
> > @@ -332,6 +325,84 @@ static int __drm_connector_init(struct drm_device *dev,
> > return ret;
> > }
> >
> > +/**
> > + * drm_connector_init_core - Initialize the core state of a preallocated connector
> > + * @dev: DRM device
> > + * @connector: the connector to init
> > + * @funcs: callbacks for this connector
> > + * @connector_type: user visible type of the connector
> > + *
> > + * Initialises the core state of preallocated connector. This is
> > + * equivalent to drm_connector_init(), without adding the connector to
> > + * drm_mode_config::connector_list. This call must be followed by calling
> > + * drm_connector_add() during initialization to expose the connector to
> > + * in-kernel users via the above list.
> > + *
> > + * Returns:
> > + * Zero on success, error code on failure.
> > + */
> > +int drm_connector_init_core(struct drm_device *dev,
> > + struct drm_connector *connector,
> > + const struct drm_connector_funcs *funcs,
> > + int connector_type)
>
> Please include the ddc parameter here, and have callers pass NULL. We
> absolutely don't want to see drm_connector_init_core_with_ddc().
Ok.
> > +{
> > + if (drm_WARN_ON(dev, !(funcs && funcs->destroy)))
> > + return -EINVAL;
> > +
> > + return __drm_connector_init_core(dev, connector, funcs, connector_type, NULL);
> > +}
> > +EXPORT_SYMBOL(drm_connector_init_core);
> > +
> > +/**
> > + * drm_connector_add - Add the connector
> > + * @connector: the connector to add
> > + *
> > + * Add the connector to the drm_mode_config::connector_list, exposing the
> > + * connector to in-kernel users. This call must be preceded by a call to
> > + * drm_connector_init_core().
> > + */
> > +void drm_connector_add(struct drm_connector *connector)
> > +{
> > + struct drm_device *dev = connector->dev;
> > + struct drm_mode_config *config = &dev->mode_config;
> > +
> > + spin_lock_irq(&config->connector_list_lock);
> > + list_add_tail(&connector->head, &config->connector_list);
> > + config->num_connector++;
> > + spin_unlock_irq(&config->connector_list_lock);
> > +}
> > +EXPORT_SYMBOL(drm_connector_add);
> > +
> > +static void drm_connector_remove(struct drm_connector *connector)
> > +{
> > + struct drm_device *dev = connector->dev;
> > +
> > + if (list_empty(&connector->head))
> > + return;
> > +
> > + spin_lock_irq(&dev->mode_config.connector_list_lock);
> > + list_del_init(&connector->head);
> > + dev->mode_config.num_connector--;
> > + spin_unlock_irq(&dev->mode_config.connector_list_lock);
> > +}
> > +
> > +static int __drm_connector_init(struct drm_device *dev,
> > + struct drm_connector *connector,
> > + const struct drm_connector_funcs *funcs,
> > + int connector_type,
> > + struct i2c_adapter *ddc)
>
> I'd nuke this wrapper altogether, and put the stuff inline.
Not sure, since it's used in a few places. Could rename it to
drm_connector_init_core_and_add() for clarity.
> Which kind of highlights that drmm_connector_init() still has the same
> problem, everyone's encouraged to move towards that, but then what?
Not sure how the drmm API would work on MST where connectors should be
freed dynamically, at least it doesn't work as-is; and MST is where
initialising and adding a connector separately matters - at least for
i915 - vs. other static connector types where it doesn't.
If needed, adding a drmm version of initialising a connector without
adding it would be simple, but based on the above I don't think it's
needed atm.
> > +{
> > + int ret;
> > +
> > + ret = __drm_connector_init_core(dev, connector, funcs, connector_type, ddc);
> > + if (ret)
> > + return ret;
> > +
> > + drm_connector_add(connector);
> > +
> > + return 0;
> > +}
> > +
> > /**
> > * drm_connector_init - Init a preallocated connector
> > * @dev: DRM device
> > @@ -659,10 +730,8 @@ void drm_connector_cleanup(struct drm_connector *connector)
> > connector->name = NULL;
> > fwnode_handle_put(connector->fwnode);
> > connector->fwnode = NULL;
> > - spin_lock_irq(&dev->mode_config.connector_list_lock);
> > - list_del(&connector->head);
> > - dev->mode_config.num_connector--;
> > - spin_unlock_irq(&dev->mode_config.connector_list_lock);
> > +
> > + drm_connector_remove(connector);
> >
> > WARN_ON(connector->state && !connector->funcs->atomic_destroy_state);
> > if (connector->state && connector->funcs->atomic_destroy_state)
> > diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
> > index e3fa43291f449..8e8d130b40f98 100644
> > --- a/include/drm/drm_connector.h
> > +++ b/include/drm/drm_connector.h
> > @@ -2122,6 +2122,11 @@ struct drm_connector {
> >
> > #define obj_to_connector(x) container_of(x, struct drm_connector, base)
> >
> > +int drm_connector_init_core(struct drm_device *dev,
> > + struct drm_connector *connector,
> > + const struct drm_connector_funcs *funcs,
> > + int connector_type);
> > +void drm_connector_add(struct drm_connector *connector);
> > int drm_connector_init(struct drm_device *dev,
> > struct drm_connector *connector,
> > const struct drm_connector_funcs *funcs,
>
> --
> Jani Nikula, Intel
^ permalink raw reply [flat|nested] 22+ messages in thread
end of thread, other threads:[~2024-11-18 17:53 UTC | newest]
Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-15 16:41 [PATCH 1/4] drm/i915/dp_mst: Fix connector initialization in intel_dp_add_mst_connector() Imre Deak
2024-11-15 16:41 ` [PATCH 2/4] drm/dp: Add a way to init/add a connector in separate steps Imre Deak
2024-11-15 20:18 ` Rodrigo Vivi
2024-11-18 12:09 ` Jani Nikula
2024-11-18 17:54 ` Imre Deak
2024-11-15 16:41 ` [PATCH 3/4] drm/i915/dp_mst: Expose a connector to kernel users after it's properly initialized Imre Deak
2024-11-15 20:18 ` Rodrigo Vivi
2024-11-18 12:12 ` Jani Nikula
2024-11-18 12:14 ` Imre Deak
2024-11-18 12:23 ` Jani Nikula
2024-11-18 13:12 ` Imre Deak
2024-11-15 16:41 ` [PATCH 4/4] drm/i915/dp_mst: Fix error handling while adding a connector Imre Deak
2024-11-15 20:17 ` Rodrigo Vivi
2024-11-15 17:08 ` ✗ Fi.CI.SPARSE: warning for series starting with [1/4] drm/i915/dp_mst: Fix connector initialization in intel_dp_add_mst_connector() Patchwork
2024-11-15 17:08 ` ✓ Fi.CI.BAT: success " Patchwork
2024-11-15 20:20 ` [PATCH 1/4] " Rodrigo Vivi
2024-11-15 20:30 ` Imre Deak
2024-11-15 22:30 ` Rodrigo Vivi
2024-11-18 9:10 ` Jani Nikula
2024-11-18 10:48 ` Imre Deak
2024-11-15 21:56 ` ✗ Fi.CI.IGT: failure for series starting with [1/4] " Patchwork
2024-11-18 11:45 ` [PATCH 1/4] " Jani Nikula
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox