diff mbox

mtd: atmel_nand: check NFC busy flag by HSMC_SR instead of NFC cmd regs

Message ID 1421318753-14960-1-git-send-email-josh.wu@atmel.com
State Superseded
Headers show

Commit Message

Josh Wu Jan. 15, 2015, 10:45 a.m. UTC
Currently the driver read NFC command registers to get NFC busy flag.
Actually this flag also can be get by reading HSMC_SR register.

Use the read NFC command registers need mapping a huge memory region.
To save the mapped memory region, we change to check NFC busy flag by
reading HSMC_SR register.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Acked-by: Josh Wu <josh.wu@atmel.com>
---

 drivers/mtd/nand/atmel_nand.c     | 3 +--
 drivers/mtd/nand/atmel_nand_nfc.h | 1 +
 2 files changed, 2 insertions(+), 2 deletions(-)

Comments

Brian Norris Jan. 20, 2015, 8:31 p.m. UTC | #1
On Thu, Jan 15, 2015 at 06:45:53PM +0800, Josh Wu wrote:

Was this written by Boris? If so, then it needs a 'From:' line at the
start of the body. (Make sure 'Author' is correct in git, then
git-format-patch/git-send-email will get it right for you.)

> Currently the driver read NFC command registers to get NFC busy flag.
> Actually this flag also can be get by reading HSMC_SR register.
> 
> Use the read NFC command registers need mapping a huge memory region.
> To save the mapped memory region, we change to check NFC busy flag by
> reading HSMC_SR register.

Are we actually saving anything yet? You didn't change the requested
region yet.

> Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
> Acked-by: Josh Wu <josh.wu@atmel.com>

Since this is passing through your hands, Josh, it should be
'Signed-off-by' not 'Acked-by'.

