All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sagar Arun Kamble <sagar.a.kamble@intel.com>
To: intel-gfx@lists.freedesktop.org
Subject: drm/i915: Remove RPM suspend dependency on rps.enabled and related changes
Date: Sat, 20 Aug 2016 10:39:00 +0530	[thread overview]
Message-ID: <1471669765-5935-2-git-send-email-sagar.a.kamble@intel.com> (raw)
In-Reply-To: <1471669765-5935-1-git-send-email-sagar.a.kamble@intel.com>

For Gen9, RPM suspend is failing if rps.enabled=false. This is needed for
other platforms as RC6 and RPS enabling is indicated by rps.enabled.
RPM Suspend depends only on RC6, so we need to remove the check of rps.enabled.
For Gen9 RC6 and RPS enabling is separated hence do rps.enabled check only
for non-Gen9 platforms. Once RC6 and RPS enabling is separated for other GENs
this check can be completely removed.
Moved setting of rps.enabled to platform level functions as there is case of
disabling of RPS in gen9_enable_rps.

Signed-off-by: Sagar Arun Kamble <sagar.a.kamble@intel.com>
---
 drivers/gpu/drm/i915/i915_drv.c | 10 +++++++++-
 drivers/gpu/drm/i915/intel_pm.c | 20 ++++++++++++++++++--
 2 files changed, 27 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 13ae340..bc2c67b 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -2284,9 +2284,17 @@ static int intel_runtime_suspend(struct device *device)
 	struct drm_i915_private *dev_priv = to_i915(dev);
 	int ret;
 
-	if (WARN_ON_ONCE(!(dev_priv->rps.enabled && intel_enable_rc6())))
+	if (WARN_ON_ONCE(!intel_enable_rc6()))
 		return -ENODEV;
 
+	/*
+	 * Once RC6 and RPS enabling is separated for non-GEN9 platforms
+	 * below check should be removed.
+	*/
+	if (!IS_GEN9(dev))
+		if (WARN_ON_ONCE(!dev_priv->rps.enabled))
+			return -ENODEV;
+
 	if (WARN_ON_ONCE(!HAS_RUNTIME_PM(dev)))
 		return -ENODEV;
 
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 99014d7..954e332 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -4966,6 +4966,7 @@ static void gen9_disable_rc6(struct drm_i915_private *dev_priv)
 static void gen9_disable_rps(struct drm_i915_private *dev_priv)
 {
 	I915_WRITE(GEN6_RP_CONTROL, 0);
+	dev_priv->rps.enabled = false;
 }
 
 static void gen6_disable_rps(struct drm_i915_private *dev_priv)
@@ -4973,11 +4974,16 @@ static void gen6_disable_rps(struct drm_i915_private *dev_priv)
 	I915_WRITE(GEN6_RC_CONTROL, 0);
 	I915_WRITE(GEN6_RPNSWREQ, 1 << 31);
 	I915_WRITE(GEN6_RP_CONTROL, 0);
+
+	dev_priv->rps.enabled = false;
+
 }
 
 static void cherryview_disable_rps(struct drm_i915_private *dev_priv)
 {
 	I915_WRITE(GEN6_RC_CONTROL, 0);
+
+	dev_priv->rps.enabled = false;
 }
 
 static void valleyview_disable_rps(struct drm_i915_private *dev_priv)
@@ -4989,6 +4995,8 @@ static void valleyview_disable_rps(struct drm_i915_private *dev_priv)
 	I915_WRITE(GEN6_RC_CONTROL, 0);
 
 	intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+
+	dev_priv->rps.enabled = false;
 }
 
 static void intel_print_rc6_info(struct drm_i915_private *dev_priv, u32 mode)
@@ -5206,6 +5214,8 @@ static void gen9_enable_rps(struct drm_i915_private *dev_priv)
 	reset_rps(dev_priv, gen6_set_rps);
 
 	intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+
