All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Horman <horms@verge.net.au>
To: Magnus Damm <magnus.damm@gmail.com>, Olof Johansson <olof@lixom.net>
Cc: linux-sh@vger.kernel.org, khilman@linaro.org, arnd@arndb.de,
	daniel.lezcano@linaro.org, linux-kernel@vger.kernel.org,
	tglx@linutronix.de
Subject: Re: [PATCH/RFC] clocksource: Consolidate SH and ARM mach-shmobile Kconfig bits
Date: Fri, 27 Sep 2013 04:43:25 +0000	[thread overview]
Message-ID: <20130927044323.GC16541@verge.net.au> (raw)
In-Reply-To: <20130925233709.16540.66903.sendpatchset@w520>

On Thu, Sep 26, 2013 at 08:37:09AM +0900, Magnus Damm wrote:
> From: Magnus Damm <damm@opensource.se>
> 
> Based on request from Olof Johansson, move ARM mach-shmobile
> clocksource entries to drivers/clocksource/Kconfig, and at
> the same time make the SH architecture use these entries.
> 
> Kconfig entries for CMT, MTU2, TMU and STI are with this patch
> now kept in one place. The SH SYS_SUPPORTS_nnn bits are dropped
> to simplye let the user select the appropriate ones using Kconfig
> instead of trying to filter available timers based on SoC.
> 
> Known issues:
>  1) Not yet wrappend in menu/endmenu, populates the root driver menu
>  -> proposal: Create separate patch to wrap all the clocksource entries?

That seems reasonable to me.

>  2) Should the entries be sorted?
>  -> proposal: Ignore cosmetic bits

I propose that you sort the entries are adding
but leave the rest of the entries as is.

>  3) What is correct dependency for multiplatform and single platform?
>  -> proposal: Perhaps we should simply default to no?

I'm not sure that I understand the issue here.

>  4) Is single patch across 2 architectures and drivers/clocksource OK?
>  -> proposal: Keep it like this if possible

Olof, I would like your opinion on this but from my pov this seems
reasonable. Especially as one of the architectures (sh) is seeing very little
change at this time.

