* [Intel-gfx] [PATCH 0/4] drm/i915: modeset probe cleanup
@ 2020-09-02 14:30 Jani Nikula
2020-09-02 14:30 ` [Intel-gfx] [PATCH 1/4] drm/i915: split intel_modeset_init() pre/post gem init Jani Nikula
` (6 more replies)
0 siblings, 7 replies; 10+ messages in thread
From: Jani Nikula @ 2020-09-02 14:30 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
Try to cleanup modeset probe and driver remove paths. Based on old patches,
removed old reviewed-by's due to changes.
BR,
Jani.
Jani Nikula (4):
drm/i915: split intel_modeset_init() pre/post gem init
drm/i915: move more display related probe to
intel_modeset_init_noirq()
drm/i915: split out intel_modeset_driver_remove_nogem() and simplify
drm/i915: remove the extra modeset init layer
drivers/gpu/drm/i915/display/intel_display.c | 77 ++++++++++-
drivers/gpu/drm/i915/display/intel_display.h | 2 +
drivers/gpu/drm/i915/i915_drv.c | 134 ++++---------------
3 files changed, 97 insertions(+), 116 deletions(-)
--
2.20.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Intel-gfx] [PATCH 1/4] drm/i915: split intel_modeset_init() pre/post gem init
2020-09-02 14:30 [Intel-gfx] [PATCH 0/4] drm/i915: modeset probe cleanup Jani Nikula
@ 2020-09-02 14:30 ` Jani Nikula
2020-09-02 14:30 ` [Intel-gfx] [PATCH 2/4] drm/i915: move more display related probe to intel_modeset_init_noirq() Jani Nikula
` (5 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Jani Nikula @ 2020-09-02 14:30 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
Turn current intel_modeset_init() to a pre-gem init function, and add a
new intel_modeset_init() function and move all post-gem modeset init
there, in the correct layer. No functional changes.
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/display/intel_display.c | 28 ++++++++++++++++++--
drivers/gpu/drm/i915/display/intel_display.h | 1 +
drivers/gpu/drm/i915/i915_drv.c | 17 ++----------
3 files changed, 29 insertions(+), 17 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index dc622af8695c..1279a50ade35 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -17909,8 +17909,8 @@ int intel_modeset_init_noirq(struct drm_i915_private *i915)
return 0;
}
-/* part #2: call after irq install */
-int intel_modeset_init(struct drm_i915_private *i915)
+/* part #2: call after irq install, but before gem init */
+int intel_modeset_init_nogem(struct drm_i915_private *i915)
{
struct drm_device *dev = &i915->drm;
enum pipe pipe;
@@ -18009,6 +18009,30 @@ int intel_modeset_init(struct drm_i915_private *i915)
return 0;
}
+/* part #3: call after gem init */
+int intel_modeset_init(struct drm_i915_private *i915)
+{
+ int ret;
+
+ intel_overlay_setup(i915);
+
+ if (!HAS_DISPLAY(i915) || !INTEL_DISPLAY_ENABLED(i915))
+ return 0;
+
+ ret = intel_fbdev_init(&i915->drm);
+ if (ret)
+ return ret;
+
+ /* Only enable hotplug handling once the fbdev is fully set up. */
+ intel_hpd_init(i915);
+
+ intel_init_ipc(i915);
+
+ intel_psr_set_force_mode_changed(i915->psr.dp);
+
+ return 0;
+}
+
void i830_enable_pipe(struct drm_i915_private *dev_priv, enum pipe pipe)
{
struct intel_crtc *crtc = intel_get_crtc_for_pipe(dev_priv, pipe);
diff --git a/drivers/gpu/drm/i915/display/intel_display.h b/drivers/gpu/drm/i915/display/intel_display.h
index e890c8fb779b..63130e1a9eff 100644
--- a/drivers/gpu/drm/i915/display/intel_display.h
+++ b/drivers/gpu/drm/i915/display/intel_display.h
@@ -629,6 +629,7 @@ intel_format_info_is_yuv_semiplanar(const struct drm_format_info *info,
/* modesetting */
void intel_modeset_init_hw(struct drm_i915_private *i915);
int intel_modeset_init_noirq(struct drm_i915_private *i915);
+int intel_modeset_init_nogem(struct drm_i915_private *i915);
int intel_modeset_init(struct drm_i915_private *i915);
void intel_modeset_driver_remove(struct drm_i915_private *i915);
void intel_modeset_driver_remove_noirq(struct drm_i915_private *i915);
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 00292a849c34..70632119c8a6 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -58,7 +58,6 @@
#include "display/intel_hotplug.h"
#include "display/intel_overlay.h"
#include "display/intel_pipe_crc.h"
-#include "display/intel_psr.h"
#include "display/intel_sprite.h"
#include "display/intel_vga.h"
@@ -263,7 +262,7 @@ static int i915_driver_modeset_probe(struct drm_i915_private *i915)
/* Important: The output setup functions called by modeset_init need
* working irqs for e.g. gmbus and dp aux transfers. */
- ret = intel_modeset_init(i915);
+ ret = intel_modeset_init_nogem(i915);
if (ret)
goto out;
@@ -271,22 +270,10 @@ static int i915_driver_modeset_probe(struct drm_i915_private *i915)
if (ret)
goto cleanup_modeset;
- intel_overlay_setup(i915);
-
- if (!HAS_DISPLAY(i915) || !INTEL_DISPLAY_ENABLED(i915))
- return 0;
-
- ret = intel_fbdev_init(&i915->drm);
+ ret = intel_modeset_init(i915);
if (ret)
goto cleanup_gem;
- /* Only enable hotplug handling once the fbdev is fully set up. */
- intel_hpd_init(i915);
-
- intel_init_ipc(i915);
-
- intel_psr_set_force_mode_changed(i915->psr.dp);
-
return 0;
cleanup_gem:
--
2.20.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Intel-gfx] [PATCH 2/4] drm/i915: move more display related probe to intel_modeset_init_noirq()
2020-09-02 14:30 [Intel-gfx] [PATCH 0/4] drm/i915: modeset probe cleanup Jani Nikula
2020-09-02 14:30 ` [Intel-gfx] [PATCH 1/4] drm/i915: split intel_modeset_init() pre/post gem init Jani Nikula
@ 2020-09-02 14:30 ` Jani Nikula
2020-09-02 14:30 ` [Intel-gfx] [PATCH 3/4] drm/i915: split out intel_modeset_driver_remove_nogem() and simplify Jani Nikula
` (4 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Jani Nikula @ 2020-09-02 14:30 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
With the intel_modeset_* probe functions clarified, we can continue with
moving more related calls to the right layer:
- drm_vblank_init()
- intel_bios_init()
- intel_vga_register()
- intel_csr_ucode_init()
Unfortunately, for the time being, we also need to move a call to the
*wrong* layer: the power domain init.
No functional changes.
v2: move probe failure while at it, power domain init
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/display/intel_display.c | 37 ++++++++++++++++++--
drivers/gpu/drm/i915/i915_drv.c | 36 +------------------
2 files changed, 35 insertions(+), 38 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 1279a50ade35..79c74b072a15 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -67,6 +67,7 @@
#include "intel_bw.h"
#include "intel_cdclk.h"
#include "intel_color.h"
+#include "intel_csr.h"
#include "intel_display_types.h"
#include "intel_dp_link_training.h"
#include "intel_fbc.h"
@@ -17880,6 +17881,27 @@ int intel_modeset_init_noirq(struct drm_i915_private *i915)
{
int ret;
+ if (i915_inject_probe_failure(i915))
+ return -ENODEV;
+
+ if (HAS_DISPLAY(i915) && INTEL_DISPLAY_ENABLED(i915)) {
+ ret = drm_vblank_init(&i915->drm,
+ INTEL_NUM_PIPES(i915));
+ if (ret)
+ return ret;
+ }
+
+ intel_bios_init(i915);
+
+ ret = intel_vga_register(i915);
+ if (ret)
+ goto cleanup_bios;
+
+ /* FIXME: completely on the wrong abstraction layer */
+ intel_power_domains_init_hw(i915, false);
+
+ intel_csr_ucode_init(i915);
+
i915->modeset_wq = alloc_ordered_workqueue("i915_modeset", 0);
i915->flip_wq = alloc_workqueue("i915_flip", WQ_HIGHPRI |
WQ_UNBOUND, WQ_UNBOUND_MAX_ACTIVE);
@@ -17888,15 +17910,15 @@ int intel_modeset_init_noirq(struct drm_i915_private *i915)
ret = intel_cdclk_init(i915);
if (ret)
- return ret;
+ goto cleanup_vga_client_pw_domain_csr;
ret = intel_dbuf_init(i915);
if (ret)
- return ret;
+ goto cleanup_vga_client_pw_domain_csr;
ret = intel_bw_init(i915);
if (ret)
- return ret;
+ goto cleanup_vga_client_pw_domain_csr;
init_llist_head(&i915->atomic_helper.free_list);
INIT_WORK(&i915->atomic_helper.free_work,
@@ -17907,6 +17929,15 @@ int intel_modeset_init_noirq(struct drm_i915_private *i915)
intel_fbc_init(i915);
return 0;
+
+cleanup_vga_client_pw_domain_csr:
+ intel_csr_ucode_fini(i915);
+ intel_power_domains_driver_remove(i915);
+ intel_vga_unregister(i915);
+cleanup_bios:
+ intel_bios_driver_remove(i915);
+
+ return ret;
}
/* part #2: call after irq install, but before gem init */
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 70632119c8a6..6cf1330d3b8e 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -218,41 +218,7 @@ intel_teardown_mchbar(struct drm_i915_private *dev_priv)
/* part #1: call before irq install */
static int i915_driver_modeset_probe_noirq(struct drm_i915_private *i915)
{
- int ret;
-
- if (i915_inject_probe_failure(i915))
- return -ENODEV;
-
- if (HAS_DISPLAY(i915) && INTEL_DISPLAY_ENABLED(i915)) {
- ret = drm_vblank_init(&i915->drm,
- INTEL_NUM_PIPES(i915));
- if (ret)
- return ret;
- }
-
- intel_bios_init(i915);
-
- ret = intel_vga_register(i915);
- if (ret)
- goto cleanup_bios;
-
- intel_power_domains_init_hw(i915, false);
-
- intel_csr_ucode_init(i915);
-
- ret = intel_modeset_init_noirq(i915);
- if (ret)
- goto cleanup_vga_client_pw_domain_csr;
-
- return 0;
-
-cleanup_vga_client_pw_domain_csr:
- intel_csr_ucode_fini(i915);
- intel_power_domains_driver_remove(i915);
- intel_vga_unregister(i915);
-cleanup_bios:
- intel_bios_driver_remove(i915);
- return ret;
+ return intel_modeset_init_noirq(i915);
}
/* part #2: call after irq install */
--
2.20.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Intel-gfx] [PATCH 3/4] drm/i915: split out intel_modeset_driver_remove_nogem() and simplify
2020-09-02 14:30 [Intel-gfx] [PATCH 0/4] drm/i915: modeset probe cleanup Jani Nikula
2020-09-02 14:30 ` [Intel-gfx] [PATCH 1/4] drm/i915: split intel_modeset_init() pre/post gem init Jani Nikula
2020-09-02 14:30 ` [Intel-gfx] [PATCH 2/4] drm/i915: move more display related probe to intel_modeset_init_noirq() Jani Nikula
@ 2020-09-02 14:30 ` Jani Nikula
2020-09-02 14:30 ` [Intel-gfx] [PATCH 4/4] drm/i915: remove the extra modeset init layer Jani Nikula
` (3 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Jani Nikula @ 2020-09-02 14:30 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
Split out a separate display function for driver remove after gem
deinitialization. Note that the sequence is not symmetric with
init. However use similar naming as that reflects the deinit sequence.
No functional changes.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/display/intel_display.c | 12 ++++++++++
drivers/gpu/drm/i915/display/intel_display.h | 1 +
drivers/gpu/drm/i915/i915_drv.c | 24 +++-----------------
3 files changed, 16 insertions(+), 21 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 79c74b072a15..81ea609a5fa0 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -18948,6 +18948,18 @@ void intel_modeset_driver_remove_noirq(struct drm_i915_private *i915)
intel_fbc_cleanup_cfb(i915);
}
+/* part #3: call after gem init */
+void intel_modeset_driver_remove_nogem(struct drm_i915_private *i915)
+{
+ intel_csr_ucode_fini(i915);
+
+ intel_power_domains_driver_remove(i915);
+
+ intel_vga_unregister(i915);
+
+ intel_bios_driver_remove(i915);
+}
+
#if IS_ENABLED(CONFIG_DRM_I915_CAPTURE_ERROR)
struct intel_display_error_state {
diff --git a/drivers/gpu/drm/i915/display/intel_display.h b/drivers/gpu/drm/i915/display/intel_display.h
index 63130e1a9eff..3670cabeb3cd 100644
--- a/drivers/gpu/drm/i915/display/intel_display.h
+++ b/drivers/gpu/drm/i915/display/intel_display.h
@@ -633,6 +633,7 @@ int intel_modeset_init_nogem(struct drm_i915_private *i915);
int intel_modeset_init(struct drm_i915_private *i915);
void intel_modeset_driver_remove(struct drm_i915_private *i915);
void intel_modeset_driver_remove_noirq(struct drm_i915_private *i915);
+void intel_modeset_driver_remove_nogem(struct drm_i915_private *i915);
void intel_display_resume(struct drm_device *dev);
void intel_init_pch_refclk(struct drm_i915_private *dev_priv);
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 6cf1330d3b8e..e332b6fd701d 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -255,24 +255,6 @@ static int i915_driver_modeset_probe(struct drm_i915_private *i915)
return ret;
}
-/* part #1: call before irq uninstall */
-static void i915_driver_modeset_remove(struct drm_i915_private *i915)
-{
- intel_modeset_driver_remove(i915);
-}
-
-/* part #2: call after irq uninstall */
-static void i915_driver_modeset_remove_noirq(struct drm_i915_private *i915)
-{
- intel_csr_ucode_fini(i915);
-
- intel_power_domains_driver_remove(i915);
-
- intel_vga_unregister(i915);
-
- intel_bios_driver_remove(i915);
-}
-
static void intel_init_dpio(struct drm_i915_private *dev_priv)
{
/*
@@ -966,7 +948,7 @@ int i915_driver_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
out_cleanup_irq:
intel_irq_uninstall(i915);
out_cleanup_modeset:
- i915_driver_modeset_remove_noirq(i915);
+ intel_modeset_driver_remove_nogem(i915);
out_cleanup_hw:
i915_driver_hw_remove(i915);
intel_memory_regions_driver_release(i915);
@@ -998,7 +980,7 @@ void i915_driver_remove(struct drm_i915_private *i915)
intel_gvt_driver_remove(i915);
- i915_driver_modeset_remove(i915);
+ intel_modeset_driver_remove(i915);
intel_irq_uninstall(i915);
@@ -1007,7 +989,7 @@ void i915_driver_remove(struct drm_i915_private *i915)
i915_reset_error_state(i915);
i915_gem_driver_remove(i915);
- i915_driver_modeset_remove_noirq(i915);
+ intel_modeset_driver_remove_nogem(i915);
i915_driver_hw_remove(i915);
--
2.20.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Intel-gfx] [PATCH 4/4] drm/i915: remove the extra modeset init layer
2020-09-02 14:30 [Intel-gfx] [PATCH 0/4] drm/i915: modeset probe cleanup Jani Nikula
` (2 preceding siblings ...)
2020-09-02 14:30 ` [Intel-gfx] [PATCH 3/4] drm/i915: split out intel_modeset_driver_remove_nogem() and simplify Jani Nikula
@ 2020-09-02 14:30 ` Jani Nikula
2020-09-02 16:19 ` Ville Syrjälä
2020-09-02 14:42 ` [Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915: modeset probe cleanup Patchwork
` (2 subsequent siblings)
6 siblings, 1 reply; 10+ messages in thread
From: Jani Nikula @ 2020-09-02 14:30 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
Streamline the modeset init by removing the extra init layer.
No functional changes, which means the cleanup path looks hideous.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/i915_drv.c | 63 +++++++++++----------------------
1 file changed, 20 insertions(+), 43 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index e332b6fd701d..4d9b61b1a115 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -215,46 +215,6 @@ intel_teardown_mchbar(struct drm_i915_private *dev_priv)
release_resource(&dev_priv->mch_res);
}
-/* part #1: call before irq install */
-static int i915_driver_modeset_probe_noirq(struct drm_i915_private *i915)
-{
- return intel_modeset_init_noirq(i915);
-}
-
-/* part #2: call after irq install */
-static int i915_driver_modeset_probe(struct drm_i915_private *i915)
-{
- int ret;
-
- /* Important: The output setup functions called by modeset_init need
- * working irqs for e.g. gmbus and dp aux transfers. */
- ret = intel_modeset_init_nogem(i915);
- if (ret)
- goto out;
-
- ret = i915_gem_init(i915);
- if (ret)
- goto cleanup_modeset;
-
- ret = intel_modeset_init(i915);
- if (ret)
- goto cleanup_gem;
-
- return 0;
-
-cleanup_gem:
- i915_gem_suspend(i915);
- i915_gem_driver_remove(i915);
- i915_gem_driver_release(i915);
-cleanup_modeset:
- /* FIXME */
- intel_modeset_driver_remove(i915);
- intel_irq_uninstall(i915);
- intel_modeset_driver_remove_noirq(i915);
-out:
- return ret;
-}
-
static void intel_init_dpio(struct drm_i915_private *dev_priv)
{
/*
@@ -923,7 +883,7 @@ int i915_driver_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
if (ret < 0)
goto out_cleanup_mmio;
- ret = i915_driver_modeset_probe_noirq(i915);
+ ret = intel_modeset_init_noirq(i915);
if (ret < 0)
goto out_cleanup_hw;
@@ -931,10 +891,18 @@ int i915_driver_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
if (ret)
goto out_cleanup_modeset;
- ret = i915_driver_modeset_probe(i915);
- if (ret < 0)
+ ret = intel_modeset_init_nogem(i915);
+ if (ret)
goto out_cleanup_irq;
+ ret = i915_gem_init(i915);
+ if (ret)
+ goto out_cleanup_modeset2;
+
+ ret = intel_modeset_init(i915);
+ if (ret)
+ goto out_cleanup_gem;
+
i915_driver_register(i915);
enable_rpm_wakeref_asserts(&i915->runtime_pm);
@@ -945,6 +913,15 @@ int i915_driver_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
return 0;
+out_cleanup_gem:
+ i915_gem_suspend(i915);
+ i915_gem_driver_remove(i915);
+ i915_gem_driver_release(i915);
+out_cleanup_modeset2:
+ intel_modeset_driver_remove(i915);
+ intel_irq_uninstall(i915);
+ intel_modeset_driver_remove_noirq(i915);
+ goto out_cleanup_modeset;
out_cleanup_irq:
intel_irq_uninstall(i915);
out_cleanup_modeset:
--
2.20.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915: modeset probe cleanup
2020-09-02 14:30 [Intel-gfx] [PATCH 0/4] drm/i915: modeset probe cleanup Jani Nikula
` (3 preceding siblings ...)
2020-09-02 14:30 ` [Intel-gfx] [PATCH 4/4] drm/i915: remove the extra modeset init layer Jani Nikula
@ 2020-09-02 14:42 ` Patchwork
2020-09-02 14:59 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2020-09-03 17:04 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
6 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2020-09-02 14:42 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: modeset probe cleanup
URL : https://patchwork.freedesktop.org/series/81267/
State : warning
== Summary ==
$ dim sparse --fast origin/drm-tip
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.
-
+drivers/gpu/drm/i915/gt/intel_reset.c:1311:5: warning: context imbalance in 'intel_gt_reset_trylock' - different lock contexts for basic block
+drivers/gpu/drm/i915/gvt/mmio.c:287:23: warning: memcpy with byte count of 279040
+drivers/gpu/drm/i915/i915_perf.c:1440:15: warning: memset with byte count of 16777216
+drivers/gpu/drm/i915/i915_perf.c:1494:15: warning: memset with byte count of 16777216
+drivers/gpu/drm/i915/intel_wakeref.c:137:19: warning: context imbalance in 'wakeref_auto_timeout' - unexpected unlock
+./include/linux/seqlock.h:752:24: warning: trying to copy expression type 31
+./include/linux/seqlock.h:778:16: warning: trying to copy expression type 31
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'fwtable_read16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'fwtable_read32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'fwtable_read64' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'fwtable_read8' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'fwtable_write16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'fwtable_write32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'fwtable_write8' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen11_fwtable_read16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen11_fwtable_read32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen11_fwtable_read64' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen11_fwtable_read8' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen11_fwtable_write16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen11_fwtable_write32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen11_fwtable_write8' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen12_fwtable_read16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen12_fwtable_read32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen12_fwtable_read64' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen12_fwtable_read8' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen12_fwtable_write16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen12_fwtable_write32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen12_fwtable_write8' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_read16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_read32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_read64' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_read8' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_write16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_write32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_write8' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen8_write16' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen8_write32' - different lock contexts for basic block
+./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen8_write8' - different lock contexts for basic block
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: modeset probe cleanup
2020-09-02 14:30 [Intel-gfx] [PATCH 0/4] drm/i915: modeset probe cleanup Jani Nikula
` (4 preceding siblings ...)
2020-09-02 14:42 ` [Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915: modeset probe cleanup Patchwork
@ 2020-09-02 14:59 ` Patchwork
2020-09-03 17:04 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
6 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2020-09-02 14:59 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-gfx
[-- Attachment #1.1: Type: text/plain, Size: 4599 bytes --]
== Series Details ==
Series: drm/i915: modeset probe cleanup
URL : https://patchwork.freedesktop.org/series/81267/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_8955 -> Patchwork_18435
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/index.html
Known issues
------------
Here are the changes found in Patchwork_18435 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_exec_parallel@engines@contexts:
- fi-cfl-8109u: [PASS][1] -> [INCOMPLETE][2] ([i915#2398])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/fi-cfl-8109u/igt@gem_exec_parallel@engines@contexts.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/fi-cfl-8109u/igt@gem_exec_parallel@engines@contexts.html
* igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1:
- fi-icl-u2: [PASS][3] -> [DMESG-WARN][4] ([i915#1982])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/fi-icl-u2/igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/fi-icl-u2/igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1.html
#### Possible fixes ####
* igt@i915_module_load@reload:
- fi-bxt-dsi: [DMESG-WARN][5] ([i915#1635] / [i915#1982]) -> [PASS][6]
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/fi-bxt-dsi/igt@i915_module_load@reload.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/fi-bxt-dsi/igt@i915_module_load@reload.html
- fi-tgl-u2: [TIMEOUT][7] ([i915#1418]) -> [PASS][8]
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/fi-tgl-u2/igt@i915_module_load@reload.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/fi-tgl-u2/igt@i915_module_load@reload.html
* igt@i915_pm_rpm@basic-pci-d3-state:
- fi-byt-j1900: [DMESG-WARN][9] ([i915#1982]) -> [PASS][10]
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/fi-byt-j1900/igt@i915_pm_rpm@basic-pci-d3-state.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/fi-byt-j1900/igt@i915_pm_rpm@basic-pci-d3-state.html
- fi-bsw-kefka: [DMESG-WARN][11] ([i915#1982]) -> [PASS][12]
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/fi-bsw-kefka/igt@i915_pm_rpm@basic-pci-d3-state.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/fi-bsw-kefka/igt@i915_pm_rpm@basic-pci-d3-state.html
* igt@i915_pm_rpm@module-reload:
- fi-tgl-u2: [SKIP][13] ([i915#579]) -> [PASS][14]
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/fi-tgl-u2/igt@i915_pm_rpm@module-reload.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/fi-tgl-u2/igt@i915_pm_rpm@module-reload.html
* igt@i915_selftest@live@execlists:
- fi-icl-y: [INCOMPLETE][15] ([i915#2276]) -> [PASS][16]
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/fi-icl-y/igt@i915_selftest@live@execlists.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/fi-icl-y/igt@i915_selftest@live@execlists.html
[i915#1418]: https://gitlab.freedesktop.org/drm/intel/issues/1418
[i915#1635]: https://gitlab.freedesktop.org/drm/intel/issues/1635
[i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
[i915#2276]: https://gitlab.freedesktop.org/drm/intel/issues/2276
[i915#2398]: https://gitlab.freedesktop.org/drm/intel/issues/2398
[i915#579]: https://gitlab.freedesktop.org/drm/intel/issues/579
Participating hosts (38 -> 33)
------------------------------
Missing (5): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-byt-clapper
Build changes
-------------
* Linux: CI_DRM_8955 -> Patchwork_18435
CI-20190529: 20190529
CI_DRM_8955: 744c2c7c60ac2fbe7fae0c25c01a451d41d207b2 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_5776: 46e4315096bcaa2465c82c547274627365b1a69e @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_18435: 0ff068b7cefd2ce745f26f578b6a46bfada75358 @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
0ff068b7cefd drm/i915: remove the extra modeset init layer
7cd1162fcd5f drm/i915: split out intel_modeset_driver_remove_nogem() and simplify
c08fc8f7c7ed drm/i915: move more display related probe to intel_modeset_init_noirq()
af603150eba7 drm/i915: split intel_modeset_init() pre/post gem init
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/index.html
[-- Attachment #1.2: Type: text/html, Size: 5603 bytes --]
[-- Attachment #2: Type: text/plain, Size: 160 bytes --]
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Intel-gfx] [PATCH 4/4] drm/i915: remove the extra modeset init layer
2020-09-02 14:30 ` [Intel-gfx] [PATCH 4/4] drm/i915: remove the extra modeset init layer Jani Nikula
@ 2020-09-02 16:19 ` Ville Syrjälä
2020-09-04 11:00 ` Jani Nikula
0 siblings, 1 reply; 10+ messages in thread
From: Ville Syrjälä @ 2020-09-02 16:19 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-gfx
On Wed, Sep 02, 2020 at 05:30:23PM +0300, Jani Nikula wrote:
> Streamline the modeset init by removing the extra init layer.
>
> No functional changes, which means the cleanup path looks hideous.
>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
> drivers/gpu/drm/i915/i915_drv.c | 63 +++++++++++----------------------
> 1 file changed, 20 insertions(+), 43 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> index e332b6fd701d..4d9b61b1a115 100644
> --- a/drivers/gpu/drm/i915/i915_drv.c
> +++ b/drivers/gpu/drm/i915/i915_drv.c
> @@ -215,46 +215,6 @@ intel_teardown_mchbar(struct drm_i915_private *dev_priv)
> release_resource(&dev_priv->mch_res);
> }
>
> -/* part #1: call before irq install */
> -static int i915_driver_modeset_probe_noirq(struct drm_i915_private *i915)
> -{
> - return intel_modeset_init_noirq(i915);
> -}
> -
> -/* part #2: call after irq install */
> -static int i915_driver_modeset_probe(struct drm_i915_private *i915)
> -{
> - int ret;
> -
> - /* Important: The output setup functions called by modeset_init need
> - * working irqs for e.g. gmbus and dp aux transfers. */
> - ret = intel_modeset_init_nogem(i915);
> - if (ret)
> - goto out;
> -
> - ret = i915_gem_init(i915);
> - if (ret)
> - goto cleanup_modeset;
> -
> - ret = intel_modeset_init(i915);
> - if (ret)
> - goto cleanup_gem;
> -
> - return 0;
> -
> -cleanup_gem:
> - i915_gem_suspend(i915);
> - i915_gem_driver_remove(i915);
> - i915_gem_driver_release(i915);
> -cleanup_modeset:
> - /* FIXME */
> - intel_modeset_driver_remove(i915);
> - intel_irq_uninstall(i915);
> - intel_modeset_driver_remove_noirq(i915);
> -out:
> - return ret;
> -}
> -
> static void intel_init_dpio(struct drm_i915_private *dev_priv)
> {
> /*
> @@ -923,7 +883,7 @@ int i915_driver_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
> if (ret < 0)
> goto out_cleanup_mmio;
>
> - ret = i915_driver_modeset_probe_noirq(i915);
> + ret = intel_modeset_init_noirq(i915);
> if (ret < 0)
> goto out_cleanup_hw;
>
> @@ -931,10 +891,18 @@ int i915_driver_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
> if (ret)
> goto out_cleanup_modeset;
>
> - ret = i915_driver_modeset_probe(i915);
> - if (ret < 0)
> + ret = intel_modeset_init_nogem(i915);
> + if (ret)
> goto out_cleanup_irq;
>
> + ret = i915_gem_init(i915);
> + if (ret)
> + goto out_cleanup_modeset2;
> +
> + ret = intel_modeset_init(i915);
> + if (ret)
> + goto out_cleanup_gem;
> +
> i915_driver_register(i915);
>
> enable_rpm_wakeref_asserts(&i915->runtime_pm);
> @@ -945,6 +913,15 @@ int i915_driver_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
>
> return 0;
>
> +out_cleanup_gem:
> + i915_gem_suspend(i915);
> + i915_gem_driver_remove(i915);
> + i915_gem_driver_release(i915);
> +out_cleanup_modeset2:
> + intel_modeset_driver_remove(i915);
> + intel_irq_uninstall(i915);
> + intel_modeset_driver_remove_noirq(i915);
> + goto out_cleanup_modeset;
Looks like we used to do the intel_irq_uninstall() twice? We even
have a FIXME in there stating as much. With this goto we only do
it the once I guess. So seems like a slight change in behaviour.
Though the comment says it gets called twice during driver remove
as well, which does not seem to be true (at least anymore).
Anyways, fixing that properly likely requires some axctual thought
wrt. hpd vs. irq vs. other stuff.
Series is
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> out_cleanup_irq:
> intel_irq_uninstall(i915);
> out_cleanup_modeset:
> --
> 2.20.1
--
Ville Syrjälä
Intel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: modeset probe cleanup
2020-09-02 14:30 [Intel-gfx] [PATCH 0/4] drm/i915: modeset probe cleanup Jani Nikula
` (5 preceding siblings ...)
2020-09-02 14:59 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
@ 2020-09-03 17:04 ` Patchwork
6 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2020-09-03 17:04 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-gfx
[-- Attachment #1.1: Type: text/plain, Size: 14360 bytes --]
== Series Details ==
Series: drm/i915: modeset probe cleanup
URL : https://patchwork.freedesktop.org/series/81267/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_8955_full -> Patchwork_18435_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Known issues
------------
Here are the changes found in Patchwork_18435_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@drm_read@short-buffer-wakeup:
- shard-skl: [PASS][1] -> [DMESG-WARN][2] ([i915#1982]) +8 similar issues
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/shard-skl4/igt@drm_read@short-buffer-wakeup.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/shard-skl3/igt@drm_read@short-buffer-wakeup.html
* igt@gem_exec_reloc@basic-many-active@vecs0:
- shard-glk: [PASS][3] -> [FAIL][4] ([i915#2389]) +2 similar issues
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/shard-glk7/igt@gem_exec_reloc@basic-many-active@vecs0.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/shard-glk5/igt@gem_exec_reloc@basic-many-active@vecs0.html
* igt@gem_exec_whisper@basic-contexts-forked:
- shard-glk: [PASS][5] -> [TIMEOUT][6] ([i915#1958]) +2 similar issues
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/shard-glk2/igt@gem_exec_whisper@basic-contexts-forked.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/shard-glk2/igt@gem_exec_whisper@basic-contexts-forked.html
* igt@gem_exec_whisper@basic-forked:
- shard-iclb: [PASS][7] -> [TIMEOUT][8] ([i915#1958])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/shard-iclb8/igt@gem_exec_whisper@basic-forked.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/shard-iclb1/igt@gem_exec_whisper@basic-forked.html
* igt@gem_userptr_blits@unsync-unmap-cycles:
- shard-skl: [PASS][9] -> [TIMEOUT][10] ([i915#1958])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/shard-skl10/igt@gem_userptr_blits@unsync-unmap-cycles.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/shard-skl2/igt@gem_userptr_blits@unsync-unmap-cycles.html
* igt@i915_selftest@mock@contexts:
- shard-apl: [PASS][11] -> [INCOMPLETE][12] ([i915#1635] / [i915#2278])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/shard-apl3/igt@i915_selftest@mock@contexts.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/shard-apl7/igt@i915_selftest@mock@contexts.html
* igt@i915_suspend@fence-restore-untiled:
- shard-skl: [PASS][13] -> [INCOMPLETE][14] ([i915#198])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/shard-skl4/igt@i915_suspend@fence-restore-untiled.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/shard-skl3/igt@i915_suspend@fence-restore-untiled.html
* igt@kms_flip@flip-vs-suspend-interruptible@a-dp1:
- shard-kbl: [PASS][15] -> [DMESG-WARN][16] ([i915#180]) +10 similar issues
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/shard-kbl7/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/shard-kbl4/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html
* igt@kms_frontbuffer_tracking@fbc-badstride:
- shard-apl: [PASS][17] -> [DMESG-WARN][18] ([i915#1635] / [i915#1982]) +2 similar issues
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/shard-apl8/igt@kms_frontbuffer_tracking@fbc-badstride.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/shard-apl2/igt@kms_frontbuffer_tracking@fbc-badstride.html
* igt@kms_frontbuffer_tracking@fbc-stridechange:
- shard-tglb: [PASS][19] -> [DMESG-WARN][20] ([i915#1982])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/shard-tglb2/igt@kms_frontbuffer_tracking@fbc-stridechange.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/shard-tglb1/igt@kms_frontbuffer_tracking@fbc-stridechange.html
- shard-glk: [PASS][21] -> [DMESG-WARN][22] ([i915#1982]) +1 similar issue
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/shard-glk2/igt@kms_frontbuffer_tracking@fbc-stridechange.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/shard-glk1/igt@kms_frontbuffer_tracking@fbc-stridechange.html
* igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-wc:
- shard-skl: [PASS][23] -> [FAIL][24] ([i915#49]) +1 similar issue
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/shard-skl9/igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-wc.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/shard-skl3/igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-wc.html
* igt@kms_psr@psr2_cursor_blt:
- shard-iclb: [PASS][25] -> [SKIP][26] ([fdo#109441]) +1 similar issue
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/shard-iclb2/igt@kms_psr@psr2_cursor_blt.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/shard-iclb5/igt@kms_psr@psr2_cursor_blt.html
* igt@perf@polling-parameterized:
- shard-skl: [PASS][27] -> [FAIL][28] ([i915#1542])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/shard-skl5/igt@perf@polling-parameterized.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/shard-skl9/igt@perf@polling-parameterized.html
* igt@perf@polling-small-buf:
- shard-skl: [PASS][29] -> [FAIL][30] ([i915#1722])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/shard-skl7/igt@perf@polling-small-buf.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/shard-skl6/igt@perf@polling-small-buf.html
#### Possible fixes ####
* igt@gem_exec_reloc@basic-concurrent0:
- shard-tglb: [TIMEOUT][31] ([i915#1958]) -> [PASS][32]
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/shard-tglb5/igt@gem_exec_reloc@basic-concurrent0.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/shard-tglb7/igt@gem_exec_reloc@basic-concurrent0.html
* igt@gem_exec_whisper@basic-fds-forked:
- shard-glk: [TIMEOUT][33] ([i915#1958]) -> [PASS][34] +1 similar issue
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/shard-glk4/igt@gem_exec_whisper@basic-fds-forked.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/shard-glk5/igt@gem_exec_whisper@basic-fds-forked.html
* igt@gem_exec_whisper@basic-fds-priority:
- shard-apl: [TIMEOUT][35] ([i915#1635] / [i915#1958]) -> [PASS][36] +2 similar issues
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/shard-apl2/igt@gem_exec_whisper@basic-fds-priority.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/shard-apl1/igt@gem_exec_whisper@basic-fds-priority.html
* igt@gem_render_tiled_blits@basic:
- shard-skl: [DMESG-WARN][37] ([i915#1982]) -> [PASS][38] +4 similar issues
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/shard-skl10/igt@gem_render_tiled_blits@basic.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/shard-skl2/igt@gem_render_tiled_blits@basic.html
* igt@i915_module_load@reload:
- shard-apl: [DMESG-WARN][39] ([i915#1635] / [i915#1982]) -> [PASS][40]
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/shard-apl7/igt@i915_module_load@reload.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/shard-apl8/igt@i915_module_load@reload.html
* igt@i915_suspend@sysfs-reader:
- shard-skl: [INCOMPLETE][41] ([i915#198]) -> [PASS][42] +2 similar issues
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/shard-skl9/igt@i915_suspend@sysfs-reader.html
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/shard-skl7/igt@i915_suspend@sysfs-reader.html
* igt@kms_big_fb@y-tiled-64bpp-rotate-0:
- shard-iclb: [DMESG-WARN][43] ([i915#1982]) -> [PASS][44] +1 similar issue
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/shard-iclb3/igt@kms_big_fb@y-tiled-64bpp-rotate-0.html
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/shard-iclb3/igt@kms_big_fb@y-tiled-64bpp-rotate-0.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
- shard-skl: [FAIL][45] ([i915#2346]) -> [PASS][46]
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/shard-skl1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/shard-skl1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
* igt@kms_draw_crc@draw-method-xrgb2101010-mmap-wc-ytiled:
- shard-kbl: [DMESG-WARN][47] ([i915#1982]) -> [PASS][48]
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/shard-kbl7/igt@kms_draw_crc@draw-method-xrgb2101010-mmap-wc-ytiled.html
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/shard-kbl4/igt@kms_draw_crc@draw-method-xrgb2101010-mmap-wc-ytiled.html
* igt@kms_flip@flip-vs-expired-vblank@b-edp1:
- shard-skl: [FAIL][49] ([i915#79]) -> [PASS][50]
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/shard-skl3/igt@kms_flip@flip-vs-expired-vblank@b-edp1.html
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/shard-skl4/igt@kms_flip@flip-vs-expired-vblank@b-edp1.html
* igt@kms_flip@flip-vs-suspend@c-dp1:
- shard-kbl: [DMESG-WARN][51] ([i915#180]) -> [PASS][52] +6 similar issues
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/shard-kbl4/igt@kms_flip@flip-vs-suspend@c-dp1.html
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/shard-kbl7/igt@kms_flip@flip-vs-suspend@c-dp1.html
* igt@kms_flip@plain-flip-fb-recreate@a-edp1:
- shard-skl: [FAIL][53] ([i915#2122]) -> [PASS][54]
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/shard-skl1/igt@kms_flip@plain-flip-fb-recreate@a-edp1.html
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/shard-skl9/igt@kms_flip@plain-flip-fb-recreate@a-edp1.html
* igt@kms_flip@plain-flip-ts-check-interruptible@a-hdmi-a1:
- shard-glk: [FAIL][55] ([i915#2122]) -> [PASS][56] +1 similar issue
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/shard-glk7/igt@kms_flip@plain-flip-ts-check-interruptible@a-hdmi-a1.html
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/shard-glk5/igt@kms_flip@plain-flip-ts-check-interruptible@a-hdmi-a1.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-pwrite:
- shard-tglb: [DMESG-WARN][57] ([i915#1982]) -> [PASS][58] +1 similar issue
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/shard-tglb7/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-pwrite.html
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/shard-tglb7/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-pwrite.html
* igt@kms_hdr@bpc-switch:
- shard-skl: [FAIL][59] ([i915#1188]) -> [PASS][60]
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/shard-skl4/igt@kms_hdr@bpc-switch.html
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/shard-skl3/igt@kms_hdr@bpc-switch.html
* igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
- shard-skl: [FAIL][61] ([fdo#108145] / [i915#265]) -> [PASS][62] +1 similar issue
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/shard-skl4/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/shard-skl7/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html
* igt@perf@blocking:
- shard-skl: [FAIL][63] ([i915#1542]) -> [PASS][64]
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/shard-skl4/igt@perf@blocking.html
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/shard-skl3/igt@perf@blocking.html
#### Warnings ####
* igt@gem_mmap_gtt@ptrace:
- shard-skl: [INCOMPLETE][65] -> [TIMEOUT][66] ([i915#1958])
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8955/shard-skl6/igt@gem_mmap_gtt@ptrace.html
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/shard-skl10/igt@gem_mmap_gtt@ptrace.html
[fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[i915#1188]: https://gitlab.freedesktop.org/drm/intel/issues/1188
[i915#1542]: https://gitlab.freedesktop.org/drm/intel/issues/1542
[i915#1635]: https://gitlab.freedesktop.org/drm/intel/issues/1635
[i915#1722]: https://gitlab.freedesktop.org/drm/intel/issues/1722
[i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
[i915#1958]: https://gitlab.freedesktop.org/drm/intel/issues/1958
[i915#198]: https://gitlab.freedesktop.org/drm/intel/issues/198
[i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
[i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122
[i915#2278]: https://gitlab.freedesktop.org/drm/intel/issues/2278
[i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
[i915#2389]: https://gitlab.freedesktop.org/drm/intel/issues/2389
[i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265
[i915#49]: https://gitlab.freedesktop.org/drm/intel/issues/49
[i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
Participating hosts (10 -> 10)
------------------------------
No changes in participating hosts
Build changes
-------------
* Linux: CI_DRM_8955 -> Patchwork_18435
CI-20190529: 20190529
CI_DRM_8955: 744c2c7c60ac2fbe7fae0c25c01a451d41d207b2 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_5776: 46e4315096bcaa2465c82c547274627365b1a69e @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_18435: 0ff068b7cefd2ce745f26f578b6a46bfada75358 @ git://anongit.freedesktop.org/gfx-ci/linux
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18435/index.html
[-- Attachment #1.2: Type: text/html, Size: 17175 bytes --]
[-- Attachment #2: Type: text/plain, Size: 160 bytes --]
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Intel-gfx] [PATCH 4/4] drm/i915: remove the extra modeset init layer
2020-09-02 16:19 ` Ville Syrjälä
@ 2020-09-04 11:00 ` Jani Nikula
0 siblings, 0 replies; 10+ messages in thread
From: Jani Nikula @ 2020-09-04 11:00 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: intel-gfx
On Wed, 02 Sep 2020, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote:
> On Wed, Sep 02, 2020 at 05:30:23PM +0300, Jani Nikula wrote:
>> Streamline the modeset init by removing the extra init layer.
>>
>> No functional changes, which means the cleanup path looks hideous.
>>
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>> ---
>> drivers/gpu/drm/i915/i915_drv.c | 63 +++++++++++----------------------
>> 1 file changed, 20 insertions(+), 43 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
>> index e332b6fd701d..4d9b61b1a115 100644
>> --- a/drivers/gpu/drm/i915/i915_drv.c
>> +++ b/drivers/gpu/drm/i915/i915_drv.c
>> @@ -215,46 +215,6 @@ intel_teardown_mchbar(struct drm_i915_private *dev_priv)
>> release_resource(&dev_priv->mch_res);
>> }
>>
>> -/* part #1: call before irq install */
>> -static int i915_driver_modeset_probe_noirq(struct drm_i915_private *i915)
>> -{
>> - return intel_modeset_init_noirq(i915);
>> -}
>> -
>> -/* part #2: call after irq install */
>> -static int i915_driver_modeset_probe(struct drm_i915_private *i915)
>> -{
>> - int ret;
>> -
>> - /* Important: The output setup functions called by modeset_init need
>> - * working irqs for e.g. gmbus and dp aux transfers. */
>> - ret = intel_modeset_init_nogem(i915);
>> - if (ret)
>> - goto out;
>> -
>> - ret = i915_gem_init(i915);
>> - if (ret)
>> - goto cleanup_modeset;
>> -
>> - ret = intel_modeset_init(i915);
>> - if (ret)
>> - goto cleanup_gem;
>> -
>> - return 0;
>> -
>> -cleanup_gem:
>> - i915_gem_suspend(i915);
>> - i915_gem_driver_remove(i915);
>> - i915_gem_driver_release(i915);
>> -cleanup_modeset:
>> - /* FIXME */
>> - intel_modeset_driver_remove(i915);
>> - intel_irq_uninstall(i915);
>> - intel_modeset_driver_remove_noirq(i915);
>> -out:
>> - return ret;
>> -}
>> -
>> static void intel_init_dpio(struct drm_i915_private *dev_priv)
>> {
>> /*
>> @@ -923,7 +883,7 @@ int i915_driver_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
>> if (ret < 0)
>> goto out_cleanup_mmio;
>>
>> - ret = i915_driver_modeset_probe_noirq(i915);
>> + ret = intel_modeset_init_noirq(i915);
>> if (ret < 0)
>> goto out_cleanup_hw;
>>
>> @@ -931,10 +891,18 @@ int i915_driver_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
>> if (ret)
>> goto out_cleanup_modeset;
>>
>> - ret = i915_driver_modeset_probe(i915);
>> - if (ret < 0)
>> + ret = intel_modeset_init_nogem(i915);
>> + if (ret)
>> goto out_cleanup_irq;
>>
>> + ret = i915_gem_init(i915);
>> + if (ret)
>> + goto out_cleanup_modeset2;
>> +
>> + ret = intel_modeset_init(i915);
>> + if (ret)
>> + goto out_cleanup_gem;
>> +
>> i915_driver_register(i915);
>>
>> enable_rpm_wakeref_asserts(&i915->runtime_pm);
>> @@ -945,6 +913,15 @@ int i915_driver_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
>>
>> return 0;
>>
>> +out_cleanup_gem:
>> + i915_gem_suspend(i915);
>> + i915_gem_driver_remove(i915);
>> + i915_gem_driver_release(i915);
>> +out_cleanup_modeset2:
>> + intel_modeset_driver_remove(i915);
>> + intel_irq_uninstall(i915);
>> + intel_modeset_driver_remove_noirq(i915);
>> + goto out_cleanup_modeset;
>
> Looks like we used to do the intel_irq_uninstall() twice? We even
> have a FIXME in there stating as much. With this goto we only do
> it the once I guess. So seems like a slight change in behaviour.
> Though the comment says it gets called twice during driver remove
> as well, which does not seem to be true (at least anymore).
>
> Anyways, fixing that properly likely requires some axctual thought
> wrt. hpd vs. irq vs. other stuff.
>
> Series is
> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Thanks. Pushed the lot, with a simple FIXME comment added about cleaning
up the error path.
BR,
Jani.
>
>> out_cleanup_irq:
>> intel_irq_uninstall(i915);
>> out_cleanup_modeset:
>> --
>> 2.20.1
--
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2020-09-04 11:00 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-09-02 14:30 [Intel-gfx] [PATCH 0/4] drm/i915: modeset probe cleanup Jani Nikula
2020-09-02 14:30 ` [Intel-gfx] [PATCH 1/4] drm/i915: split intel_modeset_init() pre/post gem init Jani Nikula
2020-09-02 14:30 ` [Intel-gfx] [PATCH 2/4] drm/i915: move more display related probe to intel_modeset_init_noirq() Jani Nikula
2020-09-02 14:30 ` [Intel-gfx] [PATCH 3/4] drm/i915: split out intel_modeset_driver_remove_nogem() and simplify Jani Nikula
2020-09-02 14:30 ` [Intel-gfx] [PATCH 4/4] drm/i915: remove the extra modeset init layer Jani Nikula
2020-09-02 16:19 ` Ville Syrjälä
2020-09-04 11:00 ` Jani Nikula
2020-09-02 14:42 ` [Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915: modeset probe cleanup Patchwork
2020-09-02 14:59 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2020-09-03 17:04 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox