Commit e5860c18 authored by Nicholas Mc Guire's avatar Nicholas Mc Guire Committed by Brian Norris

mtd: pxa3xx_nand: cleanup wait_for_completion handling

return type of wait_for_completion_timeout is unsigned long not int, this
patch uses the return value of wait_for_completion_timeout in the condition
directly rather than assigning it to an incorrect type variable.

The variable used for handling the return of wait_for_cmpletion_timeout
was int but should be unsigned long, where it was not in use for
anything else and the return value in case of completion (>0) is not
used it was removed and wait_for_completion_timeout() used directly in
the if condition.

To make the timeout values a bit simpler to read and also handle all of
the corner cases correctly the declarations are moved to
msecs_to_jiffies().

The timeout declaration cleanup is just for readability
Signed-off-by: default avatarNicholas Mc Guire <hofrat@osadl.org>
Signed-off-by: default avatarBrian Norris <computersforpeace@gmail.com>
parent 899b834a
...@@ -38,8 +38,8 @@ ...@@ -38,8 +38,8 @@
#include <linux/platform_data/mtd-nand-pxa3xx.h> #include <linux/platform_data/mtd-nand-pxa3xx.h>
#define CHIP_DELAY_TIMEOUT (2 * HZ/10) #define CHIP_DELAY_TIMEOUT msecs_to_jiffies(200)
#define NAND_STOP_DELAY (2 * HZ/50) #define NAND_STOP_DELAY msecs_to_jiffies(40)
#define PAGE_CHUNK_SIZE (2048) #define PAGE_CHUNK_SIZE (2048)
/* /*
...@@ -965,7 +965,7 @@ static void nand_cmdfunc(struct mtd_info *mtd, unsigned command, ...@@ -965,7 +965,7 @@ static void nand_cmdfunc(struct mtd_info *mtd, unsigned command,
{ {
struct pxa3xx_nand_host *host = mtd->priv; struct pxa3xx_nand_host *host = mtd->priv;
struct pxa3xx_nand_info *info = host->info_data; struct pxa3xx_nand_info *info = host->info_data;
int ret, exec_cmd; int exec_cmd;
/* /*
* if this is a x16 device ,then convert the input * if this is a x16 device ,then convert the input
...@@ -997,9 +997,8 @@ static void nand_cmdfunc(struct mtd_info *mtd, unsigned command, ...@@ -997,9 +997,8 @@ static void nand_cmdfunc(struct mtd_info *mtd, unsigned command,
info->need_wait = 1; info->need_wait = 1;
pxa3xx_nand_start(info); pxa3xx_nand_start(info);
ret = wait_for_completion_timeout(&info->cmd_complete, if (!wait_for_completion_timeout(&info->cmd_complete,
CHIP_DELAY_TIMEOUT); CHIP_DELAY_TIMEOUT)) {
if (!ret) {
dev_err(&info->pdev->dev, "Wait time out!!!\n"); dev_err(&info->pdev->dev, "Wait time out!!!\n");
/* Stop State Machine for next command cycle */ /* Stop State Machine for next command cycle */
pxa3xx_nand_stop(info); pxa3xx_nand_stop(info);
...@@ -1014,7 +1013,7 @@ static void nand_cmdfunc_extended(struct mtd_info *mtd, ...@@ -1014,7 +1013,7 @@ static void nand_cmdfunc_extended(struct mtd_info *mtd,
{ {
struct pxa3xx_nand_host *host = mtd->priv; struct pxa3xx_nand_host *host = mtd->priv;
struct pxa3xx_nand_info *info = host->info_data; struct pxa3xx_nand_info *info = host->info_data;
int ret, exec_cmd, ext_cmd_type; int exec_cmd, ext_cmd_type;
/* /*
* if this is a x16 device then convert the input * if this is a x16 device then convert the input
...@@ -1077,9 +1076,8 @@ static void nand_cmdfunc_extended(struct mtd_info *mtd, ...@@ -1077,9 +1076,8 @@ static void nand_cmdfunc_extended(struct mtd_info *mtd,
init_completion(&info->cmd_complete); init_completion(&info->cmd_complete);
pxa3xx_nand_start(info); pxa3xx_nand_start(info);
ret = wait_for_completion_timeout(&info->cmd_complete, if (!wait_for_completion_timeout(&info->cmd_complete,
CHIP_DELAY_TIMEOUT); CHIP_DELAY_TIMEOUT)) {
if (!ret) {
dev_err(&info->pdev->dev, "Wait time out!!!\n"); dev_err(&info->pdev->dev, "Wait time out!!!\n");
/* Stop State Machine for next command cycle */ /* Stop State Machine for next command cycle */
pxa3xx_nand_stop(info); pxa3xx_nand_stop(info);
...@@ -1212,13 +1210,11 @@ static int pxa3xx_nand_waitfunc(struct mtd_info *mtd, struct nand_chip *this) ...@@ -1212,13 +1210,11 @@ static int pxa3xx_nand_waitfunc(struct mtd_info *mtd, struct nand_chip *this)
{ {
struct pxa3xx_nand_host *host = mtd->priv; struct pxa3xx_nand_host *host = mtd->priv;
struct pxa3xx_nand_info *info = host->info_data; struct pxa3xx_nand_info *info = host->info_data;
int ret;
if (info->need_wait) { if (info->need_wait) {
ret = wait_for_completion_timeout(&info->dev_ready,
CHIP_DELAY_TIMEOUT);
info->need_wait = 0; info->need_wait = 0;
if (!ret) { if (!wait_for_completion_timeout(&info->dev_ready,
CHIP_DELAY_TIMEOUT)) {
dev_err(&info->pdev->dev, "Ready time out!!!\n"); dev_err(&info->pdev->dev, "Ready time out!!!\n");
return NAND_STATUS_FAIL; return NAND_STATUS_FAIL;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment