linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/1] mtd: spi-nor: improve macronix_quad_enable()
@ 2016-12-06 16:01 Cyrille Pitchen
  2016-12-06 19:01 ` Marek Vasut
  0 siblings, 1 reply; 5+ messages in thread
From: Cyrille Pitchen @ 2016-12-06 16:01 UTC (permalink / raw)
  To: marek.vasut
  Cc: computersforpeace, boris.brezillon, richard, linux-mtd,
	linux-kernel, Cyrille Pitchen

The patch checks whether the Quad Enable bit is already set in the Status
Register. If so, the function exits immediately with a successful return
code.

Signed-off-by: Cyrille Pitchen <cyrille.pitchen@atmel.com>
Reviewed-by: Jagan Teki <jagan@openedev.com>
---
 drivers/mtd/spi-nor/spi-nor.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
index da7cd69d4857..1fd32b991eb7 100644
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
@@ -1216,6 +1216,9 @@ static int macronix_quad_enable(struct spi_nor *nor)
 	val = read_sr(nor);
 	if (val < 0)
 		return val;
+	if (val & SR_QUAD_EN_MX)
+		return 0;
+
 	write_enable(nor);
 
 	write_sr(nor, val | SR_QUAD_EN_MX);
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/1] mtd: spi-nor: improve macronix_quad_enable()
  2016-12-06 16:01 [PATCH 1/1] mtd: spi-nor: improve macronix_quad_enable() Cyrille Pitchen
@ 2016-12-06 19:01 ` Marek Vasut
  2016-12-06 23:05   ` Cyrille Pitchen
  2016-12-13 16:35   ` Cyrille Pitchen
  0 siblings, 2 replies; 5+ messages in thread
From: Marek Vasut @ 2016-12-06 19:01 UTC (permalink / raw)
  To: Cyrille Pitchen
  Cc: computersforpeace, boris.brezillon, richard, linux-mtd, linux-kernel

On 12/06/2016 05:01 PM, Cyrille Pitchen wrote:
> The patch checks whether the Quad Enable bit is already set in the Status
> Register. If so, the function exits immediately with a successful return
> code.

Performance optimization I presume ?

Acked-by: Marek Vasut <marek.vasut@gmail.com>

> Signed-off-by: Cyrille Pitchen <cyrille.pitchen@atmel.com>
> Reviewed-by: Jagan Teki <jagan@openedev.com>
> ---
>  drivers/mtd/spi-nor/spi-nor.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
> index da7cd69d4857..1fd32b991eb7 100644
> --- a/drivers/mtd/spi-nor/spi-nor.c
> +++ b/drivers/mtd/spi-nor/spi-nor.c
> @@ -1216,6 +1216,9 @@ static int macronix_quad_enable(struct spi_nor *nor)
>  	val = read_sr(nor);
>  	if (val < 0)
>  		return val;
> +	if (val & SR_QUAD_EN_MX)
> +		return 0;
> +
>  	write_enable(nor);
>  
>  	write_sr(nor, val | SR_QUAD_EN_MX);
> 


-- 
Best regards,
Marek Vasut

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/1] mtd: spi-nor: improve macronix_quad_enable()
  2016-12-06 19:01 ` Marek Vasut
@ 2016-12-06 23:05   ` Cyrille Pitchen
  2016-12-06 23:46     ` Marek Vasut
  2016-12-13 16:35   ` Cyrille Pitchen
  1 sibling, 1 reply; 5+ messages in thread
From: Cyrille Pitchen @ 2016-12-06 23:05 UTC (permalink / raw)
  To: Marek Vasut, Cyrille Pitchen
  Cc: boris.brezillon, computersforpeace, linux-mtd, linux-kernel, richard

Le 06/12/2016 à 20:01, Marek Vasut a écrit :
> On 12/06/2016 05:01 PM, Cyrille Pitchen wrote:
>> The patch checks whether the Quad Enable bit is already set in the Status
>> Register. If so, the function exits immediately with a successful return
>> code.
> 
> Performance optimization I presume ?

Performance optimization is one benefit but this real purpose of the
patch is to avoid writing over and over a non-volatile bit at each boot,
actually each time spi_nor_scan() is called.

To be honest, I don't know whether internally the SPI memory is clever
enough not to perform the actual write when it sees the bit value has
not changed. I wanted to improve the memory lifetime by avoiding the
update of the bit from software just to be sure :)

Anyway, thanks for your review!

> 
> Acked-by: Marek Vasut <marek.vasut@gmail.com>
> 
>> Signed-off-by: Cyrille Pitchen <cyrille.pitchen@atmel.com>
>> Reviewed-by: Jagan Teki <jagan@openedev.com>
>> ---
>>  drivers/mtd/spi-nor/spi-nor.c | 3 +++
>>  1 file changed, 3 insertions(+)
>>
>> diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
>> index da7cd69d4857..1fd32b991eb7 100644
>> --- a/drivers/mtd/spi-nor/spi-nor.c
>> +++ b/drivers/mtd/spi-nor/spi-nor.c
>> @@ -1216,6 +1216,9 @@ static int macronix_quad_enable(struct spi_nor *nor)
>>  	val = read_sr(nor);
>>  	if (val < 0)
>>  		return val;
>> +	if (val & SR_QUAD_EN_MX)
>> +		return 0;
>> +
>>  	write_enable(nor);
>>  
>>  	write_sr(nor, val | SR_QUAD_EN_MX);
>>
> 
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/1] mtd: spi-nor: improve macronix_quad_enable()
  2016-12-06 23:05   ` Cyrille Pitchen
@ 2016-12-06 23:46     ` Marek Vasut
  0 siblings, 0 replies; 5+ messages in thread