> ---
> 
>  drivers/mtd/nand/atmel_nand.c     | 3 +--
>  drivers/mtd/nand/atmel_nand_nfc.h | 1 +
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/mtd/nand/atmel_nand.c b/drivers/mtd/nand/atmel_nand.c
> index 3853597..125330b 100644
> --- a/drivers/mtd/nand/atmel_nand.c
> +++ b/drivers/mtd/nand/atmel_nand.c
> @@ -1699,8 +1699,7 @@ static int nfc_send_command(struct atmel_nand_host *host,
>  		cmd, addr, cycle0);
>  
>  	timeout = jiffies + msecs_to_jiffies(NFC_TIME_OUT_MS);
> -	while (nfc_cmd_readl(NFCADDR_CMD_NFCBUSY, host->nfc->base_cmd_regs)
> -			& NFCADDR_CMD_NFCBUSY) {
> +	while (nfc_readl(host->nfc->hsmc_regs, SR) & NFC_SR_BUSY) {
>  		if (time_after(jiffies, timeout)) {
>  			dev_err(host->dev,
>  				"Time out to wait CMD_NFCBUSY ready!\n");

Change the timeout text?

> diff --git a/drivers/mtd/nand/atmel_nand_nfc.h b/drivers/mtd/nand/atmel_nand_nfc.h
> index 85b8ca6..4d5d262 100644
> --- a/drivers/mtd/nand/atmel_nand_nfc.h
> +++ b/drivers/mtd/nand/atmel_nand_nfc.h
> @@ -35,6 +35,7 @@
>  #define		NFC_CTRL_DISABLE	(1 << 1)
>  
>  #define ATMEL_HSMC_NFC_SR	0x08		/* NFC Status Register */
> +#define		NFC_SR_BUSY		(1 << 8)
>  #define		NFC_SR_XFR_DONE		(1 << 16)
>  #define		NFC_SR_CMD_DONE		(1 << 17)
>  #define		NFC_SR_DTOE		(1 << 20)

Brian
Josh Wu Jan. 21, 2015, 3:46 a.m. UTC | #2
Hi, Brain

On 1/21/2015 4:31 AM, Brian Norris wrote:
> On Thu, Jan 15, 2015 at 06:45:53PM +0800, Josh Wu wrote:
>
> Was this written by Boris?
yes, Boris write the code snippet. I taken it and format it as a patch.

> If so, then it needs a 'From:' line at the
> start of the body. (Make sure 'Author' is correct in git, then
> git-format-patch/git-send-email will get it right for you.)
sounds the proper way. I will do that.

>
>> Currently the driver read NFC command registers to get NFC busy flag.
>> Actually this flag also can be get by reading HSMC_SR register.
>>
>> Use the read NFC command registers need mapping a huge memory region.
>> To save the mapped memory region, we change to check NFC busy flag by
>> reading HSMC_SR register.
> Are we actually saving anything yet? You didn't change the requested
> region yet.
After this patch is applied, then we can apply following patch for NFC's 
dts,

                                 reg = <
-                                       0x90000000 0x10000000   /* NFC 
Command Registers */
+                                      0x90000000 0x08000000   /* NFC 
Command Registers */
                                         0xfc05c000 0x00000070   /* NFC 
HSMC regs */
                                         0x00100000 0x00100000   /* NFC 
SRAM banks */
                                          >;
                                 clocks = <&hsmc_clk>;

But as this change should go to the at91-dt, so I would like make the 
nand driver patch is accepted first. Then send out the dts changes.

>
>> Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
>> Acked-by: Josh Wu <josh.wu@atmel.com>
> Since this is passing through your hands, Josh, it should be
> 'Signed-off-by' not 'Acked-by'.
sure, I will change this.

>
>> ---
>>
>>   drivers/mtd/nand/atmel_nand.c     | 3 +--
>>   drivers/mtd/nand/atmel_nand_nfc.h | 1 +
>>   2 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/mtd/nand/atmel_nand.c b/drivers/mtd/nand/atmel_nand.c
>> index 3853597..125330b 100644
>> --- a/drivers/mtd/nand/atmel_nand.c
>> +++ b/drivers/mtd/nand/atmel_nand.c
>> @@ -1699,8 +1699,7 @@ static int nfc_send_command(struct atmel_nand_host *host,
>>   		cmd, addr, cycle0);
>>   
>>   	timeout = jiffies + msecs_to_jiffies(NFC_TIME_OUT_MS);
>> -	while (nfc_cmd_readl(NFCADDR_CMD_NFCBUSY, host->nfc->base_cmd_regs)
>> -			& NFCADDR_CMD_NFCBUSY) {
>> +	while (nfc_readl(host->nfc->hsmc_regs, SR) & NFC_SR_BUSY) {
>>   		if (time_after(jiffies, timeout)) {
>>   			dev_err(host->dev,
>>   				"Time out to wait CMD_NFCBUSY ready!\n");
> Change the timeout text?
I would change this to:

"Time out to wait for NFC ready!\n");


>
>> diff --git a/drivers/mtd/nand/atmel_nand_nfc.h b/drivers/mtd/nand/atmel_nand_nfc.h
>> index 85b8ca6..4d5d262 100644
>> --- a/drivers/mtd/nand/atmel_nand_nfc.h
>> +++ b/drivers/mtd/nand/atmel_nand_nfc.h
>> @@ -35,6 +35,7 @@
>>   #define		NFC_CTRL_DISABLE	(1 << 1)
>>   
>>   #define ATMEL_HSMC_NFC_SR	0x08		/* NFC Status Register */
>> +#define		NFC_SR_BUSY		(1 << 8)
>>   #define		NFC_SR_XFR_DONE		(1 << 16)
>>   #define		NFC_SR_CMD_DONE		(1 << 17)
>>   #define		NFC_SR_DTOE		(1 << 20)
> Brian

Thanks.
Best Regards,
Josh Wu
diff mbox

Patch

diff --git a/drivers/mtd/nand/atmel_nand.c b/drivers/mtd/nand/atmel_nand.c
index 3853597..125330b 100644
--- a/drivers/mtd/nand/atmel_nand.c
+++ b/drivers/mtd/nand/atmel_nand.c
@@ -1699,8 +1699,7 @@  static int nfc_send_command(struct atmel_nand_host *host,
 		cmd, addr, cycle0);
 
 	timeout = jiffies + msecs_to_jiffies(NFC_TIME_OUT_MS);
-	while (nfc_cmd_readl(NFCADDR_CMD_NFCBUSY, host->nfc->base_cmd_regs)
-			& NFCADDR_CMD_NFCBUSY) {
+	while (nfc_readl(host->nfc->hsmc_regs, SR) & NFC_SR_BUSY) {
 		if (time_after(jiffies, timeout)) {
 			dev_err(host->dev,
 				"Time out to wait CMD_NFCBUSY ready!\n");
diff --git a/drivers/mtd/nand/atmel_nand_nfc.h b/drivers/mtd/nand/atmel_nand_nfc.h
index 85b8ca6..4d5d262 100644
--- a/drivers/mtd/nand/atmel_nand_nfc.h
+++ b/drivers/mtd/nand/atmel_nand_nfc.h
@@ -35,6 +35,7 @@ 
 #define		NFC_CTRL_DISABLE	(1 << 1)
 
 #define ATMEL_HSMC_NFC_SR	0x08		/* NFC Status Register */
+#define		NFC_SR_BUSY		(1 << 8)
 #define		NFC_SR_XFR_DONE		(1 << 16)
 #define		NFC_SR_CMD_DONE		(1 << 17)
 #define		NFC_SR_DTOE		(1 << 20)