> Not-yet-signed-off-by: Magnus Damm <damm@opensource.se>
> ---
> 
>  arch/arm/mach-shmobile/Kconfig |   19 --------------
>  arch/sh/Kconfig                |   53 ----------------------------------------
>  drivers/clocksource/Kconfig    |   25 ++++++++++++++++++
>  3 files changed, 25 insertions(+), 72 deletions(-)
> 
> --- 0004/arch/arm/mach-shmobile/Kconfig
> +++ work/arch/arm/mach-shmobile/Kconfig	2013-09-26 07:51:06.000000000 +0900
> @@ -307,25 +307,6 @@ config SHMOBILE_TIMER_HZ
>  	  SH-Mobile systems using a 32768 Hz RCLK for clock events may want
>  	  to select a HZ value such as 128 that can evenly divide RCLK.
>  	  A HZ value that does not divide evenly may cause timer drift.
> -
> -config SH_TIMER_CMT
> -	bool "CMT timer driver"
> -	default y
> -	help
> -	  This enables build of the CMT timer driver.
> -
> -config SH_TIMER_TMU
> -	bool "TMU timer driver"
> -	default y
> -	help
> -	  This enables build of the TMU timer driver.
> -
> -config EM_TIMER_STI
> -	bool "STI timer driver"
> -	default y
> -	help
> -	  This enables build of the STI timer driver.
> -
>  endmenu
>  
>  endif
> --- 0001/arch/sh/Kconfig
> +++ work/arch/sh/Kconfig	2013-09-26 08:00:49.000000000 +0900
> @@ -121,15 +121,6 @@ config SYS_SUPPORTS_NUMA
>  config SYS_SUPPORTS_PCI
>  	bool
>  
> -config SYS_SUPPORTS_CMT
> -	bool
> -
> -config SYS_SUPPORTS_MTU2
> -	bool
> -
> -config SYS_SUPPORTS_TMU
> -	bool
> -
>  config STACKTRACE_SUPPORT
>  	def_bool y
>  
> @@ -189,14 +180,12 @@ config CPU_SH3
>  	bool
>  	select CPU_HAS_INTEVT
>  	select CPU_HAS_SR_RB
> -	select SYS_SUPPORTS_TMU
>  
>  config CPU_SH4
>  	bool
>  	select CPU_HAS_INTEVT
>  	select CPU_HAS_SR_RB
>  	select CPU_HAS_FPU if !CPU_SH4AL_DSP
> -	select SYS_SUPPORTS_TMU
>  	select SYS_SUPPORTS_HUGETLBFS if MMU
>  
>  config CPU_SH4A
> @@ -211,7 +200,6 @@ config CPU_SH4AL_DSP
>  config CPU_SH5
>  	bool
>  	select CPU_HAS_FPU
> -	select SYS_SUPPORTS_TMU
>  	select SYS_SUPPORTS_HUGETLBFS if MMU
>  
>  config CPU_SHX2
> @@ -248,7 +236,6 @@ choice
>  config CPU_SUBTYPE_SH7619
>  	bool "Support SH7619 processor"
>  	select CPU_SH2
> -	select SYS_SUPPORTS_CMT
>  
>  # SH-2A Processor Support
>  
> @@ -256,50 +243,38 @@ config CPU_SUBTYPE_SH7201
>  	bool "Support SH7201 processor"
>  	select CPU_SH2A
>  	select CPU_HAS_FPU
> -	select SYS_SUPPORTS_MTU2
>   
>  config CPU_SUBTYPE_SH7203
>  	bool "Support SH7203 processor"
>  	select CPU_SH2A
>  	select CPU_HAS_FPU
> -	select SYS_SUPPORTS_CMT
> -	select SYS_SUPPORTS_MTU2
>  	select ARCH_WANT_OPTIONAL_GPIOLIB
>  	select PINCTRL
>  
>  config CPU_SUBTYPE_SH7206
>  	bool "Support SH7206 processor"
>  	select CPU_SH2A
> -	select SYS_SUPPORTS_CMT
> -	select SYS_SUPPORTS_MTU2
>  
>  config CPU_SUBTYPE_SH7263
>  	bool "Support SH7263 processor"
>  	select CPU_SH2A
>  	select CPU_HAS_FPU
> -	select SYS_SUPPORTS_CMT
> -	select SYS_SUPPORTS_MTU2
>  
>  config CPU_SUBTYPE_SH7264
>  	bool "Support SH7264 processor"
>  	select CPU_SH2A
>  	select CPU_HAS_FPU
> -	select SYS_SUPPORTS_CMT
> -	select SYS_SUPPORTS_MTU2
>  	select PINCTRL
>  
>  config CPU_SUBTYPE_SH7269
>  	bool "Support SH7269 processor"
>  	select CPU_SH2A
>  	select CPU_HAS_FPU
> -	select SYS_SUPPORTS_CMT
> -	select SYS_SUPPORTS_MTU2
>  	select PINCTRL
>  
>  config CPU_SUBTYPE_MXG
>  	bool "Support MX-G processor"
>  	select CPU_SH2A
> -	select SYS_SUPPORTS_MTU2
>  	help
>  	  Select MX-G if running on an R8A03022BG part.
>  
> @@ -352,7 +327,6 @@ config CPU_SUBTYPE_SH7720
>  	bool "Support SH7720 processor"
>  	select CPU_SH3
>  	select CPU_HAS_DSP
> -	select SYS_SUPPORTS_CMT
>  	select ARCH_WANT_OPTIONAL_GPIOLIB
>  	select USB_ARCH_HAS_OHCI
>  	select USB_OHCI_SH if USB_OHCI_HCD
> @@ -364,7 +338,6 @@ config CPU_SUBTYPE_SH7721
>  	bool "Support SH7721 processor"
>  	select CPU_SH3
>  	select CPU_HAS_DSP
> -	select SYS_SUPPORTS_CMT
>  	select USB_ARCH_HAS_OHCI
>  	select USB_OHCI_SH if USB_OHCI_HCD
>  	help
> @@ -420,7 +393,6 @@ config CPU_SUBTYPE_SH7723
>  	select CPU_SHX2
>  	select ARCH_SHMOBILE
>  	select ARCH_SPARSEMEM_ENABLE
> -	select SYS_SUPPORTS_CMT
>  	select ARCH_WANT_OPTIONAL_GPIOLIB
>  	select PINCTRL
>  	help
> @@ -432,7 +404,6 @@ config CPU_SUBTYPE_SH7724
>  	select CPU_SHX2
>  	select ARCH_SHMOBILE
>  	select ARCH_SPARSEMEM_ENABLE
> -	select SYS_SUPPORTS_CMT
>  	select ARCH_WANT_OPTIONAL_GPIOLIB
>  	select PINCTRL
>  	help
> @@ -512,7 +483,6 @@ config CPU_SUBTYPE_SH7343
>  	bool "Support SH7343 processor"
>  	select CPU_SH4AL_DSP
>  	select ARCH_SHMOBILE
> -	select SYS_SUPPORTS_CMT
>  
>  config CPU_SUBTYPE_SH7722
>  	bool "Support SH7722 processor"
> @@ -521,7 +491,6 @@ config CPU_SUBTYPE_SH7722
>  	select ARCH_SHMOBILE
>  	select ARCH_SPARSEMEM_ENABLE
>  	select SYS_SUPPORTS_NUMA
> -	select SYS_SUPPORTS_CMT
>  	select ARCH_WANT_OPTIONAL_GPIOLIB
>  	select PINCTRL
>  
> @@ -532,7 +501,6 @@ config CPU_SUBTYPE_SH7366
>  	select ARCH_SHMOBILE
>  	select ARCH_SPARSEMEM_ENABLE
>  	select SYS_SUPPORTS_NUMA
> -	select SYS_SUPPORTS_CMT
>  
>  endchoice
>  
> @@ -565,27 +533,6 @@ source "arch/sh/boards/Kconfig"
>  
>  menu "Timer and clock configuration"
>  
> -config SH_TIMER_TMU
> -	bool "TMU timer driver"
> -	depends on SYS_SUPPORTS_TMU
> -	default y
> -	help
> -	  This enables the build of the TMU timer driver.
> -
> -config SH_TIMER_CMT
> -	bool "CMT timer driver"
> -	depends on SYS_SUPPORTS_CMT
> -	default y
> -	help
> -	  This enables build of the CMT timer driver.
> -
> -config SH_TIMER_MTU2
> -	bool "MTU2 timer driver"
> -	depends on SYS_SUPPORTS_MTU2
> -	default y
> -	help
> -	  This enables build of the MTU2 timer driver.
> -
>  config SH_PCLK_FREQ
>  	int "Peripheral clock frequency (in Hz)"
>  	depends on SH_CLK_CPG_LEGACY
> --- 0001/drivers/clocksource/Kconfig
> +++ work/drivers/clocksource/Kconfig	2013-09-26 07:59:19.000000000 +0900
> @@ -109,3 +109,28 @@ config VF_PIT_TIMER
>  	bool
>  	help
>  	  Support for Period Interrupt Timer on Freescale Vybrid Family SoCs.
> +
> +config SH_TIMER_CMT
> +	bool "CMT timer driver"
> +	default y
> +	help
> +	  This enables build of the CMT timer driver.
> +
> +config SH_TIMER_MTU2
> +	bool "MTU2 timer driver"
> +	default y
> +	help
> +	  This enables build of the MTU2 timer driver.
> +
> +config SH_TIMER_TMU
> +	bool "TMU timer driver"
> +	default y
> +	help
> +	  This enables build of the TMU timer driver.
> +
> +config EM_TIMER_STI
> +	bool "STI timer driver"
> +	default y
> +	help
> +	  This enables build of the STI timer driver.
> +
> 

