From: Guenter Roeck <linux@roeck-us.net>
To: Brian Norris <computersforpeace@gmail.com>
Cc: linux-mtd@lists.infradead.org, cdoban@broadcom.com,
rjui@broadcom.com, sbranden@broadcom.com
Subject: Re: [3/3] mtd: cfi_cmdset_{0001, 0002}: use common MTD reboot boilerplate
Date: Mon, 2 Nov 2015 12:05:13 -0800 [thread overview]
Message-ID: <20151102200513.GA26475@roeck-us.net> (raw)
In-Reply-To: <1417746968-28747-3-git-send-email-computersforpeace@gmail.com>
On Thu, Dec 04, 2014 at 06:36:08PM -0800, Brian Norris wrote:
> We don't have to implement this glue code in the chip driver any more.
>
> Signed-off-by: Brian Norris <computersforpeace@gmail.com>
> ---
> Not tested yet
>
Tested-by: Guenter Roeck <linux@roeck-us.net>
> drivers/mtd/chips/cfi_cmdset_0001.c | 22 +++-------------------
> drivers/mtd/chips/cfi_cmdset_0002.c | 22 +++-------------------
> 2 files changed, 6 insertions(+), 38 deletions(-)
>
> diff --git a/drivers/mtd/chips/cfi_cmdset_0001.c b/drivers/mtd/chips/cfi_cmdset_0001.c
> index 286b97a304cf..3df9744496b2 100644
> --- a/drivers/mtd/chips/cfi_cmdset_0001.c
> +++ b/drivers/mtd/chips/cfi_cmdset_0001.c
> @@ -28,7 +28,6 @@
> #include <linux/slab.h>
> #include <linux/delay.h>
> #include <linux/interrupt.h>
> -#include <linux/reboot.h>
> #include <linux/bitmap.h>
> #include <linux/mtd/xip.h>
> #include <linux/mtd/map.h>
> @@ -80,7 +79,7 @@ static int cfi_intelext_get_user_prot_info(struct mtd_info *, size_t,
> #endif
> static int cfi_intelext_suspend (struct mtd_info *);
> static void cfi_intelext_resume (struct mtd_info *);
> -static int cfi_intelext_reboot (struct notifier_block *, unsigned long, void *);
> +static void cfi_intelext_reset(struct mtd_info *);
>
> static void cfi_intelext_destroy(struct mtd_info *);
>
> @@ -486,13 +485,12 @@ struct mtd_info *cfi_cmdset_0001(struct map_info *map, int primary)
> mtd->_is_locked = cfi_intelext_is_locked;
> mtd->_suspend = cfi_intelext_suspend;
> mtd->_resume = cfi_intelext_resume;
> + mtd->_reboot = cfi_intelext_reset;
> mtd->flags = MTD_CAP_NORFLASH;
> mtd->name = map->name;
> mtd->writesize = 1;
> mtd->writebufsize = cfi_interleave(cfi) << cfi->cfiq->MaxBufWriteSize;
>
> - mtd->reboot_notifier.notifier_call = cfi_intelext_reboot;
> -
> if (cfi->cfi_mode == CFI_MODE_CFI) {
> /*
> * It's a real CFI chip, not one for which the probe
> @@ -646,7 +644,6 @@ static struct mtd_info *cfi_intelext_setup(struct mtd_info *mtd)
> goto setup_err;
>
> __module_get(THIS_MODULE);
> - register_reboot_notifier(&mtd->reboot_notifier);
> return mtd;
>
> setup_err:
> @@ -2605,7 +2602,7 @@ static void cfi_intelext_resume(struct mtd_info *mtd)
> cfi_intelext_restore_locks(mtd);
> }
>
> -static int cfi_intelext_reset(struct mtd_info *mtd)
> +static void cfi_intelext_reset(struct mtd_info *mtd)
> {
> struct map_info *map = mtd->priv;
> struct cfi_private *cfi = map->fldrv_priv;
> @@ -2626,18 +2623,6 @@ static int cfi_intelext_reset(struct mtd_info *mtd)
> }
> mutex_unlock(&chip->mutex);
> }
> -
> - return 0;
> -}
> -
> -static int cfi_intelext_reboot(struct notifier_block *nb, unsigned long val,
> - void *v)
> -{
> - struct mtd_info *mtd;
> -
> - mtd = container_of(nb, struct mtd_info, reboot_notifier);
> - cfi_intelext_reset(mtd);
> - return NOTIFY_DONE;
> }
>
> static void cfi_intelext_destroy(struct mtd_info *mtd)
> @@ -2647,7 +2632,6 @@ static void cfi_intelext_destroy(struct mtd_info *mtd)
> struct mtd_erase_region_info *region;
> int i;
> cfi_intelext_reset(mtd);
> - unregister_reboot_notifier(&mtd->reboot_notifier);
> kfree(cfi->cmdset_priv);
> kfree(cfi->cfiq);
> kfree(cfi->chips[0].priv);
> diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c
> index c50d8cf0f60d..c4f63482cf96 100644
> --- a/drivers/mtd/chips/cfi_cmdset_0002.c
> +++ b/drivers/mtd/chips/cfi_cmdset_0002.c
> @@ -31,7 +31,6 @@
> #include <linux/slab.h>
> #include <linux/delay.h>
> #include <linux/interrupt.h>
> -#include <linux/reboot.h>
> #include <linux/of.h>
> #include <linux/of_platform.h>
> #include <linux/mtd/map.h>
> @@ -57,7 +56,7 @@ static int cfi_amdstd_erase_varsize(struct mtd_info *, struct erase_info *);
> static void cfi_amdstd_sync (struct mtd_info *);
> static int cfi_amdstd_suspend (struct mtd_info *);
> static void cfi_amdstd_resume (struct mtd_info *);
> -static int cfi_amdstd_reboot(struct notifier_block *, unsigned long, void *);
> +static void cfi_amdstd_reset(struct mtd_info *);
> static int cfi_amdstd_get_fact_prot_info(struct mtd_info *, size_t,
> size_t *, struct otp_info *);
> static int cfi_amdstd_get_user_prot_info(struct mtd_info *, size_t,
> @@ -529,6 +528,7 @@ struct mtd_info *cfi_cmdset_0002(struct map_info *map, int primary)
> mtd->_sync = cfi_amdstd_sync;
> mtd->_suspend = cfi_amdstd_suspend;
> mtd->_resume = cfi_amdstd_resume;
> + mtd->_reboot = cfi_amdstd_reset;
> mtd->_read_user_prot_reg = cfi_amdstd_read_user_prot_reg;
> mtd->_read_fact_prot_reg = cfi_amdstd_read_fact_prot_reg;
> mtd->_get_fact_prot_info = cfi_amdstd_get_fact_prot_info;
> @@ -544,7 +544,6 @@ struct mtd_info *cfi_cmdset_0002(struct map_info *map, int primary)
> mtd->writebufsize);
>
> mtd->_panic_write = cfi_amdstd_panic_write;
> - mtd->reboot_notifier.notifier_call = cfi_amdstd_reboot;
>
> if (cfi->cfi_mode==CFI_MODE_CFI){
> unsigned char bootloc;
> @@ -717,7 +716,6 @@ static struct mtd_info *cfi_amdstd_setup(struct mtd_info *mtd)
> }
>
> __module_get(THIS_MODULE);
> - register_reboot_notifier(&mtd->reboot_notifier);
> return mtd;
>
> setup_err:
> @@ -2871,7 +2869,7 @@ static void cfi_amdstd_resume(struct mtd_info *mtd)
> * the flash is in query/program/erase mode will prevent the CPU from
> * fetching the bootloader code, requiring a hard reset or power cycle.
> */
> -static int cfi_amdstd_reset(struct mtd_info *mtd)
> +static void cfi_amdstd_reset(struct mtd_info *mtd)
> {
> struct map_info *map = mtd->priv;
> struct cfi_private *cfi = map->fldrv_priv;
> @@ -2893,19 +2891,6 @@ static int cfi_amdstd_reset(struct mtd_info *mtd)
>
> mutex_unlock(&chip->mutex);
> }
> -
> - return 0;
> -}
> -
> -
> -static int cfi_amdstd_reboot(struct notifier_block *nb, unsigned long val,
> - void *v)
> -{
> - struct mtd_info *mtd;
> -
> - mtd = container_of(nb, struct mtd_info, reboot_notifier);
> - cfi_amdstd_reset(mtd);
> - return NOTIFY_DONE;
> }
>
>
> @@ -2915,7 +2900,6 @@ static void cfi_amdstd_destroy(struct mtd_info *mtd)
> struct cfi_private *cfi = map->fldrv_priv;
>
> cfi_amdstd_reset(mtd);
> - unregister_reboot_notifier(&mtd->reboot_notifier);
> kfree(cfi->cmdset_priv);
> kfree(cfi->cfiq);
> kfree(cfi);
next prev parent reply other threads:[~2015-11-02 20:05 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-05 2:36 [PATCH 1/3] mtd: implement common reboot notifier boilerplate Brian Norris
2014-12-05 2:36 ` [PATCH 2/3] mtd: nand: added nand_shutdown Brian Norris
2014-12-05 17:47 ` Scott Branden
2014-12-05 2:36 ` [PATCH 3/3] mtd: cfi_cmdset_{0001, 0002}: use common MTD reboot boilerplate Brian Norris
2015-11-02 20:05 ` Guenter Roeck [this message]
2015-11-02 21:58 ` [3/3] " Brian Norris
2015-11-02 22:05 ` Brian Norris
2015-11-02 22:16 ` Guenter Roeck
2015-11-02 23:21 ` Brian Norris
2015-11-03 1:00 ` Guenter Roeck
2014-12-05 6:48 ` [PATCH 1/3] mtd: implement common reboot notifier boilerplate Scott Branden
2014-12-05 18:07 ` Brian Norris
2014-12-10 0:02 ` Scott Branden
2014-12-10 0:07 ` Richard Weinberger
2015-01-08 1:58 ` Brian Norris
2015-01-14 0:43 ` Scott Branden
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=20151102200513.GA26475@roeck-us.net \
--to=linux@roeck-us.net \
--cc=cdoban@broadcom.com \
--cc=computersforpeace@gmail.com \
--cc=linux-mtd@lists.infradead.org \
--cc=rjui@broadcom.com \
--cc=sbranden@broadcom.com \
/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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.