All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jernej Skrabec <jernej.skrabec@siol.net>
To: maxime.ripard@bootlin.com, wens@csie.org, robh+dt@kernel.org
Cc: mark.rutland@arm.com, dri-devel@lists.freedesktop.org,
	devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org,
	linux-sunxi@googlegroups.com
Subject: [PATCH 01/15] clk: sunxi-ng: r40: Add minimal rate for video PLLs
Date: Sat, 19 May 2018 20:31:13 +0200	[thread overview]
Message-ID: <20180519183127.2718-2-jernej.skrabec@siol.net> (raw)
In-Reply-To: <20180519183127.2718-1-jernej.skrabec@siol.net>

According to documentation and experience with other similar SoCs, video
PLLs don't work stable if their output frequency is set below 192 MHz.

Because of that, set minimal rate to both R40 video PLLs to 192 MHz.

Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
---
 drivers/clk/sunxi-ng/ccu-sun8i-r40.c | 46 +++++++++++++++-------------
 1 file changed, 24 insertions(+), 22 deletions(-)

diff --git a/drivers/clk/sunxi-ng/ccu-sun8i-r40.c b/drivers/clk/sunxi-ng/ccu-sun8i-r40.c
index 933f2e68f42a..c16a62a7bdbd 100644
--- a/drivers/clk/sunxi-ng/ccu-sun8i-r40.c
+++ b/drivers/clk/sunxi-ng/ccu-sun8i-r40.c
@@ -65,17 +65,18 @@ static SUNXI_CCU_NM_WITH_GATE_LOCK(pll_audio_base_clk, "pll-audio-base",
 				   CLK_SET_RATE_UNGATE);
 
 /* TODO: The result of N/M is required to be in [8, 25] range. */
