From: Huang Shijie <shijie8@gmail.com>
To: David Woodhouse <dwmw2@infradead.org>
Cc: "devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"computersforpeace@gmail.com" <computersforpeace@gmail.com>,
"b44548@freescale.com" <b44548@freescale.com>,
"thomas.langer@lantiq.com" <thomas.langer@lantiq.com>,
"b18965@freescale.com" <b18965@freescale.com>,
"dedekind1@gmail.com" <dedekind1@gmail.com>,
"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
"linux-spi@vger.kernel.org" <linux-spi@vger.kernel.org>,
Huang Shijie <b32955@freescale.com>,
Mark Brown <broonie@kernel.org>,
"linux-mtd@lists.infradead.org" <linux-mtd@lists.infradead.org>,
"Gupta, Pekon" <pekon@ti.com>,
"kernel@pengutronix.de" <kernel@pengutronix.de>,
"lznuaa@gmail.com" <lznuaa@gmail.com>,
"shawn.guo@linaro.org" <shawn.guo@linaro.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v3 0/8] Add the Quadspi driver for vf610-twr
Date: Fri, 13 Sep 2013 00:12:14 -0400 [thread overview]
Message-ID: <20130913041208.GD3051@gmail.com> (raw)
In-Reply-To: <1378999322.4210.95.camel@i7.infradead.org>
On Thu, Sep 12, 2013 at 04:22:02PM +0100, David Woodhouse wrote:
> On Thu, 2013-09-12 at 22:58 -0400, Huang Shijie wrote:
> >
> > But for the quadspi driver, it does not need this information.
> >
> > When the drivers knows that it is a Quad-read transaction, it will uses
> > the relative LUT sequence which uses the 4 lines.
>
> But the controller driver shouldn't *have* that incestuous knowledge of
> the command set of the chip that happens to be connected to it.
I think the controller is designed for the NOR flash, yes, a little
strange.
>
> That's what we're *complaining* about.
>
> It *should* "need this information", and should just do what it's *told*
> to do by the slave device driver.
I can add the lines info in the m25p80_read() for the quad-read, but the lines
information is redundant to this Quadspi driver.
I will send you the datasheet tomorrow.
Mark and you want to create the LUT instruction sequence at the runtime,
But there is some disadvantage if we do so:
[1] low efficiency:
If you want to change the LUT regitster, you should unlock the LUT
register, and change the LUT regitsters, and lock the LUT
regitsters again.
[2] we may can not create all the LUT instruction sequence at the
runtime. For example, the buffer program(OPCODE_PP):
the m25p80_write() may write 256bytes at a time, but the Quadspi
controller only has a 64-byte TX-FIFO, so the controller should
write a 64bytes firstly, then sends to the NOR with a read-status
command. Do you want to create a read-status LUT instruction
sequence at run time? This is not good solution, we should
pre-populate the read-status LUT information.
[3] We may can not create the LUT instruction sequence at the runtime,
since we can not get enough information from the spi_transfer{}.
A whole LUT instruction sequence may needs the following info:
1.) spi command.
2.) lines info: single line, dual lines, quad lines.
3.) Address width: 3 bytes address or 4 bytes address.
4.) instruction type: Read or write or other.
5.) length info: how many bytes for this transaction .
6.) dummy info: how many dummy is needed for this transaction.
We can not get the dummy info from the spi_transfer{}
I may still miss something. But If we want to create a LUT
instruction sequence at the runtime, we should _PARSE_ out the SPI
NOR command firstly. If we parse out the SPI nor commands, there
is no difference between the pre-populete-LUT and
create-LUT-at-runtime.
thanks
Huang Shijie
WARNING: multiple messages have this Message-ID (diff)
From: shijie8@gmail.com (Huang Shijie)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 0/8] Add the Quadspi driver for vf610-twr
Date: Fri, 13 Sep 2013 00:12:14 -0400 [thread overview]
Message-ID: <20130913041208.GD3051@gmail.com> (raw)
In-Reply-To: <1378999322.4210.95.camel@i7.infradead.org>
On Thu, Sep 12, 2013 at 04:22:02PM +0100, David Woodhouse wrote:
> On Thu, 2013-09-12 at 22:58 -0400, Huang Shijie wrote:
> >
> > But for the quadspi driver, it does not need this information.
> >
> > When the drivers knows that it is a Quad-read transaction, it will uses
> > the relative LUT sequence which uses the 4 lines.
>
> But the controller driver shouldn't *have* that incestuous knowledge of
> the command set of the chip that happens to be connected to it.
I think the controller is designed for the NOR flash, yes, a little
strange.
>
> That's what we're *complaining* about.
>
> It *should* "need this information", and should just do what it's *told*
> to do by the slave device driver.
I can add the lines info in the m25p80_read() for the quad-read, but the lines
information is redundant to this Quadspi driver.
I will send you the datasheet tomorrow.
Mark and you want to create the LUT instruction sequence at the runtime,
But there is some disadvantage if we do so:
[1] low efficiency:
If you want to change the LUT regitster, you should unlock the LUT
register, and change the LUT regitsters, and lock the LUT
regitsters again.
[2] we may can not create all the LUT instruction sequence at the
runtime. For example, the buffer program(OPCODE_PP):
the m25p80_write() may write 256bytes at a time, but the Quadspi
controller only has a 64-byte TX-FIFO, so the controller should
write a 64bytes firstly, then sends to the NOR with a read-status
command. Do you want to create a read-status LUT instruction
sequence at run time? This is not good solution, we should
pre-populate the read-status LUT information.
[3] We may can not create the LUT instruction sequence at the runtime,
since we can not get enough information from the spi_transfer{}.
A whole LUT instruction sequence may needs the following info:
1.) spi command.
2.) lines info: single line, dual lines, quad lines.
3.) Address width: 3 bytes address or 4 bytes address.
4.) instruction type: Read or write or other.
5.) length info: how many bytes for this transaction .
6.) dummy info: how many dummy is needed for this transaction.
We can not get the dummy info from the spi_transfer{}
I may still miss something. But If we want to create a LUT
instruction sequence at the runtime, we should _PARSE_ out the SPI
NOR command firstly. If we parse out the SPI nor commands, there
is no difference between the pre-populete-LUT and
create-LUT-at-runtime.
thanks
Huang Shijie
WARNING: multiple messages have this Message-ID (diff)
From: Huang Shijie <shijie8@gmail.com>
To: David Woodhouse <dwmw2@infradead.org>
Cc: Huang Shijie <b32955@freescale.com>,
Mark Brown <broonie@kernel.org>, "Gupta, Pekon" <pekon@ti.com>,
"thomas.langer@lantiq.com" <thomas.langer@lantiq.com>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"shawn.guo@linaro.org" <shawn.guo@linaro.org>,
"b44548@freescale.com" <b44548@freescale.com>,
"dedekind1@gmail.com" <dedekind1@gmail.com>,
"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
"b18965@freescale.com" <b18965@freescale.com>,
"linux-spi@vger.kernel.org" <linux-spi@vger.kernel.org>,
"linux-mtd@lists.infradead.org" <linux-mtd@lists.infradead.org>,
"kernel@pengutronix.de" <kernel@pengutronix.de>,
"lznuaa@gmail.com" <lznuaa@gmail.com>,
"computersforpeace@gmail.com" <computersforpeace@gmail.com>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v3 0/8] Add the Quadspi driver for vf610-twr
Date: Fri, 13 Sep 2013 00:12:14 -0400 [thread overview]
Message-ID: <20130913041208.GD3051@gmail.com> (raw)
In-Reply-To: <1378999322.4210.95.camel@i7.infradead.org>
On Thu, Sep 12, 2013 at 04:22:02PM +0100, David Woodhouse wrote:
> On Thu, 2013-09-12 at 22:58 -0400, Huang Shijie wrote:
> >
> > But for the quadspi driver, it does not need this information.
> >
> > When the drivers knows that it is a Quad-read transaction, it will uses
> > the relative LUT sequence which uses the 4 lines.
>
> But the controller driver shouldn't *have* that incestuous knowledge of
> the command set of the chip that happens to be connected to it.
I think the controller is designed for the NOR flash, yes, a little
strange.
>
> That's what we're *complaining* about.
>
> It *should* "need this information", and should just do what it's *told*
> to do by the slave device driver.
I can add the lines info in the m25p80_read() for the quad-read, but the lines
information is redundant to this Quadspi driver.
I will send you the datasheet tomorrow.
Mark and you want to create the LUT instruction sequence at the runtime,
But there is some disadvantage if we do so:
[1] low efficiency:
If you want to change the LUT regitster, you should unlock the LUT
register, and change the LUT regitsters, and lock the LUT
regitsters again.
[2] we may can not create all the LUT instruction sequence at the
runtime. For example, the buffer program(OPCODE_PP):
the m25p80_write() may write 256bytes at a time, but the Quadspi
controller only has a 64-byte TX-FIFO, so the controller should
write a 64bytes firstly, then sends to the NOR with a read-status
command. Do you want to create a read-status LUT instruction
sequence at run time? This is not good solution, we should
pre-populate the read-status LUT information.
[3] We may can not create the LUT instruction sequence at the runtime,
since we can not get enough information from the spi_transfer{}.
A whole LUT instruction sequence may needs the following info:
1.) spi command.
2.) lines info: single line, dual lines, quad lines.
3.) Address width: 3 bytes address or 4 bytes address.
4.) instruction type: Read or write or other.
5.) length info: how many bytes for this transaction .
6.) dummy info: how many dummy is needed for this transaction.
We can not get the dummy info from the spi_transfer{}
I may still miss something. But If we want to create a LUT
instruction sequence at the runtime, we should _PARSE_ out the SPI
NOR command firstly. If we parse out the SPI nor commands, there
is no difference between the pre-populete-LUT and
create-LUT-at-runtime.
thanks
Huang Shijie
next prev parent reply other threads:[~2013-09-13 4:12 UTC|newest]
Thread overview: 241+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-30 2:07 [PATCH v3 0/8] Add the Quadspi driver for vf610-twr Huang Shijie
2013-08-30 2:07 ` Huang Shijie
2013-08-30 2:07 ` Huang Shijie
2013-08-30 2:07 ` [PATCH v3 1/8] mtd: m25p80: move the spi-nor commands to a header Huang Shijie
2013-08-30 2:07 ` Huang Shijie
2013-08-30 2:07 ` Huang Shijie
2013-08-30 2:07 ` [PATCH v3 2/8] mtd: m25p80: add support for Spansion s25fl128s chip Huang Shijie
2013-08-30 2:07 ` Huang Shijie
2013-08-30 2:07 ` Huang Shijie
2013-08-30 2:07 ` [PATCH v3 3/8] mtd: m25p80: add the quad-read support Huang Shijie
2013-08-30 2:07 ` Huang Shijie
2013-08-30 2:07 ` Huang Shijie
2013-08-30 2:07 ` [PATCH v3 4/8] mtd: m25p80: add the DDR " Huang Shijie
2013-08-30 2:07 ` Huang Shijie
2013-08-30 2:07 ` Huang Shijie
2013-08-30 2:07 ` [PATCH v3 5/8] spi: Add Freescale QuadSpi driver Huang Shijie
2013-08-30 2:07 ` Huang Shijie
2013-08-30 2:07 ` Huang Shijie
2013-09-10 18:09 ` Mark Brown
2013-09-10 18:09 ` Mark Brown
2013-09-10 18:09 ` Mark Brown
2013-09-11 2:40 ` Huang Shijie
2013-09-11 2:40 ` Huang Shijie
2013-09-11 2:40 ` Huang Shijie
2013-09-11 10:39 ` Mark Brown
2013-09-11 10:39 ` Mark Brown
2013-09-11 10:39 ` Mark Brown
2013-08-30 2:07 ` [PATCH v3 6/8] Documentation: add the binding file for Quadspi driver Huang Shijie
2013-08-30 2:07 ` Huang Shijie
2013-08-30 2:07 ` Huang Shijie
2013-08-30 2:07 ` [PATCH v3 7/8] ARM: dts: vf610: change the PAD values for Quadspi Huang Shijie
2013-08-30 2:07 ` Huang Shijie
2013-08-30 2:07 ` Huang Shijie
2013-08-30 2:07 ` [PATCH v3 8/8] ARM: dts: vf610-twr: Add SPI NOR support Huang Shijie
2013-08-30 2:07 ` Huang Shijie
2013-08-30 2:07 ` Huang Shijie
2013-09-04 2:16 ` [PATCH v3 0/8] Add the Quadspi driver for vf610-twr Huang Shijie
2013-09-04 2:16 ` Huang Shijie
2013-09-04 2:16 ` Huang Shijie
2013-09-04 9:55 ` Mark Brown
2013-09-04 9:55 ` Mark Brown
2013-09-04 9:55 ` Mark Brown
2013-09-04 10:29 ` Huang Shijie
2013-09-04 10:29 ` Huang Shijie
2013-09-04 10:29 ` Huang Shijie
2013-09-04 11:33 ` Mark Brown
2013-09-04 11:33 ` Mark Brown
2013-09-04 11:33 ` Mark Brown
2013-09-05 1:43 ` Huang Shijie
2013-09-05 1:43 ` Huang Shijie
2013-09-05 1:43 ` Huang Shijie
2013-09-04 13:45 ` thomas.langer
2013-09-04 13:45 ` thomas.langer
2013-09-04 13:45 ` thomas.langer at lantiq.com
2013-09-05 2:04 ` Huang Shijie
2013-09-05 2:04 ` Huang Shijie
2013-09-05 2:04 ` Huang Shijie
2013-09-05 4:25 ` Gupta, Pekon
2013-09-05 4:25 ` Gupta, Pekon
2013-09-05 4:25 ` Gupta, Pekon
2013-09-05 5:34 ` Huang Shijie
2013-09-05 5:34 ` Huang Shijie
2013-09-05 5:34 ` Huang Shijie
2013-09-05 6:32 ` Gupta, Pekon
2013-09-05 6:32 ` Gupta, Pekon
2013-09-05 6:32 ` Gupta, Pekon
2013-09-05 7:45 ` Huang Shijie
2013-09-05 7:45 ` Huang Shijie
2013-09-05 7:45 ` Huang Shijie
2013-09-05 9:11 ` Gupta, Pekon
2013-09-05 9:11 ` Gupta, Pekon
2013-09-05 9:11 ` Gupta, Pekon
2013-09-05 9:30 ` Huang Shijie
2013-09-05 9:30 ` Huang Shijie
2013-09-05 9:30 ` Huang Shijie
2013-09-05 13:50 ` Mark Brown
2013-09-05 13:50 ` Mark Brown
2013-09-05 13:50 ` Mark Brown
2013-09-06 2:36 ` Huang Shijie
2013-09-06 2:36 ` Huang Shijie
2013-09-06 2:36 ` Huang Shijie
2013-09-08 13:47 ` Mark Brown
2013-09-08 13:47 ` Mark Brown
2013-09-08 13:47 ` Mark Brown
2013-09-09 3:07 ` Huang Shijie
2013-09-09 3:07 ` Huang Shijie
2013-09-09 3:07 ` Huang Shijie
2013-09-09 15:14 ` Mark Brown
2013-09-09 15:14 ` Mark Brown
2013-09-09 15:14 ` Mark Brown
2013-09-10 6:59 ` Huang Shijie
2013-09-10 6:59 ` Huang Shijie
2013-09-10 6:59 ` Huang Shijie
2013-09-10 18:07 ` Mark Brown
2013-09-10 18:07 ` Mark Brown
2013-09-10 18:07 ` Mark Brown
2013-09-11 2:38 ` Huang Shijie
2013-09-11 2:38 ` Huang Shijie
2013-09-11 2:38 ` Huang Shijie
2013-09-11 10:41 ` Mark Brown
2013-09-11 10:41 ` Mark Brown
2013-09-11 10:41 ` Mark Brown
2013-09-11 10:54 ` Huang Shijie
2013-09-11 10:54 ` Huang Shijie
2013-09-11 10:54 ` Huang Shijie
2013-09-11 11:30 ` Mark Brown
2013-09-11 11:30 ` Mark Brown
2013-09-11 11:30 ` Mark Brown
2013-09-11 12:26 ` Gupta, Pekon
2013-09-11 12:26 ` Gupta, Pekon
2013-09-11 12:26 ` Gupta, Pekon
2013-09-11 12:35 ` Mark Brown
2013-09-11 12:35 ` Mark Brown
2013-09-11 12:35 ` Mark Brown
2013-09-12 9:18 ` Huang Shijie
2013-09-12 9:18 ` Huang Shijie
2013-09-12 9:18 ` Huang Shijie
2013-09-12 10:20 ` Mark Brown
2013-09-12 10:20 ` Mark Brown
2013-09-12 10:20 ` Mark Brown
2013-09-13 3:30 ` Huang Shijie
2013-09-13 3:30 ` Huang Shijie
2013-09-13 3:30 ` Huang Shijie
2013-09-12 15:32 ` David Woodhouse
2013-09-12 15:32 ` David Woodhouse
2013-09-12 15:32 ` David Woodhouse
2013-09-12 10:39 ` David Woodhouse
2013-09-12 10:39 ` David Woodhouse
2013-09-12 10:39 ` David Woodhouse
2013-09-12 10:56 ` Gupta, Pekon
2013-09-12 10:56 ` Gupta, Pekon
2013-09-12 10:56 ` Gupta, Pekon
2013-09-12 11:17 ` David Woodhouse
2013-09-12 11:17 ` David Woodhouse
2013-09-12 11:17 ` David Woodhouse
2013-09-12 11:48 ` Mark Brown
2013-09-12 11:48 ` Mark Brown
2013-09-12 11:48 ` Mark Brown
2013-09-12 11:55 ` Russell King - ARM Linux
2013-09-12 11:55 ` Russell King - ARM Linux
2013-09-12 11:55 ` Russell King - ARM Linux
2013-09-12 13:24 ` Mark Brown
2013-09-12 13:24 ` Mark Brown
2013-09-12 13:24 ` Mark Brown
2013-09-12 13:25 ` Ricard Wanderlof
2013-09-12 13:25 ` Ricard Wanderlof
2013-09-12 14:10 ` Russell King - ARM Linux
2013-09-12 14:10 ` Russell King - ARM Linux
2013-09-12 14:10 ` Russell King - ARM Linux
2013-09-12 12:02 ` David Woodhouse
2013-09-12 12:02 ` David Woodhouse
2013-09-12 12:02 ` David Woodhouse
2013-09-12 13:43 ` Mark Brown
2013-09-12 13:43 ` Mark Brown
2013-09-12 13:43 ` Mark Brown
2013-09-12 14:03 ` David Woodhouse
2013-09-12 14:03 ` David Woodhouse
2013-09-12 14:03 ` David Woodhouse
2013-09-12 14:40 ` Mark Brown
2013-09-12 14:40 ` Mark Brown
2013-09-12 14:40 ` Mark Brown
2013-09-13 3:14 ` Huang Shijie
2013-09-13 3:14 ` Huang Shijie
2013-09-13 3:14 ` Huang Shijie
2013-09-11 14:05 ` David Woodhouse
2013-09-11 14:05 ` David Woodhouse
2013-09-11 14:05 ` David Woodhouse
2013-09-11 15:07 ` Mark Brown
2013-09-11 15:07 ` Mark Brown
2013-09-11 15:07 ` Mark Brown
[not found] ` <20130909151450 <52318953.6090405@freescale.com>
[not found] ` <52318953.6090405@freescale.com>
2013-09-12 9:50 ` David Woodhouse
2013-09-12 9:50 ` David Woodhouse
2013-09-12 9:50 ` David Woodhouse
2013-09-12 10:19 ` Mark Brown
2013-09-12 10:19 ` Mark Brown
2013-09-12 10:19 ` Mark Brown
2013-09-13 2:58 ` Huang Shijie
2013-09-13 2:58 ` Huang Shijie
2013-09-13 2:58 ` Huang Shijie
2013-09-12 15:22 ` David Woodhouse
2013-09-12 15:22 ` David Woodhouse
2013-09-12 15:22 ` David Woodhouse
2013-09-13 4:12 ` Huang Shijie [this message]
2013-09-13 4:12 ` Huang Shijie
2013-09-13 4:12 ` Huang Shijie
2013-09-12 16:26 ` David Woodhouse
2013-09-12 16:26 ` David Woodhouse
2013-09-12 16:26 ` David Woodhouse
2013-09-13 3:06 ` Huang Shijie
2013-09-13 3:06 ` Huang Shijie
2013-09-13 3:06 ` Huang Shijie
2013-09-12 16:27 ` Fabio Estevam
2013-09-12 16:27 ` Fabio Estevam
2013-09-12 16:27 ` Fabio Estevam
2013-09-13 2:21 ` Huang Shijie
2013-09-13 2:21 ` Huang Shijie
2013-09-13 2:21 ` Huang Shijie
2013-09-12 20:56 ` Mark Brown
2013-09-12 20:56 ` Mark Brown
2013-09-12 20:56 ` Mark Brown
2013-09-13 4:55 ` Huang Shijie
2013-09-13 4:55 ` Huang Shijie
2013-09-13 4:55 ` Huang Shijie
2013-09-13 10:21 ` Mark Brown
2013-09-13 10:21 ` Mark Brown
2013-09-13 10:21 ` Mark Brown
2013-09-16 2:40 ` Huang Shijie
2013-09-16 2:40 ` Huang Shijie
2013-09-16 2:40 ` Huang Shijie
2013-09-16 10:19 ` Mark Brown
2013-09-16 10:19 ` Mark Brown
2013-09-16 10:19 ` Mark Brown
2013-09-16 10:27 ` Huang Shijie
2013-09-16 10:27 ` Huang Shijie
2013-09-16 10:27 ` Huang Shijie
2013-09-16 11:06 ` Mark Brown
2013-09-16 11:06 ` Mark Brown
2013-09-16 11:06 ` Mark Brown
2013-09-17 2:14 ` Huang Shijie
2013-09-17 2:14 ` Huang Shijie
2013-09-17 2:14 ` Huang Shijie
2013-09-17 10:51 ` Mark Brown
2013-09-17 10:51 ` Mark Brown
2013-09-17 10:51 ` Mark Brown
2013-09-17 15:05 ` Gerhard Sittig
2013-09-17 15:05 ` Gerhard Sittig
2013-09-17 15:05 ` Gerhard Sittig
2013-09-17 16:49 ` Gerhard Sittig
2013-09-17 16:49 ` Gerhard Sittig
2013-09-17 16:49 ` Gerhard Sittig
2013-09-17 19:54 ` Sourav Poddar
2013-09-17 19:54 ` Sourav Poddar
2013-09-17 19:13 ` Mark Brown
2013-09-17 19:13 ` Mark Brown
2013-09-17 19:13 ` Mark Brown
2013-09-18 15:40 ` David Woodhouse
2013-09-18 15:40 ` David Woodhouse
2013-09-18 15:40 ` David Woodhouse
2013-09-18 16:00 ` Mark Brown
2013-09-18 16:00 ` Mark Brown
2013-09-18 16:00 ` Mark Brown
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=20130913041208.GD3051@gmail.com \
--to=shijie8@gmail.com \
--cc=b18965@freescale.com \
--cc=b32955@freescale.com \
--cc=b44548@freescale.com \
--cc=broonie@kernel.org \
--cc=computersforpeace@gmail.com \
--cc=dedekind1@gmail.com \
--cc=devicetree@vger.kernel.org \
--cc=dwmw2@infradead.org \
--cc=kernel@pengutronix.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=linux-spi@vger.kernel.org \
--cc=lznuaa@gmail.com \
--cc=pekon@ti.com \
--cc=shawn.guo@linaro.org \
--cc=thomas.langer@lantiq.com \
/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.