From: Marek Vasut @ 2016-12-06 23:46 UTC (permalink / raw)
  To: Cyrille Pitchen, Cyrille Pitchen
  Cc: boris.brezillon, computersforpeace, linux-mtd, linux-kernel, richard

On 12/07/2016 12:05 AM, Cyrille Pitchen wrote:
> Le 06/12/2016 à 20:01, Marek Vasut a écrit :
>> On 12/06/2016 05:01 PM, Cyrille Pitchen wrote:
>>> The patch checks whether the Quad Enable bit is already set in the Status
>>> Register. If so, the function exits immediately with a successful return
>>> code.
>>
>> Performance optimization I presume ?
> 
> Performance optimization is one benefit but this real purpose of the
> patch is to avoid writing over and over a non-volatile bit at each boot,
> actually each time spi_nor_scan() is called.
> 
> To be honest, I don't know whether internally the SPI memory is clever
> enough not to perform the actual write when it sees the bit value has
> not changed. I wanted to improve the memory lifetime by avoiding the
> update of the bit from software just to be sure :)

Well the bit is in some sort of internal SRAM or silicon register , no?

> Anyway, thanks for your review!

np

>> Acked-by: Marek Vasut <marek.vasut@gmail.com>
>>
>>> Signed-off-by: Cyrille Pitchen <cyrille.pitchen@atmel.com>
>>> Reviewed-by: Jagan Teki <jagan@openedev.com>
>>> ---
>>>  drivers/mtd/spi-nor/spi-nor.c | 3 +++
>>>  1 file changed, 3 insertions(+)
>>>
>>> diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
>>> index da7cd69d4857..1fd32b991eb7 100644
>>> --- a/drivers/mtd/spi-nor/spi-nor.c
>>> +++ b/drivers/mtd/spi-nor/spi-nor.c
>>> @@ -1216,6 +1216,9 @@ static int macronix_quad_enable(struct spi_nor *nor)
>>>  	val = read_sr(nor);
>>>  	if (val < 0)
>>>  		return val;
>>> +	if (val & SR_QUAD_EN_MX)
>>> +		return 0;
>>> +
>>>  	write_enable(nor);
>>>  
>>>  	write_sr(nor, val | SR_QUAD_EN_MX);
>>>
>>
>>
> 


-- 
Best regards,
Marek Vasut

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/1] mtd: spi-nor: improve macronix_quad_enable()
  2016-12-06 19:01 ` Marek Vasut
  2016-12-06 23:05   ` Cyrille Pitchen
@ 2016-12-13 16:35   ` Cyrille Pitchen
  1 sibling, 0 replies; 5+ messages in thread
From: Cyrille Pitchen @ 2016-12-13 16:35 UTC (permalink / raw)
  To: Marek Vasut, Cyrille Pitchen
  Cc: boris.brezillon, computersforpeace, linux-mtd, linux-kernel, richard

Le 06/12/2016 à 20:01, Marek Vasut a écrit :
> On 12/06/2016 05:01 PM, Cyrille Pitchen wrote:
>> The patch checks whether the Quad Enable bit is already set in the Status
>> Register. If so, the function exits immediately with a successful return
>> code.
> 
> Performance optimization I presume ?
> 
> Acked-by: Marek Vasut <marek.vasut@gmail.com>
> 
>> Signed-off-by: Cyrille Pitchen <cyrille.pitchen@atmel.com>
>> Reviewed-by: Jagan Teki <jagan@openedev.com>

Applied to git://github.com/spi-nor/linux.git
>> ---
>>  drivers/mtd/spi-nor/spi-nor.c | 3 +++
>>  1 file changed, 3 insertions(+)
>>
>> diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
>> index da7cd69d4857..1fd32b991eb7 100644
>> --- a/drivers/mtd/spi-nor/spi-nor.c
>> +++ b/drivers/mtd/spi-nor/spi-nor.c
>> @@ -1216,6 +1216,9 @@ static int macronix_quad_enable(struct spi_nor *nor)
>>  	val = read_sr(nor);
>>  	if (val < 0)
>>  		return val;
>> +	if (val & SR_QUAD_EN_MX)
>> +		return 0;
>> +
>>  	write_enable(nor);
>>  
>>  	write_sr(nor, val | SR_QUAD_EN_MX);
>>
> 
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-12-13 17:12 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-12-06 16:01 [PATCH 1/1] mtd: spi-nor: improve macronix_quad_enable() Cyrille Pitchen
2016-12-06 19:01 ` Marek Vasut
2016-12-06 23:05   ` Cyrille Pitchen
2016-12-06 23:46     ` Marek Vasut
2016-12-13 16:35   ` Cyrille Pitchen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).