* [PATCH 01/13] drm/i915: add i915_driver_modeset_remove()
2019-09-19 14:03 [PATCH 00/13] drm/i915: modeset probe/remove path refactoring Jani Nikula
@ 2019-09-19 14:03 ` Jani Nikula
2019-09-19 15:29 ` Chris Wilson
2019-09-19 14:03 ` [PATCH 02/13] drm/i915: pass i915 to i915_driver_modeset_probe() Jani Nikula
` (13 subsequent siblings)
14 siblings, 1 reply; 25+ messages in thread
From: Jani Nikula @ 2019-09-19 14:03 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
For completeness, add counterpart to i915_driver_modeset_probe() and
remove the asymmetry in the probe/remove parts. No functional changes.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/i915_drv.c | 25 +++++++++++++++----------
1 file changed, 15 insertions(+), 10 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 9904f762f4bb..4cb95fd9b35d 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -422,6 +422,20 @@ static int i915_driver_modeset_probe(struct drm_device *dev)
return ret;
}
+static void i915_driver_modeset_remove(struct drm_i915_private *i915)
+{
+ struct pci_dev *pdev = i915->drm.pdev;
+
+ intel_modeset_driver_remove(&i915->drm);
+
+ intel_bios_driver_remove(i915);
+
+ vga_switcheroo_unregister_client(pdev);
+ vga_client_register(pdev, NULL, NULL, NULL);
+
+ intel_csr_ucode_fini(i915);
+}
+
static void intel_init_dpio(struct drm_i915_private *dev_priv)
{
/*
@@ -1586,8 +1600,6 @@ int i915_driver_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
void i915_driver_remove(struct drm_i915_private *i915)
{
- struct pci_dev *pdev = i915->drm.pdev;
-
disable_rpm_wakeref_asserts(&i915->runtime_pm);
i915_driver_unregister(i915);
@@ -1608,14 +1620,7 @@ void i915_driver_remove(struct drm_i915_private *i915)
intel_gvt_driver_remove(i915);
- intel_modeset_driver_remove(&i915->drm);
-
- intel_bios_driver_remove(i915);
-
- vga_switcheroo_unregister_client(pdev);
- vga_client_register(pdev, NULL, NULL, NULL);
-
- intel_csr_ucode_fini(i915);
+ i915_driver_modeset_remove(i915);
/* Free error state after interrupts are fully disabled. */
cancel_delayed_work_sync(&i915->gt.hangcheck.work);
--
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] 25+ messages in thread
* [PATCH 02/13] drm/i915: pass i915 to i915_driver_modeset_probe()
2019-09-19 14:03 [PATCH 00/13] drm/i915: modeset probe/remove path refactoring Jani Nikula
2019-09-19 14:03 ` [PATCH 01/13] drm/i915: add i915_driver_modeset_remove() Jani Nikula
@ 2019-09-19 14:03 ` Jani Nikula
2019-09-19 15:29 ` Chris Wilson
2019-09-19 14:03 ` [PATCH 03/13] drm/i915: pass i915 to intel_modeset_driver_remove() Jani Nikula
` (12 subsequent siblings)
14 siblings, 1 reply; 25+ messages in thread
From: Jani Nikula @ 2019-09-19 14:03 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
In general, prefer struct drm_i915_private * over struct drm_device *
when either will do. Rename the local variable to i915. No functional
changes.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/i915_drv.c | 59 ++++++++++++++++-----------------
1 file changed, 29 insertions(+), 30 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 4cb95fd9b35d..3e4ea5d6fcc2 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -329,23 +329,22 @@ static const struct vga_switcheroo_client_ops i915_switcheroo_ops = {
.can_switch = i915_switcheroo_can_switch,
};
-static int i915_driver_modeset_probe(struct drm_device *dev)
+static int i915_driver_modeset_probe(struct drm_i915_private *i915)
{
- struct drm_i915_private *dev_priv = to_i915(dev);
- struct pci_dev *pdev = dev_priv->drm.pdev;
+ struct pci_dev *pdev = i915->drm.pdev;
int ret;
- if (i915_inject_probe_failure(dev_priv))
+ if (i915_inject_probe_failure(i915))
return -ENODEV;
- if (HAS_DISPLAY(dev_priv) && INTEL_DISPLAY_ENABLED(dev_priv)) {
- ret = drm_vblank_init(&dev_priv->drm,
- INTEL_NUM_PIPES(dev_priv));
+ if (HAS_DISPLAY(i915) && INTEL_DISPLAY_ENABLED(i915)) {
+ ret = drm_vblank_init(&i915->drm,
+ INTEL_NUM_PIPES(i915));
if (ret)
goto out;
}
- intel_bios_init(dev_priv);
+ intel_bios_init(i915);
/* If we have > 1 VGA cards, then we need to arbitrate access
* to the common VGA resources.
@@ -354,7 +353,7 @@ static int i915_driver_modeset_probe(struct drm_device *dev)
* then we do not take part in VGA arbitration and the
* vga_client_register() fails with -ENODEV.
*/
- ret = vga_client_register(pdev, dev_priv, NULL, i915_vga_set_decode);
+ ret = vga_client_register(pdev, i915, NULL, i915_vga_set_decode);
if (ret && ret != -ENODEV)
goto out;
@@ -365,56 +364,56 @@ static int i915_driver_modeset_probe(struct drm_device *dev)
goto cleanup_vga_client;
/* must happen before intel_power_domains_init_hw() on VLV/CHV */
- intel_update_rawclk(dev_priv);
+ intel_update_rawclk(i915);
- intel_power_domains_init_hw(dev_priv, false);
+ intel_power_domains_init_hw(i915, false);
- intel_csr_ucode_init(dev_priv);
+ intel_csr_ucode_init(i915);
- ret = intel_irq_install(dev_priv);
+ ret = intel_irq_install(i915);
if (ret)
goto cleanup_csr;
- intel_gmbus_setup(dev_priv);
+ intel_gmbus_setup(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(dev);
+ ret = intel_modeset_init(&i915->drm);
if (ret)
goto cleanup_irq;
- ret = i915_gem_init(dev_priv);
+ ret = i915_gem_init(i915);
if (ret)
goto cleanup_modeset;
- intel_overlay_setup(dev_priv);
+ intel_overlay_setup(i915);
- if (!HAS_DISPLAY(dev_priv) || !INTEL_DISPLAY_ENABLED(dev_priv))
+ if (!HAS_DISPLAY(i915) || !INTEL_DISPLAY_ENABLED(i915))
return 0;
- ret = intel_fbdev_init(dev);
+ ret = intel_fbdev_init(&i915->drm);
if (ret)
goto cleanup_gem;
/* Only enable hotplug handling once the fbdev is fully set up. */
- intel_hpd_init(dev_priv);
+ intel_hpd_init(i915);
- intel_init_ipc(dev_priv);
+ intel_init_ipc(i915);
return 0;
cleanup_gem:
- i915_gem_suspend(dev_priv);
- i915_gem_driver_remove(dev_priv);
- i915_gem_driver_release(dev_priv);
+ i915_gem_suspend(i915);
+ i915_gem_driver_remove(i915);
+ i915_gem_driver_release(i915);
cleanup_modeset:
- intel_modeset_driver_remove(dev);
+ intel_modeset_driver_remove(&i915->drm);
cleanup_irq:
- intel_irq_uninstall(dev_priv);
- intel_gmbus_teardown(dev_priv);
+ intel_irq_uninstall(i915);
+ intel_gmbus_teardown(i915);
cleanup_csr:
- intel_csr_ucode_fini(dev_priv);
- intel_power_domains_driver_remove(dev_priv);
+ intel_csr_ucode_fini(i915);
+ intel_power_domains_driver_remove(i915);
vga_switcheroo_unregister_client(pdev);
cleanup_vga_client:
vga_client_register(pdev, NULL, NULL, NULL);
@@ -1570,7 +1569,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(&dev_priv->drm);
+ ret = i915_driver_modeset_probe(dev_priv);
if (ret < 0)
goto out_cleanup_hw;
--
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] 25+ messages in thread
* [PATCH 03/13] drm/i915: pass i915 to intel_modeset_driver_remove()
2019-09-19 14:03 [PATCH 00/13] drm/i915: modeset probe/remove path refactoring Jani Nikula
2019-09-19 14:03 ` [PATCH 01/13] drm/i915: add i915_driver_modeset_remove() Jani Nikula
2019-09-19 14:03 ` [PATCH 02/13] drm/i915: pass i915 to i915_driver_modeset_probe() Jani Nikula
@ 2019-09-19 14:03 ` Jani Nikula
2019-09-19 15:29 ` Chris Wilson
2019-09-19 14:03 ` [PATCH 04/13] drm/i915: abstract intel_panel_sanitize_ssc() from intel_modeset_init() Jani Nikula
` (11 subsequent siblings)
14 siblings, 1 reply; 25+ messages in thread
From: Jani Nikula @ 2019-09-19 14:03 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
In general, prefer struct drm_i915_private * over struct drm_device *
when either will do. Rename the local variable to i915. Also propagate
to intel_hpd_poll_fini(). No functional changes.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/display/intel_display.c | 38 ++++++++++----------
drivers/gpu/drm/i915/display/intel_display.h | 2 +-
drivers/gpu/drm/i915/i915_drv.c | 4 +--
3 files changed, 21 insertions(+), 23 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 1cc74844d3ea..c0fc66903fec 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -17027,13 +17027,13 @@ void intel_display_resume(struct drm_device *dev)
drm_atomic_state_put(state);
}
-static void intel_hpd_poll_fini(struct drm_device *dev)
+static void intel_hpd_poll_fini(struct drm_i915_private *i915)
{
struct intel_connector *connector;
struct drm_connector_list_iter conn_iter;
/* Kill all the work that may have been queued by hpd. */
- drm_connector_list_iter_begin(dev, &conn_iter);
+ drm_connector_list_iter_begin(&i915->drm, &conn_iter);
for_each_intel_connector_iter(connector, &conn_iter) {
if (connector->modeset_retry_work.func)
cancel_work_sync(&connector->modeset_retry_work);
@@ -17045,51 +17045,49 @@ static void intel_hpd_poll_fini(struct drm_device *dev)
drm_connector_list_iter_end(&conn_iter);
}
-void intel_modeset_driver_remove(struct drm_device *dev)
+void intel_modeset_driver_remove(struct drm_i915_private *i915)
{
- struct drm_i915_private *dev_priv = to_i915(dev);
-
- flush_workqueue(dev_priv->flip_wq);
- flush_workqueue(dev_priv->modeset_wq);
+ flush_workqueue(i915->flip_wq);
+ flush_workqueue(i915->modeset_wq);
- flush_work(&dev_priv->atomic_helper.free_work);
- WARN_ON(!llist_empty(&dev_priv->atomic_helper.free_list));
+ flush_work(&i915->atomic_helper.free_work);
+ WARN_ON(!llist_empty(&i915->atomic_helper.free_list));
/*
* Interrupts and polling as the first thing to avoid creating havoc.
* Too much stuff here (turning of connectors, ...) would
* experience fancy races otherwise.
*/
- intel_irq_uninstall(dev_priv);
+ intel_irq_uninstall(i915);
/*
* Due to the hpd irq storm handling the hotplug work can re-arm the
* poll handlers. Hence disable polling after hpd handling is shut down.
*/
- intel_hpd_poll_fini(dev);
+ intel_hpd_poll_fini(i915);
/* poll work can call into fbdev, hence clean that up afterwards */
- intel_fbdev_fini(dev_priv);
+ intel_fbdev_fini(i915);
intel_unregister_dsm_handler();
- intel_fbc_global_disable(dev_priv);
+ intel_fbc_global_disable(i915);
/* flush any delayed tasks or pending work */
flush_scheduled_work();
- intel_hdcp_component_fini(dev_priv);
+ intel_hdcp_component_fini(i915);
- drm_mode_config_cleanup(dev);
+ drm_mode_config_cleanup(&i915->drm);
- intel_overlay_cleanup(dev_priv);
+ intel_overlay_cleanup(i915);
- intel_gmbus_teardown(dev_priv);
+ intel_gmbus_teardown(i915);
- destroy_workqueue(dev_priv->flip_wq);
- destroy_workqueue(dev_priv->modeset_wq);
+ destroy_workqueue(i915->flip_wq);
+ destroy_workqueue(i915->modeset_wq);
- intel_fbc_cleanup_cfb(dev_priv);
+ intel_fbc_cleanup_cfb(i915);
}
/*
diff --git a/drivers/gpu/drm/i915/display/intel_display.h b/drivers/gpu/drm/i915/display/intel_display.h
index 66330fcb10d4..dfa6291f1f37 100644
--- a/drivers/gpu/drm/i915/display/intel_display.h
+++ b/drivers/gpu/drm/i915/display/intel_display.h
@@ -574,7 +574,7 @@ void intel_display_print_error_state(struct drm_i915_error_state_buf *e,
/* modesetting */
void intel_modeset_init_hw(struct drm_device *dev);
int intel_modeset_init(struct drm_device *dev);
-void intel_modeset_driver_remove(struct drm_device *dev);
+void intel_modeset_driver_remove(struct drm_i915_private *i915);
int intel_modeset_vga_set_state(struct drm_i915_private *dev_priv, bool state);
void intel_display_resume(struct drm_device *dev);
void i915_redisable_vga(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 3e4ea5d6fcc2..d9b9e9644f5c 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -407,7 +407,7 @@ static int i915_driver_modeset_probe(struct drm_i915_private *i915)
i915_gem_driver_remove(i915);
i915_gem_driver_release(i915);
cleanup_modeset:
- intel_modeset_driver_remove(&i915->drm);
+ intel_modeset_driver_remove(i915);
cleanup_irq:
intel_irq_uninstall(i915);
intel_gmbus_teardown(i915);
@@ -425,7 +425,7 @@ static void i915_driver_modeset_remove(struct drm_i915_private *i915)
{
struct pci_dev *pdev = i915->drm.pdev;
- intel_modeset_driver_remove(&i915->drm);
+ intel_modeset_driver_remove(i915);
intel_bios_driver_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] 25+ messages in thread
* [PATCH 04/13] drm/i915: abstract intel_panel_sanitize_ssc() from intel_modeset_init()
2019-09-19 14:03 [PATCH 00/13] drm/i915: modeset probe/remove path refactoring Jani Nikula
` (2 preceding siblings ...)
2019-09-19 14:03 ` [PATCH 03/13] drm/i915: pass i915 to intel_modeset_driver_remove() Jani Nikula
@ 2019-09-19 14:03 ` Jani Nikula
2019-09-19 15:31 ` Chris Wilson
2019-09-19 14:03 ` [PATCH 05/13] drm/i915: abstract intel_mode_config_init() " Jani Nikula
` (10 subsequent siblings)
14 siblings, 1 reply; 25+ messages in thread
From: Jani Nikula @ 2019-09-19 14:03 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
The code is too specific and detailed to have open in a high level
function. Abstract away. As a drive-by improvement switch to using
enableddisabled() in logging. No functional changes.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/display/intel_display.c | 39 +++++++++++---------
1 file changed, 22 insertions(+), 17 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index c0fc66903fec..ee0d34d76b08 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -7539,6 +7539,27 @@ intel_link_compute_m_n(u16 bits_per_pixel, int nlanes,
constant_n);
}
+static void intel_panel_sanitize_ssc(struct drm_i915_private *dev_priv)
+{
+ /*
+ * There may be no VBT; and if the BIOS enabled SSC we can
+ * just keep using it to avoid unnecessary flicker. Whereas if the
+ * BIOS isn't using it, don't assume it will work even if the VBT
+ * indicates as much.
+ */
+ if (HAS_PCH_IBX(dev_priv) || HAS_PCH_CPT(dev_priv)) {
+ bool bios_lvds_use_ssc = !!(I915_READ(PCH_DREF_CONTROL) &
+ DREF_SSC1_ENABLE);
+
+ if (dev_priv->vbt.lvds_use_ssc != bios_lvds_use_ssc) {
+ DRM_DEBUG_KMS("SSC %s by BIOS, overriding VBT which says %s\n",
+ enableddisabled(bios_lvds_use_ssc),
+ enableddisabled(dev_priv->vbt.lvds_use_ssc));
+ dev_priv->vbt.lvds_use_ssc = bios_lvds_use_ssc;
+ }
+ }
+}
+
static inline bool intel_panel_use_ssc(struct drm_i915_private *dev_priv)
{
if (i915_modparams.panel_use_ssc >= 0)
@@ -16116,23 +16137,7 @@ int intel_modeset_init(struct drm_device *dev)
intel_init_pm(dev_priv);
- /*
- * There may be no VBT; and if the BIOS enabled SSC we can
- * just keep using it to avoid unnecessary flicker. Whereas if the
- * BIOS isn't using it, don't assume it will work even if the VBT
- * indicates as much.
- */
- if (HAS_PCH_IBX(dev_priv) || HAS_PCH_CPT(dev_priv)) {
- bool bios_lvds_use_ssc = !!(I915_READ(PCH_DREF_CONTROL) &
- DREF_SSC1_ENABLE);
-
- if (dev_priv->vbt.lvds_use_ssc != bios_lvds_use_ssc) {
- DRM_DEBUG_KMS("SSC %sabled by BIOS, overriding VBT which says %sabled\n",
- bios_lvds_use_ssc ? "en" : "dis",
- dev_priv->vbt.lvds_use_ssc ? "en" : "dis");
- dev_priv->vbt.lvds_use_ssc = bios_lvds_use_ssc;
- }
- }
+ intel_panel_sanitize_ssc(dev_priv);
/*
* Maximum framebuffer dimensions, chosen to match
--
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] 25+ messages in thread
* Re: [PATCH 04/13] drm/i915: abstract intel_panel_sanitize_ssc() from intel_modeset_init()
2019-09-19 14:03 ` [PATCH 04/13] drm/i915: abstract intel_panel_sanitize_ssc() from intel_modeset_init() Jani Nikula
@ 2019-09-19 15:31 ` Chris Wilson
0 siblings, 0 replies; 25+ messages in thread
From: Chris Wilson @ 2019-09-19 15:31 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
Quoting Jani Nikula (2019-09-19 15:03:51)
> The code is too specific and detailed to have open in a high level
> function. Abstract away. As a drive-by improvement switch to using
> enableddisabled() in logging. No functional changes.
>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_display.c | 39 +++++++++++---------
> 1 file changed, 22 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index c0fc66903fec..ee0d34d76b08 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -7539,6 +7539,27 @@ intel_link_compute_m_n(u16 bits_per_pixel, int nlanes,
> constant_n);
> }
>
> +static void intel_panel_sanitize_ssc(struct drm_i915_private *dev_priv)
> +{
> + /*
> + * There may be no VBT; and if the BIOS enabled SSC we can
> + * just keep using it to avoid unnecessary flicker. Whereas if the
> + * BIOS isn't using it, don't assume it will work even if the VBT
> + * indicates as much.
> + */
> + if (HAS_PCH_IBX(dev_priv) || HAS_PCH_CPT(dev_priv)) {
> + bool bios_lvds_use_ssc = !!(I915_READ(PCH_DREF_CONTROL) &
> + DREF_SSC1_ENABLE);
You could drive-by remove !! as well.
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 25+ messages in thread
* [PATCH 05/13] drm/i915: abstract intel_mode_config_init() from intel_modeset_init()
2019-09-19 14:03 [PATCH 00/13] drm/i915: modeset probe/remove path refactoring Jani Nikula
` (3 preceding siblings ...)
2019-09-19 14:03 ` [PATCH 04/13] drm/i915: abstract intel_panel_sanitize_ssc() from intel_modeset_init() Jani Nikula
@ 2019-09-19 14:03 ` Jani Nikula
2019-09-19 15:32 ` Chris Wilson
2019-09-19 14:03 ` [PATCH 06/13] drm/i915: pass i915 to intel_modeset_init() and intel_modeset_init_hw() Jani Nikula
` (9 subsequent siblings)
14 siblings, 1 reply; 25+ messages in thread
From: Jani Nikula @ 2019-09-19 14:03 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
The i915 specific mode config init code is too specific and detailed to
have open in a high level function. Abstract away. No functional
changes.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/display/intel_display.c | 85 +++++++++++---------
1 file changed, 46 insertions(+), 39 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index ee0d34d76b08..040ee006b047 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -16100,6 +16100,50 @@ static int intel_initial_commit(struct drm_device *dev)
return ret;
}
+static void intel_mode_config_init(struct drm_i915_private *i915)
+{
+ struct drm_mode_config *mode_config = &i915->drm.mode_config;
+
+ mode_config->min_width = 0;
+ mode_config->min_height = 0;
+
+ mode_config->preferred_depth = 24;
+ mode_config->prefer_shadow = 1;
+
+ mode_config->allow_fb_modifiers = true;
+
+ mode_config->funcs = &intel_mode_funcs;
+
+ /*
+ * Maximum framebuffer dimensions, chosen to match
+ * the maximum render engine surface size on gen4+.
+ */
+ if (INTEL_GEN(i915) >= 7) {
+ mode_config->max_width = 16384;
+ mode_config->max_height = 16384;
+ } else if (INTEL_GEN(i915) >= 4) {
+ mode_config->max_width = 8192;
+ mode_config->max_height = 8192;
+ } else if (IS_GEN(i915, 3)) {
+ mode_config->max_width = 4096;
+ mode_config->max_height = 4096;
+ } else {
+ mode_config->max_width = 2048;
+ mode_config->max_height = 2048;
+ }
+
+ if (IS_I845G(i915) || IS_I865G(i915)) {
+ mode_config->cursor_width = IS_I845G(i915) ? 64 : 512;
+ mode_config->cursor_height = 1023;
+ } else if (IS_GEN(i915, 2)) {
+ mode_config->cursor_width = 64;
+ mode_config->cursor_height = 64;
+ } else {
+ mode_config->cursor_width = 256;
+ mode_config->cursor_height = 256;
+ }
+}
+
int intel_modeset_init(struct drm_device *dev)
{
struct drm_i915_private *dev_priv = to_i915(dev);
@@ -16113,20 +16157,12 @@ int intel_modeset_init(struct drm_device *dev)
drm_mode_config_init(dev);
+ intel_mode_config_init(dev_priv);
+
ret = intel_bw_init(dev_priv);
if (ret)
return ret;
- dev->mode_config.min_width = 0;
- dev->mode_config.min_height = 0;
-
- dev->mode_config.preferred_depth = 24;
- dev->mode_config.prefer_shadow = 1;
-
- dev->mode_config.allow_fb_modifiers = true;
-
- dev->mode_config.funcs = &intel_mode_funcs;
-
init_llist_head(&dev_priv->atomic_helper.free_list);
INIT_WORK(&dev_priv->atomic_helper.free_work,
intel_atomic_helper_free_state_worker);
@@ -16139,35 +16175,6 @@ int intel_modeset_init(struct drm_device *dev)
intel_panel_sanitize_ssc(dev_priv);
- /*
- * Maximum framebuffer dimensions, chosen to match
- * the maximum render engine surface size on gen4+.
- */
- if (INTEL_GEN(dev_priv) >= 7) {
- dev->mode_config.max_width = 16384;
- dev->mode_config.max_height = 16384;
- } else if (INTEL_GEN(dev_priv) >= 4) {
- dev->mode_config.max_width = 8192;
- dev->mode_config.max_height = 8192;
- } else if (IS_GEN(dev_priv, 3)) {
- dev->mode_config.max_width = 4096;
- dev->mode_config.max_height = 4096;
- } else {
- dev->mode_config.max_width = 2048;
- dev->mode_config.max_height = 2048;
- }
-
- if (IS_I845G(dev_priv) || IS_I865G(dev_priv)) {
- dev->mode_config.cursor_width = IS_I845G(dev_priv) ? 64 : 512;
- dev->mode_config.cursor_height = 1023;
- } else if (IS_GEN(dev_priv, 2)) {
- dev->mode_config.cursor_width = 64;
- dev->mode_config.cursor_height = 64;
- } else {
- dev->mode_config.cursor_width = 256;
- dev->mode_config.cursor_height = 256;
- }
-
DRM_DEBUG_KMS("%d display pipe%s available.\n",
INTEL_NUM_PIPES(dev_priv),
INTEL_NUM_PIPES(dev_priv) > 1 ? "s" : "");
--
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] 25+ messages in thread
* Re: [PATCH 05/13] drm/i915: abstract intel_mode_config_init() from intel_modeset_init()
2019-09-19 14:03 ` [PATCH 05/13] drm/i915: abstract intel_mode_config_init() " Jani Nikula
@ 2019-09-19 15:32 ` Chris Wilson
0 siblings, 0 replies; 25+ messages in thread
From: Chris Wilson @ 2019-09-19 15:32 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
Quoting Jani Nikula (2019-09-19 15:03:52)
> The i915 specific mode config init code is too specific and detailed to
> have open in a high level function. Abstract away. No functional
> changes.
>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_display.c | 85 +++++++++++---------
> 1 file changed, 46 insertions(+), 39 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index ee0d34d76b08..040ee006b047 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -16100,6 +16100,50 @@ static int intel_initial_commit(struct drm_device *dev)
> return ret;
> }
>
> +static void intel_mode_config_init(struct drm_i915_private *i915)
> +{
> + struct drm_mode_config *mode_config = &i915->drm.mode_config;
Nest
drm_mode_config_init(mode_config);
here?
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 25+ messages in thread
* [PATCH 06/13] drm/i915: pass i915 to intel_modeset_init() and intel_modeset_init_hw()
2019-09-19 14:03 [PATCH 00/13] drm/i915: modeset probe/remove path refactoring Jani Nikula
` (4 preceding siblings ...)
2019-09-19 14:03 ` [PATCH 05/13] drm/i915: abstract intel_mode_config_init() " Jani Nikula
@ 2019-09-19 14:03 ` Jani Nikula
2019-09-19 15:33 ` Chris Wilson
2019-09-19 14:03 ` [PATCH 07/13] drm/i915: split intel_modeset_driver_remove() to pre/post irq uninstall Jani Nikula
` (8 subsequent siblings)
14 siblings, 1 reply; 25+ messages in thread
From: Jani Nikula @ 2019-09-19 14:03 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
In general, prefer struct drm_i915_private * over struct drm_device *
when either will do. Rename the local variables to i915. No functional
changes.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/display/intel_display.c | 69 ++++++++++----------
drivers/gpu/drm/i915/display/intel_display.h | 4 +-
drivers/gpu/drm/i915/i915_drv.c | 4 +-
3 files changed, 37 insertions(+), 40 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 040ee006b047..78edb5e66cdb 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -4347,7 +4347,7 @@ void intel_finish_reset(struct drm_i915_private *dev_priv)
* so need a full re-initialization.
*/
intel_pps_unlock_regs_wa(dev_priv);
- intel_modeset_init_hw(dev);
+ intel_modeset_init_hw(dev_priv);
intel_init_clock_gating(dev_priv);
spin_lock_irq(&dev_priv->irq_lock);
@@ -15934,13 +15934,11 @@ static void i915_disable_vga(struct drm_i915_private *dev_priv)
POSTING_READ(vga_reg);
}
-void intel_modeset_init_hw(struct drm_device *dev)
+void intel_modeset_init_hw(struct drm_i915_private *i915)
{
- struct drm_i915_private *dev_priv = to_i915(dev);
-
- intel_update_cdclk(dev_priv);
- intel_dump_cdclk_state(&dev_priv->cdclk.hw, "Current CDCLK");
- dev_priv->cdclk.logical = dev_priv->cdclk.actual = dev_priv->cdclk.hw;
+ intel_update_cdclk(i915);
+ intel_dump_cdclk_state(&i915->cdclk.hw, "Current CDCLK");
+ i915->cdclk.logical = i915->cdclk.actual = i915->cdclk.hw;
}
/*
@@ -16144,44 +16142,44 @@ static void intel_mode_config_init(struct drm_i915_private *i915)
}
}
-int intel_modeset_init(struct drm_device *dev)
+int intel_modeset_init(struct drm_i915_private *i915)
{
- struct drm_i915_private *dev_priv = to_i915(dev);
+ struct drm_device *dev = &i915->drm;
enum pipe pipe;
struct intel_crtc *crtc;
int ret;
- dev_priv->modeset_wq = alloc_ordered_workqueue("i915_modeset", 0);
- dev_priv->flip_wq = alloc_workqueue("i915_flip", WQ_HIGHPRI |
- WQ_UNBOUND, WQ_UNBOUND_MAX_ACTIVE);
+ i915->modeset_wq = alloc_ordered_workqueue("i915_modeset", 0);
+ i915->flip_wq = alloc_workqueue("i915_flip", WQ_HIGHPRI |
+ WQ_UNBOUND, WQ_UNBOUND_MAX_ACTIVE);
drm_mode_config_init(dev);
- intel_mode_config_init(dev_priv);
+ intel_mode_config_init(i915);
- ret = intel_bw_init(dev_priv);
+ ret = intel_bw_init(i915);
if (ret)
return ret;
- init_llist_head(&dev_priv->atomic_helper.free_list);
- INIT_WORK(&dev_priv->atomic_helper.free_work,
+ init_llist_head(&i915->atomic_helper.free_list);
+ INIT_WORK(&i915->atomic_helper.free_work,
intel_atomic_helper_free_state_worker);
- intel_init_quirks(dev_priv);
+ intel_init_quirks(i915);
- intel_fbc_init(dev_priv);
+ intel_fbc_init(i915);
- intel_init_pm(dev_priv);
+ intel_init_pm(i915);
- intel_panel_sanitize_ssc(dev_priv);
+ intel_panel_sanitize_ssc(i915);
DRM_DEBUG_KMS("%d display pipe%s available.\n",
- INTEL_NUM_PIPES(dev_priv),
- INTEL_NUM_PIPES(dev_priv) > 1 ? "s" : "");
+ INTEL_NUM_PIPES(i915),
+ INTEL_NUM_PIPES(i915) > 1 ? "s" : "");
- if (HAS_DISPLAY(dev_priv) && INTEL_DISPLAY_ENABLED(dev_priv)) {
- for_each_pipe(dev_priv, pipe) {
- ret = intel_crtc_init(dev_priv, pipe);
+ if (HAS_DISPLAY(i915) && INTEL_DISPLAY_ENABLED(i915)) {
+ for_each_pipe(i915, pipe) {
+ ret = intel_crtc_init(i915, pipe);
if (ret) {
drm_mode_config_cleanup(dev);
return ret;
@@ -16190,19 +16188,19 @@ int intel_modeset_init(struct drm_device *dev)
}
intel_shared_dpll_init(dev);
- intel_update_fdi_pll_freq(dev_priv);
+ intel_update_fdi_pll_freq(i915);
- intel_update_czclk(dev_priv);
- intel_modeset_init_hw(dev);
+ intel_update_czclk(i915);
+ intel_modeset_init_hw(i915);
- intel_hdcp_component_init(dev_priv);
+ intel_hdcp_component_init(i915);
- if (dev_priv->max_cdclk_freq == 0)
- intel_update_max_cdclk(dev_priv);
+ if (i915->max_cdclk_freq == 0)
+ intel_update_max_cdclk(i915);
/* Just disable it once at startup */
- i915_disable_vga(dev_priv);
- intel_setup_outputs(dev_priv);
+ i915_disable_vga(i915);
+ intel_setup_outputs(i915);
drm_modeset_lock_all(dev);
intel_modeset_setup_hw_state(dev, dev->mode_config.acquire_ctx);
@@ -16221,8 +16219,7 @@ int intel_modeset_init(struct drm_device *dev)
* can even allow for smooth boot transitions if the BIOS
* fb is large enough for the active pipe configuration.
*/
- dev_priv->display.get_initial_plane_config(crtc,
- &plane_config);
+ i915->display.get_initial_plane_config(crtc, &plane_config);
/*
* If the fb is shared between multiple heads, we'll
@@ -16236,7 +16233,7 @@ int intel_modeset_init(struct drm_device *dev)
* Note that we need to do this after reconstructing the BIOS fb's
* since the watermark calculation done here will use pstate->fb.
*/
- if (!HAS_GMCH(dev_priv))
+ if (!HAS_GMCH(i915))
sanitize_watermarks(dev);
/*
diff --git a/drivers/gpu/drm/i915/display/intel_display.h b/drivers/gpu/drm/i915/display/intel_display.h
index dfa6291f1f37..0405a74b513c 100644
--- a/drivers/gpu/drm/i915/display/intel_display.h
+++ b/drivers/gpu/drm/i915/display/intel_display.h
@@ -572,8 +572,8 @@ void intel_display_print_error_state(struct drm_i915_error_state_buf *e,
struct intel_display_error_state *error);
/* modesetting */
-void intel_modeset_init_hw(struct drm_device *dev);
-int intel_modeset_init(struct drm_device *dev);
+void intel_modeset_init_hw(struct drm_i915_private *i915);
+int intel_modeset_init(struct drm_i915_private *i915);
void intel_modeset_driver_remove(struct drm_i915_private *i915);
int intel_modeset_vga_set_state(struct drm_i915_private *dev_priv, bool state);
void intel_display_resume(struct drm_device *dev);
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index d9b9e9644f5c..a9ee73b61f4d 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -378,7 +378,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->drm);
+ ret = intel_modeset_init(i915);
if (ret)
goto cleanup_irq;
@@ -1909,7 +1909,7 @@ static int i915_drm_resume(struct drm_device *dev)
i915_gem_resume(dev_priv);
- intel_modeset_init_hw(dev);
+ intel_modeset_init_hw(dev_priv);
intel_init_clock_gating(dev_priv);
spin_lock_irq(&dev_priv->irq_lock);
--
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] 25+ messages in thread
* [PATCH 07/13] drm/i915: split intel_modeset_driver_remove() to pre/post irq uninstall
2019-09-19 14:03 [PATCH 00/13] drm/i915: modeset probe/remove path refactoring Jani Nikula
` (5 preceding siblings ...)
2019-09-19 14:03 ` [PATCH 06/13] drm/i915: pass i915 to intel_modeset_init() and intel_modeset_init_hw() Jani Nikula
@ 2019-09-19 14:03 ` Jani Nikula
2019-09-19 15:35 ` Chris Wilson
2019-09-19 14:03 ` [PATCH 08/13] drm/i915: split i915_driver_modeset_remove() " Jani Nikula
` (7 subsequent siblings)
14 siblings, 1 reply; 25+ messages in thread
From: Jani Nikula @ 2019-09-19 14:03 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
Split intel_modeset_driver_remove() to two, the part with working irqs
before irq uninstall, and the part after irq uninstall.
The error path in i915_driver_modeset_probe() looks obviously weird
after this, but remains as good or broken as it ever was. No functional
changes.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/display/intel_display.c | 14 ++++++--------
drivers/gpu/drm/i915/display/intel_display.h | 1 +
drivers/gpu/drm/i915/i915_drv.c | 5 +++++
3 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 78edb5e66cdb..2c474be4a011 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -17054,21 +17054,19 @@ static void intel_hpd_poll_fini(struct drm_i915_private *i915)
drm_connector_list_iter_end(&conn_iter);
}
-void intel_modeset_driver_remove(struct drm_i915_private *i915)
+/* part #1: call before irq uninstall */
+void intel_modeset_driver_remove_irq(struct drm_i915_private *i915)
{
flush_workqueue(i915->flip_wq);
flush_workqueue(i915->modeset_wq);
flush_work(&i915->atomic_helper.free_work);
WARN_ON(!llist_empty(&i915->atomic_helper.free_list));
+}
- /*
- * Interrupts and polling as the first thing to avoid creating havoc.
- * Too much stuff here (turning of connectors, ...) would
- * experience fancy races otherwise.
- */
- intel_irq_uninstall(i915);
-
+/* part #2: call after irq uninstall */
+void intel_modeset_driver_remove(struct drm_i915_private *i915)
+{
/*
* Due to the hpd irq storm handling the hotplug work can re-arm the
* poll handlers. Hence disable polling after hpd handling is shut down.
diff --git a/drivers/gpu/drm/i915/display/intel_display.h b/drivers/gpu/drm/i915/display/intel_display.h
index 0405a74b513c..1783f4062fc9 100644
--- a/drivers/gpu/drm/i915/display/intel_display.h
+++ b/drivers/gpu/drm/i915/display/intel_display.h
@@ -574,6 +574,7 @@ void intel_display_print_error_state(struct drm_i915_error_state_buf *e,
/* modesetting */
void intel_modeset_init_hw(struct drm_i915_private *i915);
int intel_modeset_init(struct drm_i915_private *i915);
+void intel_modeset_driver_remove_irq(struct drm_i915_private *i915);
void intel_modeset_driver_remove(struct drm_i915_private *i915);
int intel_modeset_vga_set_state(struct drm_i915_private *dev_priv, bool state);
void intel_display_resume(struct drm_device *dev);
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index a9ee73b61f4d..f2af3ba24ce9 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -407,6 +407,7 @@ static int i915_driver_modeset_probe(struct drm_i915_private *i915)
i915_gem_driver_remove(i915);
i915_gem_driver_release(i915);
cleanup_modeset:
+ intel_modeset_driver_remove_irq(i915);
intel_modeset_driver_remove(i915);
cleanup_irq:
intel_irq_uninstall(i915);
@@ -425,6 +426,10 @@ static void i915_driver_modeset_remove(struct drm_i915_private *i915)
{
struct pci_dev *pdev = i915->drm.pdev;
+ intel_modeset_driver_remove_irq(i915);
+
+ intel_irq_uninstall(i915);
+
intel_modeset_driver_remove(i915);
intel_bios_driver_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] 25+ messages in thread
* [PATCH 08/13] drm/i915: split i915_driver_modeset_remove() to pre/post irq uninstall
2019-09-19 14:03 [PATCH 00/13] drm/i915: modeset probe/remove path refactoring Jani Nikula
` (6 preceding siblings ...)
2019-09-19 14:03 ` [PATCH 07/13] drm/i915: split intel_modeset_driver_remove() to pre/post irq uninstall Jani Nikula
@ 2019-09-19 14:03 ` Jani Nikula
2019-09-19 14:03 ` [PATCH 09/13] drm/i915: move gmbus setup down to intel_modeset_init() Jani Nikula
` (6 subsequent siblings)
14 siblings, 0 replies; 25+ messages in thread
From: Jani Nikula @ 2019-09-19 14:03 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
Push irq uninstall further up, by splitting i915_driver_modeset_remove()
to two, the part with working irqs before irq uninstall, and the part
after irq uninstall. No functional changes.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/i915_drv.c | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index f2af3ba24ce9..e10d3ce5db09 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -422,13 +422,16 @@ static int i915_driver_modeset_probe(struct drm_i915_private *i915)
return ret;
}
-static void i915_driver_modeset_remove(struct drm_i915_private *i915)
+/* part #1: call before irq uninstall */
+static void i915_driver_modeset_remove_irq(struct drm_i915_private *i915)
{
- struct pci_dev *pdev = i915->drm.pdev;
-
intel_modeset_driver_remove_irq(i915);
+}
- intel_irq_uninstall(i915);
+/* part #2: call after irq uninstall */
+static void i915_driver_modeset_remove(struct drm_i915_private *i915)
+{
+ struct pci_dev *pdev = i915->drm.pdev;
intel_modeset_driver_remove(i915);
@@ -1624,6 +1627,10 @@ void i915_driver_remove(struct drm_i915_private *i915)
intel_gvt_driver_remove(i915);
+ i915_driver_modeset_remove_irq(i915);
+
+ intel_irq_uninstall(i915);
+
i915_driver_modeset_remove(i915);
/* Free error state after interrupts are fully disabled. */
--
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] 25+ messages in thread
* [PATCH 09/13] drm/i915: move gmbus setup down to intel_modeset_init()
2019-09-19 14:03 [PATCH 00/13] drm/i915: modeset probe/remove path refactoring Jani Nikula
` (7 preceding siblings ...)
2019-09-19 14:03 ` [PATCH 08/13] drm/i915: split i915_driver_modeset_remove() " Jani Nikula
@ 2019-09-19 14:03 ` Jani Nikula
2019-09-19 14:03 ` [PATCH 10/13] drm/i915: split i915_driver_modeset_probe() to pre/post irq install Jani Nikula
` (5 subsequent siblings)
14 siblings, 0 replies; 25+ messages in thread
From: Jani Nikula @ 2019-09-19 14:03 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
Pair the gmbus setup and teardown in the same layer. This also fixes the
double gmbus teardown on the i915_driver_modeset_probe() error path.
Move the gmbus setup a bit later in the sequence to make the follow-up
refactoring easier, and to pinpoint any unexpected consequences of this
change right here, instead of the later refactoring.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/display/intel_display.c | 2 ++
drivers/gpu/drm/i915/i915_drv.c | 4 ----
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 2c474be4a011..902b7fe5adf3 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -16173,6 +16173,8 @@ int intel_modeset_init(struct drm_i915_private *i915)
intel_panel_sanitize_ssc(i915);
+ intel_gmbus_setup(i915);
+
DRM_DEBUG_KMS("%d display pipe%s available.\n",
INTEL_NUM_PIPES(i915),
INTEL_NUM_PIPES(i915) > 1 ? "s" : "");
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index e10d3ce5db09..7a7a1b7d5da2 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -54,7 +54,6 @@
#include "display/intel_display_types.h"
#include "display/intel_dp.h"
#include "display/intel_fbdev.h"
-#include "display/intel_gmbus.h"
#include "display/intel_hotplug.h"
#include "display/intel_overlay.h"
#include "display/intel_pipe_crc.h"
@@ -374,8 +373,6 @@ static int i915_driver_modeset_probe(struct drm_i915_private *i915)
if (ret)
goto cleanup_csr;
- intel_gmbus_setup(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);
@@ -411,7 +408,6 @@ static int i915_driver_modeset_probe(struct drm_i915_private *i915)
intel_modeset_driver_remove(i915);
cleanup_irq:
intel_irq_uninstall(i915);
- intel_gmbus_teardown(i915);
cleanup_csr:
intel_csr_ucode_fini(i915);
intel_power_domains_driver_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] 25+ messages in thread
* [PATCH 10/13] drm/i915: split i915_driver_modeset_probe() to pre/post irq install
2019-09-19 14:03 [PATCH 00/13] drm/i915: modeset probe/remove path refactoring Jani Nikula
` (8 preceding siblings ...)
2019-09-19 14:03 ` [PATCH 09/13] drm/i915: move gmbus setup down to intel_modeset_init() Jani Nikula
@ 2019-09-19 14:03 ` Jani Nikula
2019-09-19 14:03 ` [PATCH 11/13] drm/i915: move gem init up from modeset init Jani Nikula
` (4 subsequent siblings)
14 siblings, 0 replies; 25+ messages in thread
From: Jani Nikula @ 2019-09-19 14:03 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
Pair the irq install and uninstall in the same layer. There are no
functional changes in the happy day scenario. The cleanup paths are
currently a mess though.
Note that modeset probe pre-irq + post-irq install are matched by
modeset driver remove pre-irq + post-irq uninstall, together, but not
independently. They are not symmetric pairs.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/i915_drv.c | 41 +++++++++++++++++++++++----------
1 file changed, 29 insertions(+), 12 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 7a7a1b7d5da2..30b0548a5648 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -328,6 +328,7 @@ static const struct vga_switcheroo_client_ops i915_switcheroo_ops = {
.can_switch = i915_switcheroo_can_switch,
};
+/* part #1: call before irq install */
static int i915_driver_modeset_probe(struct drm_i915_private *i915)
{
struct pci_dev *pdev = i915->drm.pdev;
@@ -369,15 +370,27 @@ static int i915_driver_modeset_probe(struct drm_i915_private *i915)
intel_csr_ucode_init(i915);
- ret = intel_irq_install(i915);
- if (ret)
- goto cleanup_csr;
+ return 0;
+
+cleanup_vga_client:
+ vga_client_register(pdev, NULL, NULL, NULL);
+out:
+ return ret;
+}
+
+/* part #2: call after irq install */
+static int i915_driver_modeset_probe_irq(struct drm_i915_private *i915)
+{
+ int ret;
+
+ if (i915_inject_probe_failure(i915))
+ return -ENODEV;
/* 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);
if (ret)
- goto cleanup_irq;
+ goto out;
ret = i915_gem_init(i915);
if (ret)
@@ -406,14 +419,6 @@ static int i915_driver_modeset_probe(struct drm_i915_private *i915)
cleanup_modeset:
intel_modeset_driver_remove_irq(i915);
intel_modeset_driver_remove(i915);
-cleanup_irq:
- intel_irq_uninstall(i915);
-cleanup_csr:
- intel_csr_ucode_fini(i915);
- intel_power_domains_driver_remove(i915);
- vga_switcheroo_unregister_client(pdev);
-cleanup_vga_client:
- vga_client_register(pdev, NULL, NULL, NULL);
out:
return ret;
}
@@ -1577,6 +1582,14 @@ int i915_driver_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
if (ret < 0)
goto out_cleanup_hw;
+ ret = intel_irq_install(dev_priv);
+ if (ret)
+ goto out_cleanup_modeset;
+
+ ret = i915_driver_modeset_probe_irq(dev_priv);
+ if (ret < 0)
+ goto out_cleanup_irq;
+
i915_driver_register(dev_priv);
enable_rpm_wakeref_asserts(&dev_priv->runtime_pm);
@@ -1585,6 +1598,10 @@ int i915_driver_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
return 0;
+out_cleanup_irq:
+ intel_irq_uninstall(dev_priv);
+out_cleanup_modeset:
+ /* FIXME */
out_cleanup_hw:
i915_driver_hw_remove(dev_priv);
i915_ggtt_driver_release(dev_priv);
--
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] 25+ messages in thread
* [PATCH 11/13] drm/i915: move gem init up from modeset init
2019-09-19 14:03 [PATCH 00/13] drm/i915: modeset probe/remove path refactoring Jani Nikula
` (9 preceding siblings ...)
2019-09-19 14:03 ` [PATCH 10/13] drm/i915: split i915_driver_modeset_probe() to pre/post irq install Jani Nikula
@ 2019-09-19 14:03 ` Jani Nikula
2019-09-19 14:16 ` Chris Wilson
2019-09-19 14:03 ` [PATCH 12/13] drm/i915: push intel_overlay_init() down to intel_modeset_init() Jani Nikula
` (3 subsequent siblings)
14 siblings, 1 reply; 25+ messages in thread
From: Jani Nikula @ 2019-09-19 14:03 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
Pair the gem init and cleanup in the same layer. This moves the gem init
before the modeset init.
The error paths remain a mess.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/i915_drv.c | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 30b0548a5648..27613f497a46 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -392,10 +392,6 @@ static int i915_driver_modeset_probe_irq(struct drm_i915_private *i915)
if (ret)
goto out;
- ret = i915_gem_init(i915);
- if (ret)
- goto cleanup_modeset;
-
intel_overlay_setup(i915);
if (!HAS_DISPLAY(i915) || !INTEL_DISPLAY_ENABLED(i915))
@@ -403,7 +399,7 @@ static int i915_driver_modeset_probe_irq(struct drm_i915_private *i915)
ret = intel_fbdev_init(&i915->drm);
if (ret)
- goto cleanup_gem;
+ goto cleanup_modeset;
/* Only enable hotplug handling once the fbdev is fully set up. */
intel_hpd_init(i915);
@@ -412,10 +408,6 @@ static int i915_driver_modeset_probe_irq(struct drm_i915_private *i915)
return 0;
-cleanup_gem:
- i915_gem_suspend(i915);
- i915_gem_driver_remove(i915);
- i915_gem_driver_release(i915);
cleanup_modeset:
intel_modeset_driver_remove_irq(i915);
intel_modeset_driver_remove(i915);
@@ -1586,9 +1578,13 @@ int i915_driver_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
if (ret)
goto out_cleanup_modeset;
+ ret = i915_gem_init(dev_priv);
+ if (ret)
+ goto out_cleanup_irq;
+
ret = i915_driver_modeset_probe_irq(dev_priv);
if (ret < 0)
- goto out_cleanup_irq;
+ goto out_cleanup_gem;
i915_driver_register(dev_priv);
@@ -1598,6 +1594,10 @@ int i915_driver_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
return 0;
+out_cleanup_gem:
+ i915_gem_suspend(dev_priv);
+ i915_gem_driver_remove(dev_priv);
+ i915_gem_driver_release(dev_priv);
out_cleanup_irq:
intel_irq_uninstall(dev_priv);
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] 25+ messages in thread
* [PATCH 12/13] drm/i915: push intel_overlay_init() down to intel_modeset_init()
2019-09-19 14:03 [PATCH 00/13] drm/i915: modeset probe/remove path refactoring Jani Nikula
` (10 preceding siblings ...)
2019-09-19 14:03 ` [PATCH 11/13] drm/i915: move gem init up from modeset init Jani Nikula
@ 2019-09-19 14:03 ` Jani Nikula
2019-09-19 14:04 ` [PATCH 13/13] drm/i915: split intel_modeset_init() to pre/post irq install Jani Nikula
` (2 subsequent siblings)
14 siblings, 0 replies; 25+ messages in thread
From: Jani Nikula @ 2019-09-19 14:03 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
Pair the overlay init and fini in the same layer. No functional changes.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/display/intel_display.c | 2 ++
drivers/gpu/drm/i915/i915_drv.c | 2 --
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 902b7fe5adf3..902c4cc033cd 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -16248,6 +16248,8 @@ int intel_modeset_init(struct drm_i915_private *i915)
if (ret)
DRM_DEBUG_KMS("Initial commit in probe failed.\n");
+ intel_overlay_setup(i915);
+
return 0;
}
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 27613f497a46..c14b468384ec 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -392,8 +392,6 @@ static int i915_driver_modeset_probe_irq(struct drm_i915_private *i915)
if (ret)
goto out;
- intel_overlay_setup(i915);
-
if (!HAS_DISPLAY(i915) || !INTEL_DISPLAY_ENABLED(i915))
return 0;
--
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] 25+ messages in thread
* [PATCH 13/13] drm/i915: split intel_modeset_init() to pre/post irq install
2019-09-19 14:03 [PATCH 00/13] drm/i915: modeset probe/remove path refactoring Jani Nikula
` (11 preceding siblings ...)
2019-09-19 14:03 ` [PATCH 12/13] drm/i915: push intel_overlay_init() down to intel_modeset_init() Jani Nikula
@ 2019-09-19 14:04 ` Jani Nikula
2019-09-19 16:57 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915: modeset probe/remove path refactoring Patchwork
2019-09-19 17:31 ` ✗ Fi.CI.BAT: failure " Patchwork
14 siblings, 0 replies; 25+ messages in thread
From: Jani Nikula @ 2019-09-19 14:04 UTC (permalink / raw)
To: intel-gfx; +Cc: jani.nikula
Move some of the modeset init that does not require irqs installed or
gem initialized to before irq install and gem init.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/display/intel_display.c | 14 ++++++++++++--
drivers/gpu/drm/i915/display/intel_display.h | 1 +
drivers/gpu/drm/i915/i915_drv.c | 8 +++++++-
3 files changed, 20 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 902c4cc033cd..7d294a6b76ce 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -16142,11 +16142,10 @@ static void intel_mode_config_init(struct drm_i915_private *i915)
}
}
+/* part #1: call before irq install (and gem init) */
int intel_modeset_init(struct drm_i915_private *i915)
{
struct drm_device *dev = &i915->drm;
- enum pipe pipe;
- struct intel_crtc *crtc;
int ret;
i915->modeset_wq = alloc_ordered_workqueue("i915_modeset", 0);
@@ -16169,6 +16168,17 @@ int intel_modeset_init(struct drm_i915_private *i915)
intel_fbc_init(i915);
+ return 0;
+}
+
+/* part #2: call after irq install (and gem init) */
+int intel_modeset_init_irq(struct drm_i915_private *i915)
+{
+ struct drm_device *dev = &i915->drm;
+ enum pipe pipe;
+ struct intel_crtc *crtc;
+ int ret;
+
intel_init_pm(i915);
intel_panel_sanitize_ssc(i915);
diff --git a/drivers/gpu/drm/i915/display/intel_display.h b/drivers/gpu/drm/i915/display/intel_display.h
index 1783f4062fc9..5d5e3afec30e 100644
--- a/drivers/gpu/drm/i915/display/intel_display.h
+++ b/drivers/gpu/drm/i915/display/intel_display.h
@@ -574,6 +574,7 @@ void intel_display_print_error_state(struct drm_i915_error_state_buf *e,
/* modesetting */
void intel_modeset_init_hw(struct drm_i915_private *i915);
int intel_modeset_init(struct drm_i915_private *i915);
+int intel_modeset_init_irq(struct drm_i915_private *i915);
void intel_modeset_driver_remove_irq(struct drm_i915_private *i915);
void intel_modeset_driver_remove(struct drm_i915_private *i915);
int intel_modeset_vga_set_state(struct drm_i915_private *dev_priv, bool state);
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index c14b468384ec..8e28b690d406 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -370,8 +370,14 @@ static int i915_driver_modeset_probe(struct drm_i915_private *i915)
intel_csr_ucode_init(i915);
+ ret = intel_modeset_init(i915);
+ if (ret)
+ goto cleanup_vga_switcheroo;
+
return 0;
+cleanup_vga_switcheroo:
+ vga_switcheroo_unregister_client(pdev);
cleanup_vga_client:
vga_client_register(pdev, NULL, NULL, NULL);
out:
@@ -388,7 +394,7 @@ static int i915_driver_modeset_probe_irq(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_irq(i915);
if (ret)
goto out;
--
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] 25+ messages in thread
* ✗ Fi.CI.CHECKPATCH: warning for drm/i915: modeset probe/remove path refactoring
2019-09-19 14:03 [PATCH 00/13] drm/i915: modeset probe/remove path refactoring Jani Nikula
` (12 preceding siblings ...)
2019-09-19 14:04 ` [PATCH 13/13] drm/i915: split intel_modeset_init() to pre/post irq install Jani Nikula
@ 2019-09-19 16:57 ` Patchwork
2019-09-19 17:31 ` ✗ Fi.CI.BAT: failure " Patchwork
14 siblings, 0 replies; 25+ messages in thread
From: Patchwork @ 2019-09-19 16:57 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: modeset probe/remove path refactoring
URL : https://patchwork.freedesktop.org/series/66933/
State : warning
== Summary ==
$ dim checkpatch origin/drm-tip
37407ee77e3d drm/i915: add i915_driver_modeset_remove()
5016ea3f0226 drm/i915: pass i915 to i915_driver_modeset_probe()
230ab4296a91 drm/i915: pass i915 to intel_modeset_driver_remove()
227452593bb4 drm/i915: abstract intel_panel_sanitize_ssc() from intel_modeset_init()
f04862dad433 drm/i915: abstract intel_mode_config_init() from intel_modeset_init()
7a87160b1d95 drm/i915: pass i915 to intel_modeset_init() and intel_modeset_init_hw()
-:41: CHECK:MULTIPLE_ASSIGNMENTS: multiple assignments should be avoided
#41: FILE: drivers/gpu/drm/i915/display/intel_display.c:15941:
+ i915->cdclk.logical = i915->cdclk.actual = i915->cdclk.hw;
total: 0 errors, 0 warnings, 1 checks, 157 lines checked
e0459be19648 drm/i915: split intel_modeset_driver_remove() to pre/post irq uninstall
e0eb1b51f555 drm/i915: split i915_driver_modeset_remove() to pre/post irq uninstall
f0a41239fe53 drm/i915: move gmbus setup down to intel_modeset_init()
85080c6aac7b drm/i915: split i915_driver_modeset_probe() to pre/post irq install
8c367f018a9a drm/i915: move gem init up from modeset init
1fa3f203cbe7 drm/i915: push intel_overlay_init() down to intel_modeset_init()
2f5e328c7f2d drm/i915: split intel_modeset_init() to pre/post irq install
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 25+ messages in thread
* ✗ Fi.CI.BAT: failure for drm/i915: modeset probe/remove path refactoring
2019-09-19 14:03 [PATCH 00/13] drm/i915: modeset probe/remove path refactoring Jani Nikula
` (13 preceding siblings ...)
2019-09-19 16:57 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915: modeset probe/remove path refactoring Patchwork
@ 2019-09-19 17:31 ` Patchwork
14 siblings, 0 replies; 25+ messages in thread
From: Patchwork @ 2019-09-19 17:31 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: modeset probe/remove path refactoring
URL : https://patchwork.freedesktop.org/series/66933/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_6922 -> Patchwork_14457
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with Patchwork_14457 absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_14457, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_14457:
### IGT changes ###
#### Possible regressions ####
* igt@i915_pm_rpm@module-reload:
- fi-icl-u3: [PASS][1] -> [SKIP][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-icl-u3/igt@i915_pm_rpm@module-reload.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-icl-u3/igt@i915_pm_rpm@module-reload.html
- fi-cml-u2: [PASS][3] -> [SKIP][4]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-cml-u2/igt@i915_pm_rpm@module-reload.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-cml-u2/igt@i915_pm_rpm@module-reload.html
* igt@i915_pm_rps@basic-api:
- fi-bsw-kefka: [PASS][5] -> [INCOMPLETE][6]
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-bsw-kefka/igt@i915_pm_rps@basic-api.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-bsw-kefka/igt@i915_pm_rps@basic-api.html
- fi-bsw-n3050: [PASS][7] -> [INCOMPLETE][8]
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-bsw-n3050/igt@i915_pm_rps@basic-api.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-bsw-n3050/igt@i915_pm_rps@basic-api.html
* igt@runner@aborted:
- fi-byt-j1900: NOTRUN -> [FAIL][9]
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-byt-j1900/igt@runner@aborted.html
- fi-bsw-n3050: NOTRUN -> [FAIL][10]
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-bsw-n3050/igt@runner@aborted.html
- fi-bsw-kefka: NOTRUN -> [FAIL][11]
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-bsw-kefka/igt@runner@aborted.html
- fi-byt-n2820: NOTRUN -> [FAIL][12]
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-byt-n2820/igt@runner@aborted.html
#### Warnings ####
* igt@i915_pm_rpm@module-reload:
- fi-icl-u2: [DMESG-WARN][13] ([fdo#110595]) -> [SKIP][14]
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-icl-u2/igt@i915_pm_rpm@module-reload.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-icl-u2/igt@i915_pm_rpm@module-reload.html
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* igt@i915_pm_rpm@module-reload:
- {fi-icl-dsi}: NOTRUN -> [SKIP][15]
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-icl-dsi/igt@i915_pm_rpm@module-reload.html
- {fi-cml-s}: [PASS][16] -> [SKIP][17]
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-cml-s/igt@i915_pm_rpm@module-reload.html
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-cml-s/igt@i915_pm_rpm@module-reload.html
- {fi-cml-h}: [PASS][18] -> [SKIP][19]
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-cml-h/igt@i915_pm_rpm@module-reload.html
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-cml-h/igt@i915_pm_rpm@module-reload.html
Known issues
------------
Here are the changes found in Patchwork_14457 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_exec_suspend@basic:
- fi-icl-u2: [PASS][20] -> [FAIL][21] ([fdo#111699])
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-icl-u2/igt@gem_exec_suspend@basic.html
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-icl-u2/igt@gem_exec_suspend@basic.html
* igt@gem_exec_suspend@basic-s3:
- fi-blb-e6850: [PASS][22] -> [INCOMPLETE][23] ([fdo#107718])
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-blb-e6850/igt@gem_exec_suspend@basic-s3.html
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-blb-e6850/igt@gem_exec_suspend@basic-s3.html
* igt@gem_flink_basic@bad-flink:
- fi-icl-u3: [PASS][24] -> [DMESG-WARN][25] ([fdo#107724]) +2 similar issues
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-icl-u3/igt@gem_flink_basic@bad-flink.html
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-icl-u3/igt@gem_flink_basic@bad-flink.html
* igt@i915_pm_rpm@module-reload:
- fi-cfl-8700k: [PASS][26] -> [SKIP][27] ([fdo#109271])
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-cfl-8700k/igt@i915_pm_rpm@module-reload.html
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-cfl-8700k/igt@i915_pm_rpm@module-reload.html
- fi-kbl-x1275: [PASS][28] -> [SKIP][29] ([fdo#109271])
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-kbl-x1275/igt@i915_pm_rpm@module-reload.html
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-kbl-x1275/igt@i915_pm_rpm@module-reload.html
- fi-skl-guc: [PASS][30] -> [SKIP][31] ([fdo#109271])
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-skl-guc/igt@i915_pm_rpm@module-reload.html
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-skl-guc/igt@i915_pm_rpm@module-reload.html
- fi-cfl-guc: [PASS][32] -> [SKIP][33] ([fdo#109271])
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-cfl-guc/igt@i915_pm_rpm@module-reload.html
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-cfl-guc/igt@i915_pm_rpm@module-reload.html
- fi-skl-iommu: [PASS][34] -> [SKIP][35] ([fdo#109271])
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-skl-iommu/igt@i915_pm_rpm@module-reload.html
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-skl-iommu/igt@i915_pm_rpm@module-reload.html
- fi-whl-u: [PASS][36] -> [SKIP][37] ([fdo#109271])
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-whl-u/igt@i915_pm_rpm@module-reload.html
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-whl-u/igt@i915_pm_rpm@module-reload.html
- fi-skl-6260u: [PASS][38] -> [SKIP][39] ([fdo#109271])
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-skl-6260u/igt@i915_pm_rpm@module-reload.html
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-skl-6260u/igt@i915_pm_rpm@module-reload.html
- fi-skl-6770hq: [PASS][40] -> [SKIP][41] ([fdo#109271])
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html
- fi-bdw-5557u: [PASS][42] -> [SKIP][43] ([fdo#109271])
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-bdw-5557u/igt@i915_pm_rpm@module-reload.html
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-bdw-5557u/igt@i915_pm_rpm@module-reload.html
- fi-kbl-r: [PASS][44] -> [SKIP][45] ([fdo#109271])
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-kbl-r/igt@i915_pm_rpm@module-reload.html
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-kbl-r/igt@i915_pm_rpm@module-reload.html
- fi-apl-guc: [PASS][46] -> [SKIP][47] ([fdo#109271])
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-apl-guc/igt@i915_pm_rpm@module-reload.html
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-apl-guc/igt@i915_pm_rpm@module-reload.html
- fi-hsw-peppy: [PASS][48] -> [SKIP][49] ([fdo#109271])
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-hsw-peppy/igt@i915_pm_rpm@module-reload.html
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-hsw-peppy/igt@i915_pm_rpm@module-reload.html
- fi-cfl-8109u: [PASS][50] -> [SKIP][51] ([fdo#109271])
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-cfl-8109u/igt@i915_pm_rpm@module-reload.html
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-cfl-8109u/igt@i915_pm_rpm@module-reload.html
- fi-skl-6600u: [PASS][52] -> [SKIP][53] ([fdo#109271])
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-skl-6600u/igt@i915_pm_rpm@module-reload.html
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-skl-6600u/igt@i915_pm_rpm@module-reload.html
- fi-skl-6700k2: [PASS][54] -> [SKIP][55] ([fdo#109271])
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-skl-6700k2/igt@i915_pm_rpm@module-reload.html
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-skl-6700k2/igt@i915_pm_rpm@module-reload.html
- fi-bxt-dsi: [PASS][56] -> [SKIP][57] ([fdo#109271])
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-bxt-dsi/igt@i915_pm_rpm@module-reload.html
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-bxt-dsi/igt@i915_pm_rpm@module-reload.html
- fi-kbl-guc: [PASS][58] -> [SKIP][59] ([fdo#109271])
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-kbl-guc/igt@i915_pm_rpm@module-reload.html
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-kbl-guc/igt@i915_pm_rpm@module-reload.html
- fi-kbl-7500u: [PASS][60] -> [SKIP][61] ([fdo#109271])
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-kbl-7500u/igt@i915_pm_rpm@module-reload.html
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-kbl-7500u/igt@i915_pm_rpm@module-reload.html
- fi-hsw-4770: [PASS][62] -> [SKIP][63] ([fdo#109271])
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-hsw-4770/igt@i915_pm_rpm@module-reload.html
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-hsw-4770/igt@i915_pm_rpm@module-reload.html
- fi-kbl-8809g: [PASS][64] -> [SKIP][65] ([fdo#109271])
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-kbl-8809g/igt@i915_pm_rpm@module-reload.html
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-kbl-8809g/igt@i915_pm_rpm@module-reload.html
- fi-glk-dsi: [PASS][66] -> [SKIP][67] ([fdo#109271])
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-glk-dsi/igt@i915_pm_rpm@module-reload.html
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-glk-dsi/igt@i915_pm_rpm@module-reload.html
* igt@i915_pm_rps@basic-api:
- fi-byt-n2820: [PASS][68] -> [INCOMPLETE][69] ([fdo#102657])
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-byt-n2820/igt@i915_pm_rps@basic-api.html
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-byt-n2820/igt@i915_pm_rps@basic-api.html
#### Possible fixes ####
* igt@gem_ctx_create@basic-files:
- {fi-icl-dsi}: [INCOMPLETE][70] ([fdo#107713] / [fdo#109100]) -> [PASS][71]
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-icl-dsi/igt@gem_ctx_create@basic-files.html
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-icl-dsi/igt@gem_ctx_create@basic-files.html
* igt@gem_render_tiled_blits@basic:
- {fi-tgl-u2}: [FAIL][72] ([fdo#111739]) -> [PASS][73]
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-tgl-u2/igt@gem_render_tiled_blits@basic.html
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-tgl-u2/igt@gem_render_tiled_blits@basic.html
- {fi-tgl-u}: [FAIL][74] ([fdo#111739]) -> [PASS][75]
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-tgl-u/igt@gem_render_tiled_blits@basic.html
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-tgl-u/igt@gem_render_tiled_blits@basic.html
* igt@gem_ringfill@basic-default-interruptible:
- fi-icl-u3: [DMESG-WARN][76] ([fdo#107724]) -> [PASS][77] +1 similar issue
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-icl-u3/igt@gem_ringfill@basic-default-interruptible.html
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-icl-u3/igt@gem_ringfill@basic-default-interruptible.html
* igt@kms_chamelium@hdmi-hpd-fast:
- fi-kbl-7500u: [FAIL][78] ([fdo#111407]) -> [PASS][79]
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6922/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#102657]: https://bugs.freedesktop.org/show_bug.cgi?id=102657
[fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
[fdo#105602]: https://bugs.freedesktop.org/show_bug.cgi?id=105602
[fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
[fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
[fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
[fdo#109100]: https://bugs.freedesktop.org/show_bug.cgi?id=109100
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#110595]: https://bugs.freedesktop.org/show_bug.cgi?id=110595
[fdo#111045]: https://bugs.freedesktop.org/show_bug.cgi?id=111045
[fdo#111407]: https://bugs.freedesktop.org/show_bug.cgi?id=111407
[fdo#111562]: https://bugs.freedesktop.org/show_bug.cgi?id=111562
[fdo#111597]: https://bugs.freedesktop.org/show_bug.cgi?id=111597
[fdo#111699]: https://bugs.freedesktop.org/show_bug.cgi?id=111699
[fdo#111714]: https://bugs.freedesktop.org/show_bug.cgi?id=111714
[fdo#111739]: https://bugs.freedesktop.org/show_bug.cgi?id=111739
Participating hosts (52 -> 47)
------------------------------
Additional (2): fi-byt-j1900 fi-skl-lmem
Missing (7): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-icl-y fi-byt-clapper fi-bdw-samus
Build changes
-------------
* CI: CI-20190529 -> None
* Linux: CI_DRM_6922 -> Patchwork_14457
CI-20190529: 20190529
CI_DRM_6922: 7b7c676b955df3648fbad9d0ffd1f123ec3feeb5 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_5193: 924e5c59dbb82938e743efd6b0812eeb5760b70d @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_14457: 2f5e328c7f2d83650190c765ac38cff53ffdb8ec @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
2f5e328c7f2d drm/i915: split intel_modeset_init() to pre/post irq install
1fa3f203cbe7 drm/i915: push intel_overlay_init() down to intel_modeset_init()
8c367f018a9a drm/i915: move gem init up from modeset init
85080c6aac7b drm/i915: split i915_driver_modeset_probe() to pre/post irq install
f0a41239fe53 drm/i915: move gmbus setup down to intel_modeset_init()
e0eb1b51f555 drm/i915: split i915_driver_modeset_remove() to pre/post irq uninstall
e0459be19648 drm/i915: split intel_modeset_driver_remove() to pre/post irq uninstall
7a87160b1d95 drm/i915: pass i915 to intel_modeset_init() and intel_modeset_init_hw()
f04862dad433 drm/i915: abstract intel_mode_config_init() from intel_modeset_init()
227452593bb4 drm/i915: abstract intel_panel_sanitize_ssc() from intel_modeset_init()
230ab4296a91 drm/i915: pass i915 to intel_modeset_driver_remove()
5016ea3f0226 drm/i915: pass i915 to i915_driver_modeset_probe()
37407ee77e3d drm/i915: add i915_driver_modeset_remove()
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14457/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 25+ messages in thread