From: Simon Horman <horms+renesas@verge.net.au> To: linux-sh@vger.kernel.org Subject: [PATCH 10/43] ARM: shmobile: Kill off sh73a0 scu_base_addr() function Date: Mon, 18 Mar 2013 11:47:02 +0000 [thread overview] Message-ID: <1363607255-6385-11-git-send-email-horms+renesas@verge.net.au> (raw) From: Magnus Damm <damm@opensource.se> Replace scu_base_addr() with a static shmobile_scu_base variable and introduce SH73A0_SCU_BASE. Later in the series the shmobile_scu_base variable will be made into a global variable so this is preparation only. Signed-off-by: Magnus Damm <damm@opensource.se> Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- arch/arm/mach-shmobile/smp-sh73a0.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/arch/arm/mach-shmobile/smp-sh73a0.c b/arch/arm/mach-shmobile/smp-sh73a0.c index 81c0f4b..0757f4a 100644 --- a/arch/arm/mach-shmobile/smp-sh73a0.c +++ b/arch/arm/mach-shmobile/smp-sh73a0.c @@ -39,13 +39,12 @@ #define PSTR_SHUTDOWN_MODE 3 -static void __iomem *scu_base_addr(void) -{ - return (void __iomem *)0xf0000000; -} +#define SH73A0_SCU_BASE IOMEM(0xf0000000) + +static void __iomem *shmobile_scu_base; #ifdef CONFIG_HAVE_ARM_TWD -static DEFINE_TWD_LOCAL_TIMER(twd_local_timer, 0xf0000600, 29); +static DEFINE_TWD_LOCAL_TIMER(twd_local_timer, SH73A0_SCU_BASE + 0x600, 29); void __init sh73a0_register_twd(void) { twd_local_timer_register(&twd_local_timer); @@ -71,21 +70,22 @@ static int __cpuinit sh73a0_boot_secondary(unsigned int cpu, struct task_struct static void __init sh73a0_smp_prepare_cpus(unsigned int max_cpus) { - scu_enable(scu_base_addr()); + scu_enable(shmobile_scu_base); /* Map the reset vector (in headsmp-sh73a0.S) */ __raw_writel(0, APARMBAREA); /* 4k */ __raw_writel(__pa(sh73a0_secondary_vector), SBAR); /* enable cache coherency on booting CPU */ - scu_power_mode(scu_base_addr(), SCU_PM_NORMAL); + scu_power_mode(shmobile_scu_base, SCU_PM_NORMAL); } static void __init sh73a0_smp_init_cpus(void) { - unsigned int ncores = scu_get_core_count(scu_base_addr()); + /* setup sh73a0 specific SCU base */ + shmobile_scu_base = SH73A0_SCU_BASE; - shmobile_smp_init_cpus(ncores); + shmobile_smp_init_cpus(scu_get_core_count(shmobile_scu_base)); } #ifdef CONFIG_HOTPLUG_CPU @@ -121,7 +121,7 @@ static void sh73a0_cpu_die(unsigned int cpu) flush_cache_all(); /* Set power off mode. This takes the CPU out of the MP cluster */ - scu_power_mode(scu_base_addr(), SCU_PM_POWEROFF); + scu_power_mode(shmobile_scu_base, SCU_PM_POWEROFF); /* Enter shutdown mode */ cpu_do_idle(); -- 1.7.10.4
WARNING: multiple messages have this Message-ID (diff)
From: horms+renesas@verge.net.au (Simon Horman) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 10/43] ARM: shmobile: Kill off sh73a0 scu_base_addr() function Date: Mon, 18 Mar 2013 20:47:02 +0900 [thread overview] Message-ID: <1363607255-6385-11-git-send-email-horms+renesas@verge.net.au> (raw) In-Reply-To: <1363607255-6385-1-git-send-email-horms+renesas@verge.net.au> From: Magnus Damm <damm@opensource.se> Replace scu_base_addr() with a static shmobile_scu_base variable and introduce SH73A0_SCU_BASE. Later in the series the shmobile_scu_base variable will be made into a global variable so this is preparation only. Signed-off-by: Magnus Damm <damm@opensource.se> Signed-off-by: Simon Horman <horms+renesas@verge.net.au> --- arch/arm/mach-shmobile/smp-sh73a0.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/arch/arm/mach-shmobile/smp-sh73a0.c b/arch/arm/mach-shmobile/smp-sh73a0.c index 81c0f4b..0757f4a 100644 --- a/arch/arm/mach-shmobile/smp-sh73a0.c +++ b/arch/arm/mach-shmobile/smp-sh73a0.c @@ -39,13 +39,12 @@ #define PSTR_SHUTDOWN_MODE 3 -static void __iomem *scu_base_addr(void) -{ - return (void __iomem *)0xf0000000; -} +#define SH73A0_SCU_BASE IOMEM(0xf0000000) + +static void __iomem *shmobile_scu_base; #ifdef CONFIG_HAVE_ARM_TWD -static DEFINE_TWD_LOCAL_TIMER(twd_local_timer, 0xf0000600, 29); +static DEFINE_TWD_LOCAL_TIMER(twd_local_timer, SH73A0_SCU_BASE + 0x600, 29); void __init sh73a0_register_twd(void) { twd_local_timer_register(&twd_local_timer); @@ -71,21 +70,22 @@ static int __cpuinit sh73a0_boot_secondary(unsigned int cpu, struct task_struct static void __init sh73a0_smp_prepare_cpus(unsigned int max_cpus) { - scu_enable(scu_base_addr()); + scu_enable(shmobile_scu_base); /* Map the reset vector (in headsmp-sh73a0.S) */ __raw_writel(0, APARMBAREA); /* 4k */ __raw_writel(__pa(sh73a0_secondary_vector), SBAR); /* enable cache coherency on booting CPU */ - scu_power_mode(scu_base_addr(), SCU_PM_NORMAL); + scu_power_mode(shmobile_scu_base, SCU_PM_NORMAL); } static void __init sh73a0_smp_init_cpus(void) { - unsigned int ncores = scu_get_core_count(scu_base_addr()); + /* setup sh73a0 specific SCU base */ + shmobile_scu_base = SH73A0_SCU_BASE; - shmobile_smp_init_cpus(ncores); + shmobile_smp_init_cpus(scu_get_core_count(shmobile_scu_base)); } #ifdef CONFIG_HOTPLUG_CPU @@ -121,7 +121,7 @@ static void sh73a0_cpu_die(unsigned int cpu) flush_cache_all(); /* Set power off mode. This takes the CPU out of the MP cluster */ - scu_power_mode(scu_base_addr(), SCU_PM_POWEROFF); + scu_power_mode(shmobile_scu_base, SCU_PM_POWEROFF); /* Enter shutdown mode */ cpu_do_idle(); -- 1.7.10.4
next reply other threads:[~2013-03-18 11:47 UTC|newest] Thread overview: 188+ messages / expand[flat|nested] mbox.gz Atom feed top 2013-03-18 11:47 Simon Horman [this message] 2013-03-18 11:47 ` [PATCH 10/43] ARM: shmobile: Kill off sh73a0 scu_base_addr() function Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` Simon Horman -- strict thread matches above, loose matches on Subject: below -- 2013-03-18 12:32 [GIT PULL v2] Renesas ARM-based SoC updates for v3.10 Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 01/43] ARM: shmobile: Remove unused headers from hotplug.c Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 02/43] ARM: shmobile: Remove partial CPU Hotplug from EMEV2 Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 03/43] ARM: shmobile: Move EMEV2 CPU boot vector setup code Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 04/43] ARM: shmobile: Remove sh73a0_get_core_count() Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 05/43] ARM: shmobile: Remove r8a7779_get_core_count() Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 06/43] ARM: shmobile: Remove emev2_get_core_count() Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 07/43] ARM: shmobile: add MMCIF and SDHI DT clock aliases to sh73a0 and r8a7740 Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 08/43] ARM: mach-shmobile: r8a7779: Allow initialisation of GIC by DT Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 09/43] ARM: mach-shmobile: r8a7779: Minimal setup using DT Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 11/43] ARM: shmobile: Kill off r8a7779 scu_base_addr() function Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 12/43] ARM: shmobile: Rework EMEV2 scu_base variable Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 13/43] ARM: shmobile: Move headsmp-sh73a0.S to headsmp-scu.S Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 14/43] ARM: shmobile: Common shmobile_scu_base in headsmp-scu.S Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 15/43] ARM: shmobile: Update EMEV2 to use scu_power_mode() Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 16/43] ARM: shmobile: Make EMEV2 setup functions static Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 17/43] ARM: shmobile: sh73a0: fix Z and ZG clock hierarchy Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 18/43] ARM: shmobile: sh73a0: Remove sh73a0_init_irq_dt() Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 19/43] ARM: shmobile: sh73a0: Add smp ops to DT_MACHINE_START Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 20/43] ARM: shmobile: sh73a0: Remove warning about SMP Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 21/43] ARM: shmobile: sh73a0: Do not use early devices with DT reference Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 22/43] ARM: shmobile: r8a7779: " Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 23/43] ARM: shmobile: r8a7779: Do not initialise i2c as an early device Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 24/43] ARM: shmobile: r8a7779: Remove lan from dtsi Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 25/43] ARM: shmobile: Fix base address readout in headsmp-scu.S Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 26/43] ARM: shmobile: Rework SH73A0_SCU_BASE IOMEM() usage Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 27/43] ARM: shmobile: Use R8A7779_SCU_BASE with TWD Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 28/43] ARM: shmobile: Update r8a7779 to check SCU for hotplug Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 29/43] ARM: shmobile: Update r8a7779 to use scu_power_mode() Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 30/43] ARM: shmobile: Use sh73a0-specific cpu disable code Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 31/43] ARM: shmobile: Rearrange r8a7779 cpu hotplug code Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 32/43] ARM: shmobile: Remove unused hotplug.c Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 33/43] ARM: mach-shmobile: r8a7740: Add DT names to clock list Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 34/43] ARM: shmobile: add gic_iid macro for ICCIAR / interrupt ID Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 35/43] ARM: shmobile: r8a7779: fixup dtsi typo Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 36/43] ARM: shmobile: r8a7779: fixup DT machine name Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 37/43] ARM: shmobile: r8a7779: use gic_iid macro Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 38/43] ARM: shmobile: tidyup chip series definition order for r8a7740/r8a7779 Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 39/43] ARM: shmobile: r8a7779: add Thermal support on DT Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 40/43] ARM: mach-shmobile: r8a7779: SATA DT configuration Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 41/43] ARM: mach-shmobile: r8a7779: add SATA support Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 42/43] ARM: shmobile: R8A7779: use gic_iid() in SATA IRQ resource Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 12:32 ` [PATCH 43/43] r8a7779: Add Display Unit clock support Simon Horman 2013-03-18 12:32 ` Simon Horman 2013-03-18 11:46 [GIT PULL] Renesas ARM-based SoC updates for v3.10 Simon Horman 2013-03-18 11:46 ` Simon Horman 2013-03-18 11:46 ` [PATCH 01/43] ARM: shmobile: Remove unused headers from hotplug.c Simon Horman 2013-03-18 11:46 ` Simon Horman 2013-03-18 11:46 ` [PATCH 02/43] ARM: shmobile: Remove partial CPU Hotplug from EMEV2 Simon Horman 2013-03-18 11:46 ` Simon Horman 2013-03-18 11:46 ` [PATCH 03/43] ARM: shmobile: Move EMEV2 CPU boot vector setup code Simon Horman 2013-03-18 11:46 ` Simon Horman 2013-03-18 11:46 ` [PATCH 04/43] ARM: shmobile: Remove sh73a0_get_core_count() Simon Horman 2013-03-18 11:46 ` Simon Horman 2013-03-18 11:46 ` [PATCH 05/43] ARM: shmobile: Remove r8a7779_get_core_count() Simon Horman 2013-03-18 11:46 ` Simon Horman 2013-03-18 11:46 ` [PATCH 06/43] ARM: shmobile: Remove emev2_get_core_count() Simon Horman 2013-03-18 11:46 ` Simon Horman 2013-03-18 11:46 ` [PATCH 07/43] ARM: shmobile: add MMCIF and SDHI DT clock aliases to sh73a0 and r8a7740 Simon Horman 2013-03-18 11:46 ` Simon Horman 2013-03-18 11:47 ` [PATCH 08/43] ARM: mach-shmobile: r8a7779: Allow initialisation of GIC by DT Simon Horman 2013-03-18 11:47 ` Simon Horman 2013-03-18 11:47 ` [PATCH 09/43] ARM: mach-shmobile: r8a7779: Minimal setup using DT Simon Horman 2013-03-18 11:47 ` Simon Horman 2013-03-18 11:47 ` [PATCH 11/43] ARM: shmobile: Kill off r8a7779 scu_base_addr() function Simon Horman 2013-03-18 11:47 ` Simon Horman 2013-03-18 11:47 ` [PATCH 12/43] ARM: shmobile: Rework EMEV2 scu_base variable Simon Horman 2013-03-18 11:47 ` Simon Horman 2013-03-18 11:47 ` [PATCH 13/43] ARM: shmobile: Move headsmp-sh73a0.S to headsmp-scu.S Simon Horman 2013-03-18 11:47 ` Simon Horman 2013-03-18 11:47 ` [PATCH 14/43] ARM: shmobile: Common shmobile_scu_base in headsmp-scu.S Simon Horman 2013-03-18 11:47 ` Simon Horman 2013-03-18 11:47 ` [PATCH 15/43] ARM: shmobile: Update EMEV2 to use scu_power_mode() Simon Horman 2013-03-18 11:47 ` Simon Horman 2013-03-18 11:47 ` [PATCH 16/43] ARM: shmobile: Make EMEV2 setup functions static Simon Horman 2013-03-18 11:47 ` Simon Horman 2013-03-18 11:47 ` [PATCH 17/43] ARM: shmobile: sh73a0: fix Z and ZG clock hierarchy Simon Horman 2013-03-18 11:47 ` Simon Horman 2013-03-18 11:47 ` [PATCH 18/43] ARM: shmobile: sh73a0: Remove sh73a0_init_irq_dt() Simon Horman 2013-03-18 11:47 ` Simon Horman 2013-03-18 11:47 ` [PATCH 19/43] ARM: shmobile: sh73a0: Add smp ops to DT_MACHINE_START Simon Horman 2013-03-18 11:47 ` Simon Horman 2013-03-18 11:47 ` [PATCH 20/43] ARM: shmobile: sh73a0: Remove warning about SMP Simon Horman 2013-03-18 11:47 ` Simon Horman 2013-03-18 11:47 ` [PATCH 21/43] ARM: shmobile: sh73a0: Do not use early devices with DT reference Simon Horman 2013-03-18 11:47 ` Simon Horman 2013-03-18 11:47 ` [PATCH 22/43] ARM: shmobile: r8a7779: " Simon Horman 2013-03-18 11:47 ` Simon Horman 2013-03-18 11:47 ` [PATCH 23/43] ARM: shmobile: r8a7779: Do not initialise i2c as an early device Simon Horman 2013-03-18 11:47 ` Simon Horman 2013-03-18 11:47 ` [PATCH 24/43] ARM: shmobile: r8a7779: Remove lan from dtsi Simon Horman 2013-03-18 11:47 ` Simon Horman 2013-03-18 11:47 ` [PATCH 25/43] ARM: shmobile: Fix base address readout in headsmp-scu.S Simon Horman 2013-03-18 11:47 ` Simon Horman 2013-03-18 11:47 ` [PATCH 26/43] ARM: shmobile: Rework SH73A0_SCU_BASE IOMEM() usage Simon Horman 2013-03-18 11:47 ` Simon Horman 2013-03-18 11:47 ` [PATCH 27/43] ARM: shmobile: Use R8A7779_SCU_BASE with TWD Simon Horman 2013-03-18 11:47 ` Simon Horman 2013-03-18 11:47 ` [PATCH 28/43] ARM: shmobile: Update r8a7779 to check SCU for hotplug Simon Horman 2013-03-18 11:47 ` Simon Horman 2013-03-18 11:47 ` [PATCH 29/43] ARM: shmobile: Update r8a7779 to use scu_power_mode() Simon Horman 2013-03-18 11:47 ` Simon Horman 2013-03-18 11:47 ` [PATCH 30/43] ARM: shmobile: Use sh73a0-specific cpu disable code Simon Horman 2013-03-18 11:47 ` Simon Horman 2013-03-18 11:47 ` [PATCH 31/43] ARM: shmobile: Rearrange r8a7779 cpu hotplug code Simon Horman 2013-03-18 11:47 ` Simon Horman 2013-03-18 11:47 ` [PATCH 32/43] ARM: shmobile: Remove unused hotplug.c Simon Horman 2013-03-18 11:47 ` Simon Horman 2013-03-18 11:47 ` [PATCH 33/43] ARM: mach-shmobile: r8a7740: Add DT names to clock list Simon Horman 2013-03-18 11:47 ` Simon Horman 2013-03-18 11:47 ` [PATCH 34/43] ARM: shmobile: add gic_iid macro for ICCIAR / interrupt ID Simon Horman 2013-03-18 11:47 ` Simon Horman 2013-03-18 11:47 ` [PATCH 35/43] ARM: shmobile: r8a7779: fixup dtsi typo Simon Horman 2013-03-18 11:47 ` Simon Horman 2013-03-18 11:47 ` [PATCH 36/43] ARM: shmobile: r8a7779: fixup DT machine name Simon Horman 2013-03-18 11:47 ` Simon Horman 2013-03-18 11:47 ` [PATCH 37/43] ARM: shmobile: r8a7779: use gic_iid macro Simon Horman 2013-03-18 11:47 ` Simon Horman 2013-03-18 11:47 ` [PATCH 38/43] ARM: shmobile: tidyup chip series definition order for r8a7740/r8a7779 Simon Horman 2013-03-18 11:47 ` Simon Horman 2013-03-18 11:47 ` [PATCH 39/43] ARM: shmobile: r8a7779: add Thermal support on DT Simon Horman 2013-03-18 11:47 ` Simon Horman 2013-03-18 11:47 ` [PATCH 40/43] ARM: mach-shmobile: r8a7779: SATA DT configuration Simon Horman 2013-03-18 11:47 ` Simon Horman 2013-03-18 11:47 ` [PATCH 41/43] ARM: mach-shmobile: r8a7779: add SATA support Simon Horman 2013-03-18 11:47 ` Simon Horman 2013-03-18 11:47 ` [PATCH 42/43] ARM: shmobile: R8A7779: use gic_iid() in SATA IRQ resource Simon Horman 2013-03-18 11:47 ` Simon Horman 2013-03-18 11:47 ` [PATCH 43/43] ARM: shmobile: fix kzm9g-reference compile breakage Simon Horman 2013-03-18 11:47 ` Simon Horman 2013-03-18 11:58 ` Guennadi Liakhovetski 2013-03-18 11:58 ` Guennadi Liakhovetski 2013-03-18 12:08 ` Simon Horman 2013-03-18 12:08 ` Simon Horman 2013-03-18 12:19 ` Simon Horman 2013-03-18 12:19 ` Simon Horman 2013-03-18 12:16 ` [GIT PULL] Renesas ARM-based SoC updates for v3.10 Simon Horman 2013-03-18 12:16 ` Simon Horman 2013-03-21 17:01 ` Arnd Bergmann 2013-03-21 17:01 ` Arnd Bergmann 2013-03-22 0:49 ` Simon Horman 2013-03-22 0:49 ` Simon Horman
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=1363607255-6385-11-git-send-email-horms+renesas@verge.net.au \ --to=horms+renesas@verge.net.au \ --cc=linux-sh@vger.kernel.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: linkBe 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.