[PATCH v2] mtd: nand: mtk: use nand_reset() to reset NAND devices in resume function

Boris Brezillon boris.brezillon at free-electrons.com
Thu Nov 30 13:16:02 PST 2017


On Thu, 2 Nov 2017 10:05:07 +0800
<xiaolei.li at mediatek.com> wrote:

> From: Xiaolei Li <xiaolei.li at mediatek.com>
> 
> Previously, we only select chips and then send reset command to a NAND
> device during resuming nand driver. There is a lack of deselecting chips.
> It is advised to reset and initialize a NAND device using nand_reset().
> 

Applied.

Thanks,

Boris

> Signed-off-by: Xiaolei Li <xiaolei.li at mediatek.com>
> ---
>  drivers/mtd/nand/mtk_nand.c | 8 ++------
>  1 file changed, 2 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/mtd/nand/mtk_nand.c b/drivers/mtd/nand/mtk_nand.c
> index d86a7d1..6d0101e 100644
> --- a/drivers/mtd/nand/mtk_nand.c
> +++ b/drivers/mtd/nand/mtk_nand.c
> @@ -1540,7 +1540,6 @@ static int mtk_nfc_resume(struct device *dev)
>  	struct mtk_nfc *nfc = dev_get_drvdata(dev);
>  	struct mtk_nfc_nand_chip *chip;
>  	struct nand_chip *nand;
> -	struct mtd_info *mtd;
>  	int ret;
>  	u32 i;
>  
> @@ -1553,11 +1552,8 @@ static int mtk_nfc_resume(struct device *dev)
>  	/* reset NAND chip if VCC was powered off */
>  	list_for_each_entry(chip, &nfc->chips, node) {
>  		nand = &chip->nand;
> -		mtd = nand_to_mtd(nand);
> -		for (i = 0; i < chip->nsels; i++) {
> -			nand->select_chip(mtd, i);
> -			nand->cmdfunc(mtd, NAND_CMD_RESET, -1, -1);
> -		}
> +		for (i = 0; i < chip->nsels; i++)
> +			nand_reset(nand, i);
>  	}
>  
>  	return 0;




More information about the Linux-mediatek mailing list