WARNING: multiple messages have this Message-ID (diff)
From: Simon Horman <horms@verge.net.au>
To: Magnus Damm <magnus.damm@gmail.com>, Olof Johansson <olof@lixom.net>
Cc: linux-sh@vger.kernel.org, khilman@linaro.org, arnd@arndb.de,
	daniel.lezcano@linaro.org, linux-kernel@vger.kernel.org,
	tglx@linutronix.de
Subject: Re: [PATCH/RFC] clocksource: Consolidate SH and ARM mach-shmobile Kconfig bits
Date: Fri, 27 Sep 2013 13:43:25 +0900	[thread overview]
Message-ID: <20130927044323.GC16541@verge.net.au> (raw)
In-Reply-To: <20130925233709.16540.66903.sendpatchset@w520>

On Thu, Sep 26, 2013 at 08:37:09AM +0900, Magnus Damm wrote:
> From: Magnus Damm <damm@opensource.se>
> 
> Based on request from Olof Johansson, move ARM mach-shmobile
> clocksource entries to drivers/clocksource/Kconfig, and at
> the same time make the SH architecture use these entries.
> 
> Kconfig entries for CMT, MTU2, TMU and STI are with this patch
> now kept in one place. The SH SYS_SUPPORTS_nnn bits are dropped
> to simplye let the user select the appropriate ones using Kconfig
> instead of trying to filter available timers based on SoC.
> 
> Known issues:
>  1) Not yet wrappend in menu/endmenu, populates the root driver menu
>  -> proposal: Create separate patch to wrap all the clocksource entries?

