All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/13] drm/i915: modeset probe/remove path refactoring
@ 2019-09-19 14:03 Jani Nikula
  2019-09-19 14:03 ` [PATCH 01/13] drm/i915: add i915_driver_modeset_remove() Jani Nikula
                   ` (14 more replies)
  0 siblings, 15 replies; 25+ messages in thread
From: Jani Nikula @ 2019-09-19 14:03 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Hi all, I started looking into cleaning up the modeset probe/remove
paths. We have a number of issues there. Modeset and non-modeset
initialization and cleanup happily mixed up. Initialization and cleanup
of various things happen at different layers in the stack.

This is tied to the previous patches on display disable / no display.

The first 6 patches are really straightforward cleanup. Then things
start getting interesting. In general I'm trying to split the
init/cleanup to parts before and after irq&gem init/cleanup, so that we
can have the irq&gem stuff at the higher level of i915 probe instead of
in modeset code.

There are several levels of ugliness associated with this. First,
naming. (Door open for bikeshedding, yay.) Second, the split init and
cleanup are not symmetrical. The init before irq installed does not
match the cleanup after irq uninstalled, for various reasons. This is
not so bad for overall probe and driver remove in general, but: Third,
the probe failure paths are a total mess. They are already now, in many
ways, but this doesn't really help, either. So I'm not sure this should
be a blocker, but it's not pretty.

BR,
Jani.


Jani Nikula (13):
  drm/i915: add i915_driver_modeset_remove()
  drm/i915: pass i915 to i915_driver_modeset_probe()
  drm/i915: pass i915 to intel_modeset_driver_remove()
  drm/i915: abstract intel_panel_sanitize_ssc() from
    intel_modeset_init()
  drm/i915: abstract intel_mode_config_init() from intel_modeset_init()
  drm/i915: pass i915 to intel_modeset_init() and
    intel_modeset_init_hw()
  drm/i915: split intel_modeset_driver_remove() to pre/post irq
    uninstall
  drm/i915: split i915_driver_modeset_remove() to pre/post irq uninstall
  drm/i915: move gmbus setup down to intel_modeset_init()
  drm/i915: split i915_driver_modeset_probe() to pre/post irq install
  drm/i915: move gem init up from modeset init
  drm/i915: push intel_overlay_init() down to intel_modeset_init()
  drm/i915: split intel_modeset_init() to pre/post irq install

 drivers/gpu/drm/i915/display/intel_display.c | 249 ++++++++++---------
 drivers/gpu/drm/i915/display/intel_display.h |   8 +-
 drivers/gpu/drm/i915/i915_drv.c              | 139 +++++++----
 3 files changed, 225 insertions(+), 171 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] 25+ messages in thread

