All of lore.kernel.org
 help / color / mirror / Atom feed
From: <Tudor.Ambarus@microchip.com>
To: <p.yadav@ti.com>
Cc: <miquel.raynal@bootlin.com>, <richard@nod.at>, <vigneshr@ti.com>,
	<linux-mtd@lists.infradead.org>, <linux-kernel@vger.kernel.org>,
	<nsekhar@ti.com>, <boris.brezillon@collabora.com>
Subject: Re: [PATCH v13 09/15] mtd: spi-nor: core: enable octal DTR mode when possible
Date: Tue, 29 Sep 2020 13:05:14 +0000	[thread overview]
Message-ID: <dc0fd8d2-f639-0752-2a4e-8adaaeec5c7a@microchip.com> (raw)
In-Reply-To: <20200929125131.fmztz4rr2iuj6uof@ti.com>

On 9/29/20 3:51 PM, Pratyush Yadav wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> 
> On 29/09/20 11:26AM, Tudor.Ambarus@microchip.com wrote:
>> Hi,
>>
>> On 9/16/20 3:44 PM, Pratyush Yadav wrote:
>>> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>>>
>>> Allow flashes to specify a hook to enable octal DTR mode. Use this hook
>>> whenever possible to get optimal transfer speeds.
>>>
>>> Signed-off-by: Pratyush Yadav <p.yadav@ti.com>
>>> ---
>>>  drivers/mtd/spi-nor/core.c | 35 +++++++++++++++++++++++++++++++++++
>>>  drivers/mtd/spi-nor/core.h |  2 ++
>>>  2 files changed, 37 insertions(+)
>>>
>>> diff --git a/drivers/mtd/spi-nor/core.c b/drivers/mtd/spi-nor/core.c
>>> index 87c568debf14..6ee93544d72f 100644
>>> --- a/drivers/mtd/spi-nor/core.c
>>> +++ b/drivers/mtd/spi-nor/core.c
>>> @@ -3069,6 +3069,35 @@ static int spi_nor_init_params(struct spi_nor *nor)
>>>         return 0;
>>>  }
>>>
>>> +/** spi_nor_octal_dtr_enable() - enable Octal DTR I/O if needed
>>> + * @nor:                 pointer to a 'struct spi_nor'
>>> + * @enable:              whether to enable or disable Octal DTR
>>> + *
>>> + * Return: 0 on success, -errno otherwise.
>>> + */
>>> +static int spi_nor_octal_dtr_enable(struct spi_nor *nor, bool enable)
>>> +{
>>> +       int ret;
>>> +
>>> +       if (!nor->params->octal_dtr_enable)
>>> +               return 0;
>>> +
>>> +       if (!(nor->read_proto == SNOR_PROTO_8_8_8_DTR &&
>>> +             nor->write_proto == SNOR_PROTO_8_8_8_DTR))
>>> +               return 0;
>>> +
>>> +       ret = nor->params->octal_dtr_enable(nor, enable);
>>> +       if (ret)
>>> +               return ret;
>>> +
>>> +       if (enable)
>>> +               nor->reg_proto = SNOR_PROTO_8_8_8_DTR;
>>> +       else
>>> +               nor->reg_proto = SNOR_PROTO_1_1_1;
>>> +
>>> +       return 0;
>>> +}
>>> +
>>>  /**
>>>   * spi_nor_quad_enable() - enable/disable Quad I/O if needed.
>>>   * @nor:                pointer to a 'struct spi_nor'
>>> @@ -3109,6 +3138,12 @@ static int spi_nor_init(struct spi_nor *nor)
>>>  {
>>>         int err;
>>>
>>> +       err = spi_nor_octal_dtr_enable(nor, true);
>>> +       if (err) {
>>> +               dev_dbg(nor->dev, "octal mode not supported\n");
>>> +               return err;
>>> +       }
>>> +
>>>         err = spi_nor_quad_enable(nor, true);
>>
>> Is it possible to enable octal dtr and quad at the same time?
>> Maybe an 'if/else if' here depending on the values of nor->read_proto and
>> nor->write_proto
> 
> No it is not. If you look inside spi_nor_octal_dtr_enable() and
> spi_nor_quad_enable(), they both are a no-op if the protocol does not
> match. spi_nor_quad_enable() was already doing it this way so I made
> spi_nor_octal_dtr_enable() follow suit. So this is effectively an
> if-else on the value of nor->read_proto. I don't think an explicit one
> is needed.

you're right! thanks


WARNING: multiple messages have this Message-ID (diff)
From: <Tudor.Ambarus@microchip.com>
To: <p.yadav@ti.com>
Cc: vigneshr@ti.com, richard@nod.at, nsekhar@ti.com,
	linux-kernel@vger.kernel.org, boris.brezillon@collabora.com,
	linux-mtd@lists.infradead.org, miquel.raynal@bootlin.com
Subject: Re: [PATCH v13 09/15] mtd: spi-nor: core: enable octal DTR mode when possible
Date: Tue, 29 Sep 2020 13:05:14 +0000	[thread overview]
Message-ID: <dc0fd8d2-f639-0752-2a4e-8adaaeec5c7a@microchip.com> (raw)
In-Reply-To: <20200929125131.fmztz4rr2iuj6uof@ti.com>

On 9/29/20 3:51 PM, Pratyush Yadav wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> 
> On 29/09/20 11:26AM, Tudor.Ambarus@microchip.com wrote:
>> Hi,
>>
>> On 9/16/20 3:44 PM, Pratyush Yadav wrote:
>>> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>>>
>>> Allow flashes to specify a hook to enable octal DTR mode. Use this hook
>>> whenever possible to get optimal transfer speeds.
>>>
>>> Signed-off-by: Pratyush Yadav <p.yadav@ti.com>
>>> ---
>>>  drivers/mtd/spi-nor/core.c | 35 +++++++++++++++++++++++++++++++++++
>>>  drivers/mtd/spi-nor/core.h |  2 ++
>>>  2 files changed, 37 insertions(+)
>>>
>>> diff --git a/drivers/mtd/spi-nor/core.c b/drivers/mtd/spi-nor/core.c
>>> index 87c568debf14..6ee93544d72f 100644
>>> --- a/drivers/mtd/spi-nor/core.c
>>> +++ b/drivers/mtd/spi-nor/core.c
>>> @@ -3069,6 +3069,35 @@ static int spi_nor_init_params(struct spi_nor *nor)
>>>         return 0;
>>>  }
>>>
>>> +/** spi_nor_octal_dtr_enable() - enable Octal DTR I/O if needed
>>> + * @nor:                 pointer to a 'struct spi_nor'
>>> + * @enable:              whether to enable or disable Octal DTR
>>> + *
>>> + * Return: 0 on success, -errno otherwise.
>>> + */
>>> +static int spi_nor_octal_dtr_enable(struct spi_nor *nor, bool enable)
>>> +{
>>> +       int ret;
>>> +
>>> +       if (!nor->params->octal_dtr_enable)
>>> +               return 0;
>>> +
>>> +       if (!(nor->read_proto == SNOR_PROTO_8_8_8_DTR &&
>>> +             nor->write_proto == SNOR_PROTO_8_8_8_DTR))
>>> +               return 0;
>>> +
>>> +       ret = nor->params->octal_dtr_enable(nor, enable);
>>> +       if (ret)
>>> +               return ret;
>>> +
>>> +       if (enable)
>>> +               nor->reg_proto = SNOR_PROTO_8_8_8_DTR;
>>> +       else
>>> +               nor->reg_proto = SNOR_PROTO_1_1_1;
>>> +
>>> +       return 0;
>>> +}
>>> +
>>>  /**
>>>   * spi_nor_quad_enable() - enable/disable Quad I/O if needed.
>>>   * @nor:                pointer to a 'struct spi_nor'
>>> @@ -3109,6 +3138,12 @@ static int spi_nor_init(struct spi_nor *nor)
>>>  {
>>>         int err;
>>>
>>> +       err = spi_nor_octal_dtr_enable(nor, true);
>>> +       if (err) {
>>> +               dev_dbg(nor->dev, "octal mode not supported\n");
>>> +               return err;
>>> +       }
>>> +
>>>         err = spi_nor_quad_enable(nor, true);
>>
>> Is it possible to enable octal dtr and quad at the same time?
>> Maybe an 'if/else if' here depending on the values of nor->read_proto and
>> nor->write_proto
> 
> No it is not. If you look inside spi_nor_octal_dtr_enable() and
> spi_nor_quad_enable(), they both are a no-op if the protocol does not
> match. spi_nor_quad_enable() was already doing it this way so I made
> spi_nor_octal_dtr_enable() follow suit. So this is effectively an
> if-else on the value of nor->read_proto. I don't think an explicit one
> is needed.

you're right! thanks

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

  reply	other threads:[~2020-09-29 13:13 UTC|newest]

Thread overview: 114+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-16 12:44 [PATCH v13 00/15] mtd: spi-nor: add xSPI Octal DTR support Pratyush Yadav
2020-09-16 12:44 ` Pratyush Yadav
2020-09-16 12:44 ` Pratyush Yadav
2020-09-16 12:44 ` [PATCH v13 01/15] mtd: spi-nor: core: use EOPNOTSUPP instead of ENOTSUPP Pratyush Yadav
2020-09-16 12:44   ` Pratyush Yadav
2020-09-16 12:44   ` Pratyush Yadav
2020-09-29 11:30   ` Tudor.Ambarus
2020-09-29 11:30     ` Tudor.Ambarus
2020-09-16 12:44 ` [PATCH v13 02/15] mtd: spi-nor: core: add spi_nor_{read,write}_reg() helpers Pratyush Yadav
2020-09-16 12:44   ` [PATCH v13 02/15] mtd: spi-nor: core: add spi_nor_{read, write}_reg() helpers Pratyush Yadav
2020-09-16 12:44   ` [PATCH v13 02/15] mtd: spi-nor: core: add spi_nor_{read,write}_reg() helpers Pratyush Yadav
2020-09-29 11:38   ` Tudor.Ambarus
2020-09-29 11:38     ` Tudor.Ambarus
2020-09-29 12:54     ` Pratyush Yadav
2020-09-29 12:54       ` Pratyush Yadav
2020-09-16 12:44 ` [PATCH v13 03/15] mtd: spi-nor: core: add spi_nor_controller_ops_erase helper Pratyush Yadav
2020-09-16 12:44   ` Pratyush Yadav
2020-09-16 12:44   ` Pratyush Yadav
2020-09-16 12:44 ` [PATCH v13 04/15] mtd: spi-nor: add support for DTR protocol Pratyush Yadav
2020-09-16 12:44   ` Pratyush Yadav
2020-09-16 12:44   ` Pratyush Yadav
2020-09-16 12:44 ` [PATCH v13 05/15] mtd: spi-nor: sfdp: get command opcode extension type from BFPT Pratyush Yadav
2020-09-16 12:44   ` Pratyush Yadav
2020-09-16 12:44   ` Pratyush Yadav
2020-09-30  6:17   ` Tudor.Ambarus
2020-09-30  6:17     ` Tudor.Ambarus
2020-09-16 12:44 ` [PATCH v13 06/15] mtd: spi-nor: sfdp: parse xSPI Profile 1.0 table Pratyush Yadav
2020-09-16 12:44   ` Pratyush Yadav
2020-09-16 12:44   ` Pratyush Yadav
2020-09-30  6:44   ` Tudor.Ambarus
2020-09-30  6:44     ` Tudor.Ambarus
2020-09-30  6:53     ` Pratyush Yadav
2020-09-30  6:53       ` Pratyush Yadav
2020-09-16 12:44 ` [PATCH v13 07/15] mtd: spi-nor: core: use dummy cycle and address width info from SFDP Pratyush Yadav
2020-09-16 12:44   ` Pratyush Yadav
2020-09-16 12:44   ` Pratyush Yadav
2020-09-30  6:46   ` Tudor.Ambarus
2020-09-30  6:46     ` Tudor.Ambarus
2020-09-16 12:44 ` [PATCH v13 08/15] mtd: spi-nor: core: do 2 byte reads for SR and FSR in DTR mode Pratyush Yadav
2020-09-16 12:44   ` Pratyush Yadav
2020-09-16 12:44   ` Pratyush Yadav
2020-09-30  6:50   ` Tudor.Ambarus
2020-09-30  6:50     ` Tudor.Ambarus
2020-09-30  6:55     ` Pratyush Yadav
2020-09-30  6:55       ` Pratyush Yadav
2020-09-16 12:44 ` [PATCH v13 09/15] mtd: spi-nor: core: enable octal DTR mode when possible Pratyush Yadav
2020-09-16 12:44   ` Pratyush Yadav
2020-09-16 12:44   ` Pratyush Yadav
2020-09-29 11:26   ` Tudor.Ambarus
2020-09-29 11:26     ` Tudor.Ambarus
2020-09-29 12:51     ` Pratyush Yadav
2020-09-29 12:51       ` Pratyush Yadav
2020-09-29 13:05       ` Tudor.Ambarus [this message]
2020-09-29 13:05         ` Tudor.Ambarus
2020-09-30  7:11   ` Tudor.Ambarus
2020-09-30  7:11     ` Tudor.Ambarus
2020-09-16 12:44 ` [PATCH v13 10/15] mtd: spi-nor: sfdp: detect Soft Reset sequence support from BFPT Pratyush Yadav
2020-09-16 12:44   ` Pratyush Yadav
2020-09-16 12:44   ` Pratyush Yadav
2020-09-30  7:23   ` Tudor.Ambarus
2020-09-30  7:23     ` Tudor.Ambarus
2020-09-30  7:31     ` Pratyush Yadav
2020-09-30  7:31       ` Pratyush Yadav
2020-09-16 12:44 ` [PATCH v13 11/15] mtd: spi-nor: core: perform a Soft Reset on shutdown Pratyush Yadav
2020-09-16 12:44   ` Pratyush Yadav
2020-09-16 12:44   ` Pratyush Yadav
2020-09-29 13:08   ` Pratyush Yadav
2020-09-29 13:08     ` Pratyush Yadav
2020-09-30  7:32     ` Tudor.Ambarus
2020-09-30  7:32       ` Tudor.Ambarus
2020-09-30  7:43       ` Pratyush Yadav
2020-09-30  7:43         ` Pratyush Yadav
2020-09-16 12:44 ` [PATCH v13 12/15] mtd: spi-nor: core: disable Octal DTR mode on suspend Pratyush Yadav
2020-09-16 12:44   ` Pratyush Yadav
2020-09-16 12:44   ` Pratyush Yadav
2020-09-30  7:40   ` Tudor.Ambarus
2020-09-30  7:40     ` Tudor.Ambarus
2020-09-30  7:44     ` Pratyush Yadav
2020-09-30  7:44       ` Pratyush Yadav
2020-09-16 12:44 ` [PATCH v13 13/15] mtd: spi-nor: core: expose spi_nor_default_setup() in core.h Pratyush Yadav
2020-09-16 12:44   ` Pratyush Yadav
2020-09-16 12:44   ` Pratyush Yadav
2020-09-30  7:51   ` Tudor.Ambarus
2020-09-30  7:51     ` Tudor.Ambarus
2020-09-30  8:03     ` Pratyush Yadav
2020-09-30  8:03       ` Pratyush Yadav
2020-09-16 12:44 ` [PATCH v13 14/15] mtd: spi-nor: spansion: add support for Cypress Semper flash Pratyush Yadav
2020-09-16 12:44   ` Pratyush Yadav
2020-09-16 12:44   ` Pratyush Yadav
2020-09-30  8:36   ` Tudor.Ambarus
2020-09-30  8:36     ` Tudor.Ambarus
2020-09-30 12:32     ` Pratyush Yadav
2020-09-30 12:32       ` Pratyush Yadav
2020-09-16 12:44 ` [PATCH v13 15/15] mtd: spi-nor: micron-st: allow using MT35XU512ABA in Octal DTR mode Pratyush Yadav
2020-09-16 12:44   ` Pratyush Yadav
2020-09-16 12:44   ` Pratyush Yadav
2020-09-30  9:12   ` Tudor.Ambarus
2020-09-30  9:12     ` Tudor.Ambarus
2020-09-29  9:59 ` [RFC PATCH 0/3] mtd: spi-nor: Tackle stateful modes Tudor Ambarus
2020-09-29  9:59   ` Tudor Ambarus
2020-09-29  9:59   ` [RFC PATCH 1/3] mtd: spi-nor: Introduce SNOR_F_IO_MODE_EN_VOLATILE Tudor Ambarus
2020-09-29  9:59     ` Tudor Ambarus
2020-09-29 16:45     ` Vignesh Raghavendra
2020-09-29 16:45       ` Vignesh Raghavendra
2020-09-29  9:59   ` [RFC PATCH 2/3] mtd: spi-nor: Introduce MTD_SPI_NOR_ALLOW_STATEFUL_MODES Tudor Ambarus
2020-09-29  9:59     ` Tudor Ambarus
2020-09-29 16:45     ` Vignesh Raghavendra
2020-09-29 16:45       ` Vignesh Raghavendra
2020-09-29  9:59   ` [RFC PATCH 3/3] mtd: spi-nor: Parse SFDP SCCR Map Tudor Ambarus
2020-09-29  9:59     ` Tudor Ambarus
2020-09-30  9:57 ` [PATCH v13 00/15] mtd: spi-nor: add xSPI Octal DTR support Tudor.Ambarus
2020-09-30  9:57   ` Tudor.Ambarus
2020-09-30 12:01   ` Pratyush Yadav
2020-09-30 12:01     ` Pratyush Yadav

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=dc0fd8d2-f639-0752-2a4e-8adaaeec5c7a@microchip.com \
    --to=tudor.ambarus@microchip.com \
    --cc=boris.brezillon@collabora.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=miquel.raynal@bootlin.com \
    --cc=nsekhar@ti.com \
    --cc=p.yadav@ti.com \
    --cc=richard@nod.at \
    --cc=vigneshr@ti.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.