That seems reasonable to me.

>  2) Should the entries be sorted?
>  -> proposal: Ignore cosmetic bits

I propose that you sort the entries are adding
but leave the rest of the entries as is.

>  3) What is correct dependency for multiplatform and single platform?
>  -> proposal: Perhaps we should simply default to no?

I'm not sure that I understand the issue here.

>  4) Is single patch across 2 architectures and drivers/clocksource OK?
>  -> proposal: Keep it like this if possible

Olof, I would like your opinion on this but from my pov this seems
reasonable. Especially as one of the architectures (sh) is seeing very little
change at this time.

> Not-yet-signed-off-by: Magnus Damm <damm@opensource.se>
> ---
> 
>  arch/arm/mach-shmobile/Kconfig |   19 --------------
>  arch/sh/Kconfig                |   53 ----------------------------------------
>  drivers/clocksource/Kconfig    |   25 ++++++++++++++++++
>  3 files changed, 25 insertions(+), 72 deletions(-)
> 
> --- 0004/arch/arm/mach-shmobile/Kconfig
> +++ work/arch/arm/mach-shmobile/Kconfig	2013-09-26 07:51:06.000000000 +0900
> @@ -307,25 +307,6 @@ config SHMOBILE_TIMER_HZ
>  	  SH-Mobile systems using a 32768 Hz RCLK for clock events may want
>  	  to select a HZ value such as 128 that can evenly divide RCLK.
>  	  A HZ value that does not divide evenly may cause timer drift.
> -
> -config SH_TIMER_CMT
> -	bool "CMT timer driver"
> -	default y
> -	help
> -	  This enables build of the CMT timer driver.
> -
> -config SH_TIMER_TMU
> -	bool "TMU timer driver"
> -	default y
> -	help
> -	  This enables build of the TMU timer driver.
> -
> -config EM_TIMER_STI
> -	bool "STI timer driver"
> -	default y
> -	help
> -	  This enables build of the STI timer driver.
> -
>  endmenu
>  
>  endif
> --- 0001/arch/sh/Kconfig
> +++ work/arch/sh/Kconfig	2013-09-26 08:00:49.000000000 +0900
> @@ -121,15 +121,6 @@ config SYS_SUPPORTS_NUMA
>  config SYS_SUPPORTS_PCI
>  	bool
>  
> -config SYS_SUPPORTS_CMT
> -	bool
> -
> -config SYS_SUPPORTS_MTU2
> -	bool
> -
> -config SYS_SUPPORTS_TMU
> -	bool
> -
>  config STACKTRACE_SUPPORT
>  	def_bool y
>  
> @@ -189,14 +180,12 @@ config CPU_SH3
>  	bool
>  	select CPU_HAS_INTEVT
>  	select CPU_HAS_SR_RB
> -	select SYS_SUPPORTS_TMU
>  
>  config CPU_SH4
>  	bool
>  	select CPU_HAS_INTEVT
>  	select CPU_HAS_SR_RB
>  	select CPU_HAS_FPU if !CPU_SH4AL_DSP
> -	select SYS_SUPPORTS_TMU
>  	select SYS_SUPPORTS_HUGETLBFS if MMU
>  
>  config CPU_SH4A
> @@ -211,7 +200,6 @@ config CPU_SH4AL_DSP
>  config CPU_SH5
>  	bool
>  	select CPU_HAS_FPU
> -	select SYS_SUPPORTS_TMU
>  	select SYS_SUPPORTS_HUGETLBFS if MMU
>  
>  config CPU_SHX2
> @@ -248,7 +236,6 @@ choice
>  config CPU_SUBTYPE_SH7619
>  	bool "Support SH7619 processor"
>  	select CPU_SH2
> -	select SYS_SUPPORTS_CMT
>  
>  # SH-2A Processor Support
>  
> @@ -256,50 +243,38 @@ config CPU_SUBTYPE_SH7201
>  	bool "Support SH7201 processor"
>  	select CPU_SH2A
>  	select CPU_HAS_FPU
> -	select SYS_SUPPORTS_MTU2
>   
>  config CPU_SUBTYPE_SH7203
>  	bool "Support SH7203 processor"
>  	select CPU_SH2A
>  	select CPU_HAS_FPU
> -	select SYS_SUPPORTS_CMT
> -	select SYS_SUPPORTS_MTU2
>  	select ARCH_WANT_OPTIONAL_GPIOLIB
>  	select PINCTRL
>  
>  config CPU_SUBTYPE_SH7206
>  	bool "Support SH7206 processor"
>  	select CPU_SH2A
> -	select SYS_SUPPORTS_CMT
> -	select SYS_SUPPORTS_MTU2
>  
>  config CPU_SUBTYPE_SH7263
>  	bool "Support SH7263 processor"
>  	select CPU_SH2A
>  	select CPU_HAS_FPU
> -	select SYS_SUPPORTS_CMT
> -	select SYS_SUPPORTS_MTU2
>  
>  config CPU_SUBTYPE_SH7264
>  	bool "Support SH7264 processor"
>  	select CPU_SH2A
>  	select CPU_HAS_FPU
> -	select SYS_SUPPORTS_CMT
> -	select SYS_SUPPORTS_MTU2
>  	select PINCTRL
>  
>  config CPU_SUBTYPE_SH7269
>  	bool "Support SH7269 processor"
>  	select CPU_SH2A
>  	select CPU_HAS_FPU
> -	select SYS_SUPPORTS_CMT
> -	select SYS_SUPPORTS_MTU2
>  	select PINCTRL
>  
>  config CPU_SUBTYPE_MXG
>  	bool "Support MX-G processor"
>  	select CPU_SH2A
> -	select SYS_SUPPORTS_MTU2
>  	help
>  	  Select MX-G if running on an R8A03022BG part.
>  
> @@ -352,7 +327,6 @@ config CPU_SUBTYPE_SH7720
>  	bool "Support SH7720 processor"
>  	select CPU_SH3
>  	select CPU_HAS_DSP
> -	select SYS_SUPPORTS_CMT
>  	select ARCH_WANT_OPTIONAL_GPIOLIB
>  	select USB_ARCH_HAS_OHCI
>  	select USB_OHCI_SH if USB_OHCI_HCD
> @@ -364,7 +338,6 @@ config CPU_SUBTYPE_SH7721
>  	bool "Support SH7721 processor"
>  	select CPU_SH3
>  	select CPU_HAS_DSP
> -	select SYS_SUPPORTS_CMT
>  	select USB_ARCH_HAS_OHCI
>  	select USB_OHCI_SH if USB_OHCI_HCD
>  	help
> @@ -420,7 +393,6 @@ config CPU_SUBTYPE_SH7723
>  	select CPU_SHX2
>  	select ARCH_SHMOBILE
>  	select ARCH_SPARSEMEM_ENABLE
> -	select SYS_SUPPORTS_CMT
>  	select ARCH_WANT_OPTIONAL_GPIOLIB
>  	select PINCTRL
>  	help
> @@ -432,7 +404,6 @@ config CPU_SUBTYPE_SH7724
>  	select CPU_SHX2
>  	select ARCH_SHMOBILE
>  	select ARCH_SPARSEMEM_ENABLE
> -	select SYS_SUPPORTS_CMT
>  	select ARCH_WANT_OPTIONAL_GPIOLIB
>  	select PINCTRL
>  	help
> @@ -512,7 +483,6 @@ config CPU_SUBTYPE_SH7343
>  	bool "Support SH7343 processor"
>  	select CPU_SH4AL_DSP
>  	select ARCH_SHMOBILE
> -	select SYS_SUPPORTS_CMT
>  
>  config CPU_SUBTYPE_SH7722
>  	bool "Support SH7722 processor"
> @@ -521,7 +491,6 @@ config CPU_SUBTYPE_SH7722
>  	select ARCH_SHMOBILE
>  	select ARCH_SPARSEMEM_ENABLE
>  	select SYS_SUPPORTS_NUMA
> -	select SYS_SUPPORTS_CMT
>  	select ARCH_WANT_OPTIONAL_GPIOLIB
>  	select PINCTRL
>  
> @@ -532,7 +501,6 @@ config CPU_SUBTYPE_SH7366
>  	select ARCH_SHMOBILE
>  	select ARCH_SPARSEMEM_ENABLE
>  	select SYS_SUPPORTS_NUMA
> -	select SYS_SUPPORTS_CMT
>  
>  endchoice
>  
> @@ -565,27 +533,6 @@ source "arch/sh/boards/Kconfig"
>  
>  menu "Timer and clock configuration"
>  
> -config SH_TIMER_TMU
> -	bool "TMU timer driver"
> -	depends on SYS_SUPPORTS_TMU
> -	default y
> -	help
> -	  This enables the build of the TMU timer driver.
> -
> -config SH_TIMER_CMT
> -	bool "CMT timer driver"
> -	depends on SYS_SUPPORTS_CMT
> -	default y
> -	help
> -	  This enables build of the CMT timer driver.
> -
> -config SH_TIMER_MTU2
> -	bool "MTU2 timer driver"
> -	depends on SYS_SUPPORTS_MTU2
> -	default y
> -	help
> -	  This enables build of the MTU2 timer driver.
> -
>  config SH_PCLK_FREQ
>  	int "Peripheral clock frequency (in Hz)"
>  	depends on SH_CLK_CPG_LEGACY
> --- 0001/drivers/clocksource/Kconfig
> +++ work/drivers/clocksource/Kconfig	2013-09-26 07:59:19.000000000 +0900
> @@ -109,3 +109,28 @@ config VF_PIT_TIMER
>  	bool
>  	help
>  	  Support for Period Interrupt Timer on Freescale Vybrid Family SoCs.
> +
> +config SH_TIMER_CMT
> +	bool "CMT timer driver"
> +	default y
> +	help
> +	  This enables build of the CMT timer driver.
> +
> +config SH_TIMER_MTU2
> +	bool "MTU2 timer driver"
> +	default y
> +	help
> +	  This enables build of the MTU2 timer driver.
> +
> +config SH_TIMER_TMU
> +	bool "TMU timer driver"
> +	default y
> +	help
> +	  This enables build of the TMU timer driver.
> +
> +config EM_TIMER_STI
> +	bool "STI timer driver"
> +	default y
> +	help
> +	  This enables build of the STI timer driver.
> +
> 

  reply	other threads:[~2013-09-27  4:43 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-25 23:37 [PATCH/RFC] clocksource: Consolidate SH and ARM mach-shmobile Kconfig bits Magnus Damm
2013-09-25 23:37 ` Magnus Damm
2013-09-27  4:43 ` Simon Horman [this message]
2013-09-27  4:43   ` Simon Horman
2013-10-07 16:37   ` Olof Johansson
2013-10-07 16:37     ` Olof Johansson

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=20130927044323.GC16541@verge.net.au \
    --to=horms@verge.net.au \
    --cc=arnd@arndb.de \
    --cc=daniel.lezcano@linaro.org \
    --cc=khilman@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sh@vger.kernel.org \
    --cc=magnus.damm@gmail.com \
    --cc=olof@lixom.net \
    --cc=tglx@linutronix.de \
    /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.