-static SUNXI_CCU_NM_WITH_FRAC_GATE_LOCK(pll_video0_clk, "pll-video0",
-					"osc24M", 0x0010,
-					8, 7,		/* N */
-					0, 4,		/* M */
-					BIT(24),	/* frac enable */
-					BIT(25),	/* frac select */
-					270000000,	/* frac rate 0 */
-					297000000,	/* frac rate 1 */
-					BIT(31),	/* gate */
-					BIT(28),	/* lock */
-					CLK_SET_RATE_UNGATE);
+static SUNXI_CCU_NM_WITH_FRAC_GATE_LOCK_MIN(pll_video0_clk, "pll-video0",
+					    "osc24M", 0x0010,
+					    192000000,	/* Minimum rate */
+					    8, 7,	/* N */
+					    0, 4,	/* M */
+					    BIT(24),	/* frac enable */
+					    BIT(25),	/* frac select */
+					    270000000,	/* frac rate 0 */
+					    297000000,	/* frac rate 1 */
+					    BIT(31),	/* gate */
+					    BIT(28),	/* lock */
+					    CLK_SET_RATE_UNGATE);
 
 /* TODO: The result of N/M is required to be in [8, 25] range. */
 static SUNXI_CCU_NM_WITH_FRAC_GATE_LOCK(pll_ve_clk, "pll-ve",
@@ -151,17 +152,18 @@ static struct ccu_nk pll_periph1_clk = {
 };
 
 /* TODO: The result of N/M is required to be in [8, 25] range. */
-static SUNXI_CCU_NM_WITH_FRAC_GATE_LOCK(pll_video1_clk, "pll-video1",
-					"osc24M", 0x030,
-					8, 7,		/* N */
-					0, 4,		/* M */
-					BIT(24),	/* frac enable */
-					BIT(25),	/* frac select */
-					270000000,	/* frac rate 0 */
-					297000000,	/* frac rate 1 */
-					BIT(31),	/* gate */
-					BIT(28),	/* lock */
-					CLK_SET_RATE_UNGATE);
+static SUNXI_CCU_NM_WITH_FRAC_GATE_LOCK_MIN(pll_video1_clk, "pll-video1",
+					    "osc24M", 0x030,
+					    192000000,	/* Minimum rate */
+					    8, 7,	/* N */
+					    0, 4,	/* M */
+					    BIT(24),	/* frac enable */
+					    BIT(25),	/* frac select */
+					    270000000,	/* frac rate 0 */
+					    297000000,	/* frac rate 1 */
+					    BIT(31),	/* gate */
+					    BIT(28),	/* lock */
+					    CLK_SET_RATE_UNGATE);
 
 static struct ccu_nkm pll_sata_clk = {
 	.enable		= BIT(31),
-- 
2.17.0

WARNING: multiple messages have this Message-ID (diff)
From: Jernej Skrabec <jernej.skrabec-gGgVlfcn5nU@public.gmane.org>
To: maxime.ripard-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org,
	wens-jdAy2FN1RRM@public.gmane.org,
	robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org
Cc: mark.rutland-5wv7dgnIgG8@public.gmane.org,
	dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-clk-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
Subject: [PATCH 01/15] clk: sunxi-ng: r40: Add minimal rate for video PLLs
Date: Sat, 19 May 2018 20:31:13 +0200	[thread overview]
Message-ID: <20180519183127.2718-2-jernej.skrabec@siol.net> (raw)
In-Reply-To: <20180519183127.2718-1-jernej.skrabec-gGgVlfcn5nU@public.gmane.org>

According to documentation and experience with other similar SoCs, video
PLLs don't work stable if their output frequency is set below 192 MHz.

Because of that, set minimal rate to both R40 video PLLs to 192 MHz.

Signed-off-by: Jernej Skrabec <jernej.skrabec-gGgVlfcn5nU@public.gmane.org>
---
 drivers/clk/sunxi-ng/ccu-sun8i-r40.c | 46 +++++++++++++++-------------
 1 file changed, 24 insertions(+), 22 deletions(-)

diff --git a/drivers/clk/sunxi-ng/ccu-sun8i-r40.c b/drivers/clk/sunxi-ng/ccu-sun8i-r40.c
index 933f2e68f42a..c16a62a7bdbd 100644
--- a/drivers/clk/sunxi-ng/ccu-sun8i-r40.c
+++ b/drivers/clk/sunxi-ng/ccu-sun8i-r40.c
@@ -65,17 +65,18 @@ static SUNXI_CCU_NM_WITH_GATE_LOCK(pll_audio_base_clk, "pll-audio-base",
 				   CLK_SET_RATE_UNGATE);
 
 /* TODO: The result of N/M is required to be in [8, 25] range. */
-static SUNXI_CCU_NM_WITH_FRAC_GATE_LOCK(pll_video0_clk, "pll-video0",
-					"osc24M", 0x0010,
-					8, 7,		/* N */
-					0, 4,		/* M */
-					BIT(24),	/* frac enable */
-					BIT(25),	/* frac select */
-					270000000,	/* frac rate 0 */
-					297000000,	/* frac rate 1 */
-					BIT(31),	/* gate */
-					BIT(28),	/* lock */
-					CLK_SET_RATE_UNGATE);
+static SUNXI_CCU_NM_WITH_FRAC_GATE_LOCK_MIN(pll_video0_clk, "pll-video0",
+					    "osc24M", 0x0010,
+					    192000000,	/* Minimum rate */
+					    8, 7,	/* N */
+					    0, 4,	/* M */
+					    BIT(24),	/* frac enable */
+					    BIT(25),	/* frac select */
+					    270000000,	/* frac rate 0 */
+					    297000000,	/* frac rate 1 */
+					    BIT(31),	/* gate */
+					    BIT(28),	/* lock */
+					    CLK_SET_RATE_UNGATE);
 
 /* TODO: The result of N/M is required to be in [8, 25] range. */
 static SUNXI_CCU_NM_WITH_FRAC_GATE_LOCK(pll_ve_clk, "pll-ve",
@@ -151,17 +152,18 @@ static struct ccu_nk pll_periph1_clk = {
 };
 
 /* TODO: The result of N/M is required to be in [8, 25] range. */
-static SUNXI_CCU_NM_WITH_FRAC_GATE_LOCK(pll_video1_clk, "pll-video1",
-					"osc24M", 0x030,
-					8, 7,		/* N */
-					0, 4,		/* M */
-					BIT(24),	/* frac enable */
-					BIT(25),	/* frac select */
-					270000000,	/* frac rate 0 */
-					297000000,	/* frac rate 1 */
-					BIT(31),	/* gate */
-					BIT(28),	/* lock */
-					CLK_SET_RATE_UNGATE);
+static SUNXI_CCU_NM_WITH_FRAC_GATE_LOCK_MIN(pll_video1_clk, "pll-video1",
+					    "osc24M", 0x030,
+					    192000000,	/* Minimum rate */
+					    8, 7,	/* N */
+					    0, 4,	/* M */
+					    BIT(24),	/* frac enable */
+					    BIT(25),	/* frac select */
+					    270000000,	/* frac rate 0 */
+					    297000000,	/* frac rate 1 */
+					    BIT(31),	/* gate */
+					    BIT(28),	/* lock */
+					    CLK_SET_RATE_UNGATE);
 
 static struct ccu_nkm pll_sata_clk = {
 	.enable		= BIT(31),
-- 
2.17.0

WARNING: multiple messages have this Message-ID (diff)
From: jernej.skrabec@siol.net (Jernej Skrabec)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 01/15] clk: sunxi-ng: r40: Add minimal rate for video PLLs
Date: Sat, 19 May 2018 20:31:13 +0200	[thread overview]
Message-ID: <20180519183127.2718-2-jernej.skrabec@siol.net> (raw)
In-Reply-To: <20180519183127.2718-1-jernej.skrabec@siol.net>

According to documentation and experience with other similar SoCs, video
PLLs don't work stable if their output frequency is set below 192 MHz.

Because of that, set minimal rate to both R40 video PLLs to 192 MHz.

Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
---
 drivers/clk/sunxi-ng/ccu-sun8i-r40.c | 46 +++++++++++++++-------------
 1 file changed, 24 insertions(+), 22 deletions(-)

diff --git a/drivers/clk/sunxi-ng/ccu-sun8i-r40.c b/drivers/clk/sunxi-ng/ccu-sun8i-r40.c
index 933f2e68f42a..c16a62a7bdbd 100644
--- a/drivers/clk/sunxi-ng/ccu-sun8i-r40.c
+++ b/drivers/clk/sunxi-ng/ccu-sun8i-r40.c
@@ -65,17 +65,18 @@ static SUNXI_CCU_NM_WITH_GATE_LOCK(pll_audio_base_clk, "pll-audio-base",
 				   CLK_SET_RATE_UNGATE);
 
 /* TODO: The result of N/M is required to be in [8, 25] range. */
-static SUNXI_CCU_NM_WITH_FRAC_GATE_LOCK(pll_video0_clk, "pll-video0",
-					"osc24M", 0x0010,
-					8, 7,		/* N */
-					0, 4,		/* M */
-					BIT(24),	/* frac enable */
-					BIT(25),	/* frac select */
-					270000000,	/* frac rate 0 */
-					297000000,	/* frac rate 1 */
-					BIT(31),	/* gate */
-					BIT(28),	/* lock */
-					CLK_SET_RATE_UNGATE);
+static SUNXI_CCU_NM_WITH_FRAC_GATE_LOCK_MIN(pll_video0_clk, "pll-video0",
+					    "osc24M", 0x0010,
+					    192000000,	/* Minimum rate */
+					    8, 7,	/* N */
+					    0, 4,	/* M */
+					    BIT(24),	/* frac enable */
+					    BIT(25),	/* frac select */
+					    270000000,	/* frac rate 0 */
+					    297000000,	/* frac rate 1 */
+					    BIT(31),	/* gate */
+					    BIT(28),	/* lock */
+					    CLK_SET_RATE_UNGATE);
 
 /* TODO: The result of N/M is required to be in [8, 25] range. */
 static SUNXI_CCU_NM_WITH_FRAC_GATE_LOCK(pll_ve_clk, "pll-ve",
@@ -151,17 +152,18 @@ static struct ccu_nk pll_periph1_clk = {
 };
 
 /* TODO: The result of N/M is required to be in [8, 25] range. */
-static SUNXI_CCU_NM_WITH_FRAC_GATE_LOCK(pll_video1_clk, "pll-video1",
-					"osc24M", 0x030,
-					8, 7,		/* N */
-					0, 4,		/* M */
-					BIT(24),	/* frac enable */
-					BIT(25),	/* frac select */
-					270000000,	/* frac rate 0 */
-					297000000,	/* frac rate 1 */
-					BIT(31),	/* gate */
-					BIT(28),	/* lock */
-					CLK_SET_RATE_UNGATE);
+static SUNXI_CCU_NM_WITH_FRAC_GATE_LOCK_MIN(pll_video1_clk, "pll-video1",
+					    "osc24M", 0x030,
+					    192000000,	/* Minimum rate */
+					    8, 7,	/* N */
+					    0, 4,	/* M */
+					    BIT(24),	/* frac enable */
+					    BIT(25),	/* frac select */
+					    270000000,	/* frac rate 0 */
+					    297000000,	/* frac rate 1 */
+					    BIT(31),	/* gate */
+					    BIT(28),	/* lock */
+					    CLK_SET_RATE_UNGATE);
 
 static struct ccu_nkm pll_sata_clk = {
 	.enable		= BIT(31),
-- 
2.17.0

  reply	other threads:[~2018-05-19 18:32 UTC|newest]

Thread overview: 140+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-19 18:31 [PATCH 00/15] Add support for R40 HDMI pipeline Jernej Skrabec
2018-05-19 18:31 ` Jernej Skrabec
2018-05-19 18:31 ` Jernej Skrabec
2018-05-19 18:31 ` Jernej Skrabec [this message]
2018-05-19 18:31   ` [PATCH 01/15] clk: sunxi-ng: r40: Add minimal rate for video PLLs Jernej Skrabec
2018-05-19 18:31   ` Jernej Skrabec
2018-05-19 18:31 ` [PATCH 02/15] clk: sunxi-ng: r40: Allow setting parent rate to display related clocks Jernej Skrabec
2018-05-19 18:31   ` Jernej Skrabec
2018-05-19 18:31   ` Jernej Skrabec
2018-05-19 18:31 ` [PATCH 03/15] clk: sunxi-ng: r40: Export video PLLs Jernej Skrabec
2018-05-19 18:31   ` Jernej Skrabec
2018-05-19 18:31   ` Jernej Skrabec
2018-05-19 18:31   ` Jernej Skrabec
2018-05-23 18:20   ` Rob Herring
2018-05-23 18:20     ` Rob Herring
2018-05-23 18:20     ` Rob Herring
2018-05-19 18:31 ` [PATCH 04/15] dt-bindings: display: sunxi-drm: Add TCON TOP description Jernej Skrabec
2018-05-19 18:31   ` Jernej Skrabec
2018-05-19 18:31   ` Jernej Skrabec
2018-05-21  8:01   ` Maxime Ripard
2018-05-21  8:01     ` Maxime Ripard
2018-05-21  8:01     ` Maxime Ripard
2018-05-21 15:10     ` Jernej Škrabec
2018-05-21 15:10       ` Jernej Škrabec
2018-05-21 15:10       ` Jernej Škrabec
2018-05-19 18:31 ` [PATCH 05/15] drm/sun4i: Add TCON TOP driver Jernej Skrabec
2018-05-19 18:31   ` Jernej Skrabec
2018-05-19 18:31   ` Jernej Skrabec
2018-05-21  8:05   ` Maxime Ripard
2018-05-21  8:05     ` Maxime Ripard
2018-05-21  8:05     ` Maxime Ripard
2018-05-21 15:15     ` Jernej Škrabec
2018-05-21 15:15       ` Jernej Škrabec
2018-05-21 15:15       ` Jernej Škrabec
2018-05-24  8:43       ` Maxime Ripard
2018-05-24  8:43         ` Maxime Ripard
2018-05-24  8:43         ` Maxime Ripard
2018-05-24 20:33         ` [linux-sunxi] " Jernej Škrabec
2018-05-24 20:33           ` Jernej Škrabec
2018-05-24 20:33           ` Jernej Škrabec
2018-05-22  2:25   ` kbuild test robot
2018-05-22  2:25     ` kbuild test robot
2018-05-22  2:25     ` kbuild test robot
2018-05-23 18:23   ` Rob Herring
2018-05-23 18:23     ` Rob Herring
2018-05-23 18:23     ` Rob Herring
2018-05-19 18:31 ` [PATCH 06/15] drm/sun4i: tcon: Add support for tcon-top Jernej Skrabec
2018-05-19 18:31   ` Jernej Skrabec
2018-05-19 18:31   ` Jernej Skrabec
2018-05-21  8:07   ` Maxime Ripard
2018-05-21  8:07     ` Maxime Ripard
2018-05-21  8:07     ` Maxime Ripard
2018-05-21 17:27     ` Jernej Škrabec
2018-05-21 17:27       ` Jernej Škrabec
2018-05-21 17:27       ` Jernej Škrabec
2018-05-24  8:50       ` Maxime Ripard
2018-05-24  8:50         ` Maxime Ripard
2018-05-24  8:50         ` Maxime Ripard
2018-05-24 22:01         ` Chen-Yu Tsai
2018-05-24 22:01           ` Chen-Yu Tsai
2018-05-24 22:01           ` Chen-Yu Tsai
2018-05-31  9:21           ` Maxime Ripard
2018-05-31  9:21             ` Maxime Ripard
2018-05-31  9:21             ` Maxime Ripard
2018-05-31 17:54             ` Jernej Škrabec
2018-05-31 17:54               ` Jernej Škrabec
2018-05-31 17:54               ` Jernej Škrabec
2018-06-01 15:29               ` Maxime Ripard
2018-06-01 15:29                 ` Maxime Ripard
2018-06-01 15:29                 ` Maxime Ripard
2018-06-01 16:19                 ` Chen-Yu Tsai
2018-06-01 16:19                   ` Chen-Yu Tsai
2018-06-01 16:19                   ` Chen-Yu Tsai
2018-06-04 11:50                   ` Maxime Ripard
2018-06-04 11:50                     ` Maxime Ripard
2018-06-04 11:50                     ` Maxime Ripard
2018-06-04 15:09                     ` Jernej Škrabec
2018-06-04 15:09                       ` Jernej Škrabec
2018-06-04 15:09                       ` Jernej Škrabec
2018-06-04 16:23                       ` Maxime Ripard
2018-06-04 16:23                         ` Maxime Ripard
2018-06-04 16:23                         ` Maxime Ripard
2018-06-06 22:30                         ` Jernej Škrabec
2018-06-06 22:30                           ` Jernej Škrabec
2018-06-06 22:30                           ` Jernej Škrabec
2018-06-08  5:17                           ` [linux-sunxi] " Jernej Škrabec
2018-06-08  5:17                             ` Jernej Škrabec
2018-06-08  5:17                             ` Jernej Škrabec
2018-06-08  5:17                             ` Jernej Škrabec
2018-05-19 18:31 ` [PATCH 07/15] dt-bindings: display: sun4i-drm: Add R40 HDMI pipeline Jernej Skrabec
2018-05-19 18:31   ` Jernej Skrabec
2018-05-19 18:31   ` Jernej Skrabec
2018-05-20  1:50   ` [linux-sunxi] " Julian Calaby
2018-05-20  1:50     ` Julian Calaby
2018-05-20  1:50     ` Julian Calaby
2018-05-19 18:31 ` [PATCH 08/15] drm/sun4i: DE2 mixer: Add index quirk Jernej Skrabec
2018-05-19 18:31   ` Jernej Skrabec
2018-05-19 18:31   ` Jernej Skrabec
2018-05-19 18:31 ` [PATCH 09/15] drm/sun4i: Add support for R40 mixers Jernej Skrabec
2018-05-19 18:31   ` Jernej Skrabec
2018-05-19 18:31   ` Jernej Skrabec
2018-05-19 18:31 ` [PATCH 10/15] drm/sun4i: Add support for R40 TV TCONs Jernej Skrabec
2018-05-19 18:31   ` Jernej Skrabec
2018-05-19 18:31   ` Jernej Skrabec
2018-05-20  1:57   ` [linux-sunxi] " Julian Calaby
2018-05-20  1:57     ` Julian Calaby
2018-05-20  1:57     ` Julian Calaby
2018-05-20  2:09     ` [linux-sunxi] " Julian Calaby
2018-05-20  2:09       ` Julian Calaby
2018-05-20  2:09       ` Julian Calaby
2018-05-20  7:30       ` [linux-sunxi] " Jernej Škrabec
2018-05-20  7:30         ` Jernej Škrabec
2018-05-20  7:30         ` Jernej Škrabec
2018-05-19 18:31 ` [PATCH 11/15] drm/sun4i: DW HDMI PHY: Add support for second PLL Jernej Skrabec
2018-05-19 18:31   ` Jernej Skrabec
2018-05-19 18:31   ` Jernej Skrabec
2018-05-19 18:31 ` [PATCH 12/15] drm/sun4i: Add support for second clock parent to DW HDMI PHY clk driver Jernej Skrabec
2018-05-19 18:31   ` Jernej Skrabec
2018-05-19 18:31   ` Jernej Skrabec
2018-05-21  7:47   ` kbuild test robot
2018-05-21  7:47     ` kbuild test robot
2018-05-21  7:47     ` kbuild test robot
2018-05-21  8:12   ` Maxime Ripard
2018-05-21  8:12     ` Maxime Ripard
2018-05-21  8:12     ` Maxime Ripard
2018-05-21 15:02     ` [linux-sunxi] " Jernej Škrabec
2018-05-21 15:02       ` Jernej Škrabec
2018-05-21 15:02       ` Jernej Škrabec
2018-05-24  8:27       ` [linux-sunxi] " Maxime Ripard
2018-05-24  8:27         ` Maxime Ripard
2018-05-24  8:27         ` Maxime Ripard
2018-05-19 18:31 ` [PATCH 13/15] drm/sun4i: Add support for A64 HDMI PHY Jernej Skrabec
2018-05-19 18:31   ` Jernej Skrabec
2018-05-19 18:31   ` Jernej Skrabec
2018-05-19 18:31 ` [PATCH 14/15] ARM: dts: sun8i: r40: Add HDMI pipeline Jernej Skrabec
2018-05-19 18:31   ` Jernej Skrabec
2018-05-19 18:31   ` Jernej Skrabec
2018-05-19 18:31 ` [PATCH 15/15] ARM: dts: sun8i: r40: Enable HDMI output on BananaPi M2 Ultra Jernej Skrabec
2018-05-19 18:31   ` Jernej Skrabec
2018-05-19 18:31   ` Jernej Skrabec

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=20180519183127.2718-2-jernej.skrabec@siol.net \
    --to=jernej.skrabec@siol.net \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sunxi@googlegroups.com \
    --cc=mark.rutland@arm.com \
    --cc=maxime.ripard@bootlin.com \
    --cc=robh+dt@kernel.org \
    --cc=wens@csie.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.