+	dev_priv->rps.enabled = true;
 }
 
 static void gen9_enable_rc6(struct drm_i915_private *dev_priv)
@@ -5349,6 +5359,8 @@ static void gen8_enable_rps(struct drm_i915_private *dev_priv)
 	reset_rps(dev_priv, gen6_set_rps);
 
 	intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+
+	dev_priv->rps.enabled = true;
 }
 
 static void gen6_enable_rps(struct drm_i915_private *dev_priv)
@@ -5445,6 +5457,8 @@ static void gen6_enable_rps(struct drm_i915_private *dev_priv)
 	}
 
 	intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+
+	dev_priv->rps.enabled = true;
 }
 
 static void gen6_update_ring_freq(struct drm_i915_private *dev_priv)
@@ -5919,6 +5933,8 @@ static void cherryview_enable_rps(struct drm_i915_private *dev_priv)
 	reset_rps(dev_priv, valleyview_set_rps);
 
 	intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+
+	dev_priv->rps.enabled = true;
 }
 
 static void valleyview_enable_rps(struct drm_i915_private *dev_priv)
@@ -5999,6 +6015,8 @@ static void valleyview_enable_rps(struct drm_i915_private *dev_priv)
 	reset_rps(dev_priv, valleyview_set_rps);
 
 	intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
+
+	dev_priv->rps.enabled = true;
 }
 
 static unsigned long intel_pxfreq(u32 vidfreq)
@@ -6588,7 +6606,6 @@ void intel_disable_gt_powersave(struct drm_i915_private *dev_priv)
 		ironlake_disable_drps(dev_priv);
 	}
 
-	dev_priv->rps.enabled = false;
 	mutex_unlock(&dev_priv->rps.hw_lock);
 }
 
@@ -6632,7 +6649,6 @@ void intel_enable_gt_powersave(struct drm_i915_private *dev_priv)
 	WARN_ON(dev_priv->rps.efficient_freq < dev_priv->rps.min_freq);
 	WARN_ON(dev_priv->rps.efficient_freq > dev_priv->rps.max_freq);
 
-	dev_priv->rps.enabled = true;
 	mutex_unlock(&dev_priv->rps.hw_lock);
 }
 
-- 
1.9.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2016-08-20  5:07 UTC|newest]