* [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

* [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

* [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

* Re: [PATCH 11/13] drm/i915: move gem init up from modeset init
  2019-09-19 14:03 ` [PATCH 11/13] drm/i915: move gem init up from modeset init Jani Nikula
@ 2019-09-19 14:16   ` Chris Wilson
  2019-09-19 14:40     ` Jani Nikula
  0 siblings, 1 reply; 25+ messages in thread
From: Chris Wilson @ 2019-09-19 14:16 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Quoting Jani Nikula (2019-09-19 15:03:58)
> Pair the gem init and cleanup in the same layer. This moves the gem init
> before the modeset init.

The important part here was that BIOS takeover by display is before we
clear the GGTT in i915_gem_init -> i915_init_ggtt. iirc marking up the
preallocated GGTT ranges is in intel_modeset_init.
-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

* Re: [PATCH 11/13] drm/i915: move gem init up from modeset init
  2019-09-19 14:16   ` Chris Wilson
@ 2019-09-19 14:40     ` Jani Nikula
  0 siblings, 0 replies; 25+ messages in thread
From: Jani Nikula @ 2019-09-19 14:40 UTC (permalink / raw)
  To: Chris Wilson, intel-gfx

On Thu, 19 Sep 2019, Chris Wilson <chris@chris-wilson.co.uk> wrote:
> Quoting Jani Nikula (2019-09-19 15:03:58)
>> Pair the gem init and cleanup in the same layer. This moves the gem init
>> before the modeset init.
>
> The important part here was that BIOS takeover by display is before we
> clear the GGTT in i915_gem_init -> i915_init_ggtt. iirc marking up the
> preallocated GGTT ranges is in intel_modeset_init.

Aww, thanks. More dragons to tame.

BR,
Jani.



-- 
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] 25+ messages in thread

* Re: [PATCH 01/13] drm/i915: add i915_driver_modeset_remove()
  2019-09-19 14:03 ` [PATCH 01/13] drm/i915: add i915_driver_modeset_remove() Jani Nikula
@ 2019-09-19 15:29   ` Chris Wilson
  0 siblings, 0 replies; 25+ messages in thread
From: Chris Wilson @ 2019-09-19 15:29 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Quoting Jani Nikula (2019-09-19 15:03:48)
> 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>
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

* Re: [PATCH 02/13] drm/i915: pass i915 to i915_driver_modeset_probe()
  2019-09-19 14:03 ` [PATCH 02/13] drm/i915: pass i915 to i915_driver_modeset_probe() Jani Nikula
@ 2019-09-19 15:29   ` Chris Wilson
  0 siblings, 0 replies; 25+ messages in thread
From: Chris Wilson @ 2019-09-19 15:29 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Quoting Jani Nikula (2019-09-19 15:03:49)
> 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>
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

* Re: [PATCH 03/13] drm/i915: pass i915 to intel_modeset_driver_remove()
  2019-09-19 14:03 ` [PATCH 03/13] drm/i915: pass i915 to intel_modeset_driver_remove() Jani Nikula
@ 2019-09-19 15:29   ` Chris Wilson
  0 siblings, 0 replies; 25+ messages in thread
From: Chris Wilson @ 2019-09-19 15:29 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Quoting Jani Nikula (2019-09-19 15:03:50)
> 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>
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

* 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

* 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

* Re: [PATCH 06/13] drm/i915: pass i915 to intel_modeset_init() and intel_modeset_init_hw()
  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 15:33   ` Chris Wilson
  0 siblings, 0 replies; 25+ messages in thread
From: Chris Wilson @ 2019-09-19 15:33 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Quoting Jani Nikula (2019-09-19 15:03:53)
> 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>
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

* Re: [PATCH 07/13] drm/i915: split intel_modeset_driver_remove() to pre/post irq uninstall
  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 15:35   ` Chris Wilson
  0 siblings, 0 replies; 25+ messages in thread
From: Chris Wilson @ 2019-09-19 15:35 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Quoting Jani Nikula (2019-09-19 15:03:54)
> 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>

Memory says _noirq is used by pm code as having irqs available is the
norm.
-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

* ✗ 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

end of thread, other threads:[~2019-09-19 17:31 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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 15:29   ` Chris Wilson
2019-09-19 14:03 ` [PATCH 02/13] drm/i915: pass i915 to i915_driver_modeset_probe() 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
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
2019-09-19 15:31   ` Chris Wilson
2019-09-19 14:03 ` [PATCH 05/13] drm/i915: abstract intel_mode_config_init() " 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
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
2019-09-19 15:35   ` Chris Wilson
2019-09-19 14:03 ` [PATCH 08/13] drm/i915: split i915_driver_modeset_remove() " Jani Nikula
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 ` [PATCH 10/13] drm/i915: split i915_driver_modeset_probe() to pre/post irq install Jani Nikula
2019-09-19 14:03 ` [PATCH 11/13] drm/i915: move gem init up from modeset init Jani Nikula
2019-09-19 14:16   ` Chris Wilson
2019-09-19 14:40     ` Jani Nikula
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 ` [PATCH 13/13] drm/i915: split intel_modeset_init() to pre/post irq install 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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.