LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Bartosz Golaszewski <brgl@bgdev.pl>
To: Sekhar Nori <nsekhar@ti.com>
Cc: Boris Brezillon <boris.brezillon@bootlin.com>,
Richard Weinberger <richard@nod.at>,
David Woodhouse <dwmw2@infradead.org>,
Brian Norris <computersforpeace@gmail.com>,
Marek Vasut <marek.vasut@gmail.com>,
Cyrille Pitchen <cyrille.pitchen@wedev4u.fr>,
linux-mtd@lists.infradead.org,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Linux ARM Mailing List <linux-arm-kernel@lists.infradead.org>,
David Lechner <david@lechnology.com>,
Bartosz Golaszewski <bgolaszewski@baylibre.com>
Subject: Re: [PATCH] mtd: nand: davinci: don't acquire and enable clock
Date: Wed, 25 Apr 2018 10:53:42 +0200 [thread overview]
Message-ID: <CAMRc=Mdsqc-ZJy9WMkdh_S=ehh1CfyFtgyF6mWwFT=xnNGhieg@mail.gmail.com> (raw)
In-Reply-To: <20180330143051.26423-1-nsekhar@ti.com>
2018-03-30 16:30 GMT+02:00 Sekhar Nori <nsekhar@ti.com>:
> NAND itself is an asynchronous interface, it does not have any
> clock input. DaVinci NAND driver acquires clock for AEMIF
> (asynchronous external memory interface) which is an on-chip
> IP to which NAND is connected.
>
> The same clock is also enabled in AEMIF driver (either present
> drivers/memory or from machine code for some older platforms).
> AEMIF timing must be initialized before NAND can be accessed.
> This ensures that AEMIF clock is enabled too.
>
> Remove the superfluous clock acquisition and enable in DaVinci
> NAND driver.
>
> Tested on K2L, K2HK, K2E, DA850 EVM, DA850 LCDK in device-tree
> boot and DM644x EVM in legacy boot.
>
> Signed-off-by: Sekhar Nori <nsekhar@ti.com>
> ---
> Hi Boris,
>
> If/when this patch gets accepted, it will nice to put this on
> an immutable branch others can merge. There is potential cleanup
> in drivers/clock and in DaVinci machine code that will depend
> on this.
>
> Thanks,
> Sekhar
>
> drivers/mtd/nand/raw/davinci_nand.c | 25 +------------------------
> 1 file changed, 1 insertion(+), 24 deletions(-)
>
> diff --git a/drivers/mtd/nand/raw/davinci_nand.c b/drivers/mtd/nand/raw/davinci_nand.c
> index 0f09518d980f..7255a0d94374 100644
> --- a/drivers/mtd/nand/raw/davinci_nand.c
> +++ b/drivers/mtd/nand/raw/davinci_nand.c
> @@ -27,7 +27,6 @@
> #include <linux/module.h>
> #include <linux/platform_device.h>
> #include <linux/err.h>
> -#include <linux/clk.h>
> #include <linux/io.h>
> #include <linux/mtd/rawnand.h>
> #include <linux/mtd/partitions.h>
> @@ -55,7 +54,6 @@ struct davinci_nand_info {
> struct nand_chip chip;
>
> struct device *dev;
> - struct clk *clk;
>
> bool is_readmode;
>
> @@ -703,22 +701,6 @@ static int nand_davinci_probe(struct platform_device *pdev)
> /* Use board-specific ECC config */
> info->chip.ecc.mode = pdata->ecc_mode;
>
> - ret = -EINVAL;
> -
> - info->clk = devm_clk_get(&pdev->dev, "aemif");
> - if (IS_ERR(info->clk)) {
> - ret = PTR_ERR(info->clk);
> - dev_dbg(&pdev->dev, "unable to get AEMIF clock, err %d\n", ret);
> - return ret;
> - }
> -
> - ret = clk_prepare_enable(info->clk);
> - if (ret < 0) {
> - dev_dbg(&pdev->dev, "unable to enable AEMIF clock, err %d\n",
> - ret);
> - goto err_clk_enable;
> - }
> -
> spin_lock_irq(&davinci_nand_lock);
>
> /* put CSxNAND into NAND mode */
> @@ -732,7 +714,7 @@ static int nand_davinci_probe(struct platform_device *pdev)
> ret = nand_scan_ident(mtd, pdata->mask_chipsel ? 2 : 1, NULL);
> if (ret < 0) {
> dev_dbg(&pdev->dev, "no NAND chip(s) found\n");
> - goto err;
> + return ret;
> }
>
> switch (info->chip.ecc.mode) {
> @@ -838,9 +820,6 @@ static int nand_davinci_probe(struct platform_device *pdev)
> nand_cleanup(&info->chip);
>
> err:
> - clk_disable_unprepare(info->clk);
> -
> -err_clk_enable:
> spin_lock_irq(&davinci_nand_lock);
> if (info->chip.ecc.mode == NAND_ECC_HW_SYNDROME)
> ecc4_busy = false;
> @@ -859,8 +838,6 @@ static int nand_davinci_remove(struct platform_device *pdev)
>
> nand_release(nand_to_mtd(&info->chip));
>
> - clk_disable_unprepare(info->clk);
> -
> return 0;
> }
>
> --
> 2.16.2
>
Tested-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
next prev parent reply other threads:[~2018-04-25 8:53 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-30 14:30 Sekhar Nori
2018-04-02 7:01 ` Boris Brezillon
2018-04-02 7:03 ` Boris Brezillon
2018-04-25 8:53 ` Bartosz Golaszewski [this message]
2018-04-26 18:01 ` Boris Brezillon
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='CAMRc=Mdsqc-ZJy9WMkdh_S=ehh1CfyFtgyF6mWwFT=xnNGhieg@mail.gmail.com' \
--to=brgl@bgdev.pl \
--cc=bgolaszewski@baylibre.com \
--cc=boris.brezillon@bootlin.com \
--cc=computersforpeace@gmail.com \
--cc=cyrille.pitchen@wedev4u.fr \
--cc=david@lechnology.com \
--cc=dwmw2@infradead.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=marek.vasut@gmail.com \
--cc=nsekhar@ti.com \
--cc=richard@nod.at \
--subject='Re: [PATCH] mtd: nand: davinci: don'\''t acquire and enable clock' \
/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
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).