Thread overview: 150+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-20  5:08 Add support for GuC-based SLPC Sagar Arun Kamble
2016-08-20  5:09 ` Sagar Arun Kamble [this message]
2016-08-20  8:04   ` drm/i915: Remove RPM suspend dependency on rps.enabled and related changes David Weinehall
2016-08-20  5:09 ` drm/i915/slpc: Expose guc functions for use with SLPC Sagar Arun Kamble
2016-08-20  8:05   ` David Weinehall
2016-08-20  5:09 ` drm/i915/slpc: Add has_slpc capability flag Sagar Arun Kamble
2016-08-20  8:08   ` David Weinehall
2016-08-20  5:09 ` drm/i915/slpc: Add SKL SLPC Support Sagar Arun Kamble
2016-08-20  8:07   ` David Weinehall
2016-08-20  5:09 ` drm/i915/slpc: Add enable_slpc module parameter Sagar Arun Kamble
2016-08-20  8:15   ` David Weinehall
2016-08-22  8:39   ` kbuild test robot
2016-08-20  5:09 ` drm/i915/slpc: Sanitize SLPC version Sagar Arun Kamble
2016-08-20  8:06   ` David Weinehall
2016-08-20  5:09 ` drm/i915/slpc: Use intel_slpc_* functions if supported Sagar Arun Kamble
2016-08-20  8:27   ` David Weinehall
2016-08-21  6:05     ` Kamble, Sagar A
2016-08-20  5:09 ` drm/i915/slpc: Enable SLPC in guc " Sagar Arun Kamble
2016-08-20  8:08   ` David Weinehall
2016-08-20  5:09 ` drm/i915/slpc: If using SLPC, do not set frequency Sagar Arun Kamble
2016-08-20  5:09 ` drm/i915/slpc: Allocate/Release/Initialize SLPC shared data Sagar Arun Kamble
2016-08-20  8:22   ` David Weinehall
2016-08-20  5:09 ` drm/i915/slpc: Update current requested frequency Sagar Arun Kamble
2016-08-20  8:09   ` David Weinehall
2016-08-20  8:15   ` Chris Wilson
2016-08-21  6:12     ` Kamble, Sagar A
2016-08-20  5:09 ` drm/i915/slpc: Send reset event Sagar Arun Kamble
2016-08-20  8:10   ` David Weinehall
2016-08-20  5:09 ` drm/i915/slpc: Send shutdown event Sagar Arun Kamble
2016-08-20  8:16   ` David Weinehall
2016-08-20  5:09 ` drm/i915/slpc: Add slpc_status enum values Sagar Arun Kamble
2016-08-20  5:09 ` drm/i915/slpc: Add parameter unset/set/get functions Sagar Arun Kamble
2016-08-20  5:09 ` drm/i915/slpc: Add slpc support for max/min freq Sagar Arun Kamble
2016-08-20  5:09 ` drm/i915/slpc: Add enable/disable debugfs for slpc Sagar Arun Kamble
2016-08-20  5:09 ` drm/i915/slpc: Add i915_slpc_info to debugfs Sagar Arun Kamble
2016-08-20  5:09 ` drm/i915/slpc: Add broxton support Sagar Arun Kamble
2016-08-20  5:09 ` drm/i915/slpc: Enable SLPC, where supported Sagar Arun Kamble
2016-08-20  5:09 ` drm/i915: Check GuC load status for Host to GuC action and SLPC status Sagar Arun Kamble
2016-08-20  5:10   ` Deepak S
2016-08-21  6:06     ` Kamble, Sagar A
2016-08-20  5:09 ` drm/i915: Mark GuC load status as PENDING in i915_drm_resume_early Sagar Arun Kamble
2016-08-20  5:09 ` drm/i915/slpc: Only Enable GTPERF, Disable DCC, Balancer, IBC, FPS Stall Sagar Arun Kamble
2016-08-20  5:09 ` drm/i915/slpc: Keep RP SW Mode enabled while disabling rps Sagar Arun Kamble
2016-08-20  5:09 ` drm/i915: Add support for SKL/BXT 9.18 GuC Firmware for SLPC Sagar Arun Kamble
2016-08-20  5:09 ` drm/i915/slpc: Update freq min/max softlimits Sagar Arun Kamble
2016-08-20  8:02   ` Chris Wilson
2016-08-21  6:09     ` Kamble, Sagar A
2016-08-21  8:39       ` Chris Wilson
2016-08-21 16:09         ` Kamble, Sagar A
2016-08-24  8:37           ` Chris Wilson
2016-08-25  4:53             ` Kamble, Sagar A
2016-08-20  6:13 ` ✗ Ro.CI.BAT: failure for drm/i915/slpc: Add slpc support for max/min freq Patchwork
2016-08-20  8:16 ` Add support for GuC-based SLPC Chris Wilson
2016-08-21  6:14   ` Kamble, Sagar A
2016-08-21  6:19 ` Sagar Arun Kamble
2016-08-21  6:19   ` drm/i915: Remove RPM suspend dependency on rps.enabled and related changes Sagar Arun Kamble
2016-08-21  6:19   ` drm/i915/slpc: Expose guc functions for use with SLPC Sagar Arun Kamble
2016-08-21  6:19   ` drm/i915/slpc: Add has_slpc capability flag Sagar Arun Kamble
2016-08-21  6:19   ` drm/i915/slpc: Add SKL SLPC Support Sagar Arun Kamble
2016-08-22  6:30     ` kbuild test robot
2016-08-21  6:19   ` drm/i915/slpc: Add enable_slpc module parameter Sagar Arun Kamble
2016-08-21  6:19   ` drm/i915/slpc: Sanitize SLPC version Sagar Arun Kamble
2016-08-21  6:20   ` drm/i915/slpc: Use intel_slpc_* functions if supported Sagar Arun Kamble
2016-08-21  6:20   ` drm/i915/slpc: Enable SLPC in guc " Sagar Arun Kamble
2016-08-22  5:59     ` kbuild test robot
2016-08-22  6:00     ` kbuild test robot
2016-08-21  6:20   ` drm/i915/slpc: If using SLPC, do not set frequency Sagar Arun Kamble
2016-08-22  8:32     ` kbuild test robot
2016-08-22 10:30     ` kbuild test robot
2016-08-21  6:20   ` drm/i915/slpc: Allocate/Release/Initialize SLPC shared data Sagar Arun Kamble
2016-08-21  6:20   ` drm/i915/slpc: Add/Update interface for requested frequency Sagar Arun Kamble
2016-08-21  6:20   ` drm/i915/slpc: Send reset event Sagar Arun Kamble
2016-08-21  6:20   ` drm/i915/slpc: Send shutdown event Sagar Arun Kamble
2016-08-21  6:20   ` drm/i915/slpc: Add slpc_status enum values Sagar Arun Kamble
2016-08-21  6:20   ` drm/i915/slpc: Add parameter unset/set/get functions Sagar Arun Kamble
2016-08-21  6:20   ` drm/i915/slpc: Add slpc support for max/min freq Sagar Arun Kamble
2016-08-22  7:47     ` kbuild test robot
2016-08-22  9:33     ` kbuild test robot
2016-08-21  6:20   ` drm/i915/slpc: Add enable/disable debugfs for slpc Sagar Arun Kamble
2016-08-21  6:20   ` drm/i915/slpc: Add i915_slpc_info to debugfs Sagar Arun Kamble
2016-08-21  6:20   ` drm/i915/slpc: Add broxton support Sagar Arun Kamble
2016-08-21  6:20   ` drm/i915: Check GuC load status for Host to GuC action and SLPC status Sagar Arun Kamble
2016-08-21  6:20   ` drm/i915: Mark GuC load status as PENDING in i915_drm_resume_early Sagar Arun Kamble
2016-08-21  6:20   ` drm/i915/slpc: Only Enable GTPERF, Disable DCC, Balancer, IBC, FPS Stall Sagar Arun Kamble
2016-08-21  6:20   ` drm/i915/slpc: Keep RP SW Mode enabled while disabling rps Sagar Arun Kamble
2016-08-21  6:20   ` drm/i915: Add support for SKL/BXT 9.18 GuC Firmware for SLPC Sagar Arun Kamble
2016-08-21  6:20   ` drm/i915/slpc: Update freq min/max softlimits Sagar Arun Kamble
2016-08-23 10:39   ` [PATCH v3 00/27] Add support for GuC-based SLPC Sagar Arun Kamble
2016-08-23 10:39     ` [PATCH v3 01/27] drm/i915: Remove RPM suspend dependency on rps.enabled and related changes Sagar Arun Kamble
2016-08-23 13:09       ` kbuild test robot
2016-08-23 13:21       ` kbuild test robot
2016-08-23 10:39     ` [PATCH v3 02/27] drm/i915/slpc: Expose guc functions for use with SLPC Sagar Arun Kamble
2016-08-23 10:39     ` [PATCH v3 03/27] drm/i915/slpc: Add has_slpc capability flag Sagar Arun Kamble
2016-08-23 10:39     ` [PATCH v3 04/27] drm/i915/slpc: Add SKL SLPC Support Sagar Arun Kamble
2016-08-23 10:39     ` [PATCH v3 05/27] drm/i915/slpc: Add enable_slpc module parameter Sagar Arun Kamble
2016-08-23 10:39     ` [PATCH v3 06/27] drm/i915/slpc: Sanitize SLPC version Sagar Arun Kamble
2016-08-23 10:39     ` [PATCH v3 07/27] drm/i915/slpc: Use intel_slpc_* functions if supported Sagar Arun Kamble
2016-08-23 10:39     ` [PATCH v3 08/27] drm/i915/slpc: Enable SLPC in guc " Sagar Arun Kamble
2016-09-03 23:43       ` kbuild test robot
2016-08-23 10:39     ` [PATCH v3 09/27] drm/i915/slpc: If using SLPC, do not set frequency Sagar Arun Kamble
2016-08-23 10:39     ` [PATCH v3 10/27] drm/i915/slpc: Allocate/Release/Initialize SLPC shared data Sagar Arun Kamble
2016-08-23 10:39     ` [PATCH v3 11/27] drm/i915/slpc: Update sysfs/debugfs interfaces for frequency parameters Sagar Arun Kamble
2016-08-23 10:39     ` [PATCH v3 12/27] drm/i915: Add sysfs interface to know the HW requested frequency Sagar Arun Kamble
2016-08-23 10:39     ` [PATCH v3 13/27] drm/i915/slpc: Send reset event Sagar Arun Kamble
2016-08-23 10:39     ` [PATCH v3 14/27] drm/i915/slpc: Send shutdown event Sagar Arun Kamble
2016-08-23 10:39     ` [PATCH v3 15/27] drm/i915/slpc: Add slpc_status enum values Sagar Arun Kamble
2016-08-23 10:39     ` [PATCH v3 16/27] drm/i915/slpc: Add parameter unset/set/get functions Sagar Arun Kamble
2016-08-23 10:39     ` [PATCH v3 17/27] drm/i915/slpc: Add slpc support for max/min freq Sagar Arun Kamble
2016-08-23 10:39     ` [PATCH v3 18/27] drm/i915/slpc: Add enable/disable debugfs for slpc Sagar Arun Kamble
2016-08-23 10:39     ` [PATCH v3 19/27] drm/i915/slpc: Add i915_slpc_info to debugfs Sagar Arun Kamble
2016-08-23 10:39     ` [PATCH v3 20/27] drm/i915/slpc: Add broxton support Sagar Arun Kamble
2016-08-23 10:39     ` [PATCH v3 21/27] drm/i915: Check GuC load status for Host to GuC action and SLPC status Sagar Arun Kamble
2016-08-23 10:39     ` [PATCH v3 22/27] drm/i915: Mark GuC load status as PENDING in i915_drm_resume_early Sagar Arun Kamble
2016-08-23 10:39     ` [PATCH v3 23/27] drm/i915/slpc: Only Enable GTPERF, Disable DCC, Balancer, IBC, FPS Stall Sagar Arun Kamble
2016-08-23 10:39     ` [PATCH v3 24/27] drm/i915/slpc: Keep RP SW Mode enabled while disabling rps Sagar Arun Kamble
2016-08-23 10:39     ` [PATCH v3 25/27] drm/i915: Sanitize GT PM before reset Sagar Arun Kamble
2016-08-23 10:39     ` [PATCH v3 26/27] drm/i915: Add support for SKL/BXT 9.18 GuC Firmware for SLPC Sagar Arun Kamble
2016-08-23 10:40     ` [PATCH v3 27/27] drm/i915/slpc: Update freq min/max softlimits Sagar Arun Kamble
2016-08-23 13:42       ` kbuild test robot
2016-08-23 16:09       ` kbuild test robot
2016-09-07  8:22     ` [PATCH v4 00/25] Add support for GuC-based SLPC Sagar Arun Kamble
2016-09-07  8:22       ` [PATCH v4 01/25] drm/i915: Remove RPM suspend dependency on rps.enabled and related changes Sagar Arun Kamble
2016-09-07  8:22       ` [PATCH v4 02/25] drm/i915/slpc: Expose guc functions for use with SLPC Sagar Arun Kamble
2016-09-07  8:22       ` [PATCH v4 03/25] drm/i915/slpc: Add has_slpc capability flag Sagar Arun Kamble
2016-09-07  8:22       ` [PATCH v4 04/25] drm/i915/slpc: Add SKL SLPC Support Sagar Arun Kamble
2016-09-07  8:22       ` [PATCH v4 05/25] drm/i915/slpc: Add enable_slpc module parameter Sagar Arun Kamble
2016-09-07  8:22       ` [PATCH v4 06/25] drm/i915/slpc: Sanitize SLPC version Sagar Arun Kamble
2016-09-07  8:22       ` [PATCH v4 07/25] drm/i915/slpc: Use intel_slpc_* functions if supported Sagar Arun Kamble
2016-09-07  8:22       ` [PATCH v4 08/25] drm/i915/slpc: Enable SLPC in guc " Sagar Arun Kamble
2016-09-07  8:22       ` [PATCH v4 09/25] drm/i915/slpc: If using SLPC, do not set frequency Sagar Arun Kamble
2016-09-07  8:22       ` [PATCH v4 10/25] drm/i915/slpc: Allocate/Release/Initialize SLPC shared data Sagar Arun Kamble
2016-09-07 13:52         ` kbuild test robot
2016-09-07 14:56           ` Dave Gordon
2016-09-09  9:37             ` Kamble, Sagar A
2016-09-07  8:22       ` [PATCH v4 11/25] drm/i915/slpc: Update sysfs/debugfs interfaces for frequency parameters Sagar Arun Kamble
2016-09-07  8:22       ` [PATCH v4 12/25] drm/i915/slpc: Send reset event Sagar Arun Kamble
2016-09-07  8:22       ` [PATCH v4 13/25] drm/i915/slpc: Send shutdown event Sagar Arun Kamble
2016-09-07  8:22       ` [PATCH v4 14/25] drm/i915/slpc: Add slpc_status enum values Sagar Arun Kamble
2016-09-07  8:22       ` [PATCH v4 15/25] drm/i915/slpc: Add parameter unset/set/get functions Sagar Arun Kamble
2016-09-07  8:22       ` [PATCH v4 16/25] drm/i915/slpc: Add slpc support for max/min freq Sagar Arun Kamble
2016-09-07  8:22       ` [PATCH v4 17/25] drm/i915/slpc: Add enable/disable debugfs for slpc Sagar Arun Kamble
2016-09-07  8:22       ` [PATCH v4 18/25] drm/i915/slpc: Add i915_slpc_info to debugfs Sagar Arun Kamble
2016-09-07  8:22       ` [PATCH v4 19/25] drm/i915/slpc: Add Broxton SLPC support Sagar Arun Kamble
2016-09-07  8:22       ` [PATCH v4 20/25] drm/i915/slpc: Only Enable GTPERF, Disable DCC, Balancer, IBC, FPS Stall Sagar Arun Kamble
2016-09-07  8:22       ` [PATCH v4 21/25] drm/i915/slpc: Update freq min/max softlimits Sagar Arun Kamble
2016-09-07  8:23       ` [PATCH v4 22/25] drm/i915/slpc: Check GuC load status in SLPC active check Sagar Arun Kamble
2016-09-07  8:23       ` [PATCH v4 23/25] drm/i915/slpc: Keep RP SW Mode enabled while disabling rps Sagar Arun Kamble
2016-09-07  8:23       ` [PATCH v4 24/25] drm/i915: Add sysfs interface to know the HW requested frequency Sagar Arun Kamble
2016-09-07  8:23       ` [PATCH v4 25/25] drm/i915: Mark GuC load status as PENDING in i915_drm_resume_early Sagar Arun Kamble
2016-08-23 15:50   ` ✗ Fi.CI.BAT: warning for series starting with [v3,01/27] drm/i915: Remove RPM suspend dependency on rps.enabled and related changes Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1471669765-5935-2-git-send-email-sagar.a.kamble@intel.com \
    --to=sagar.a.kamble@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.