Commit cf24dc85 authored by Adrian Hunter's avatar Adrian Hunter Committed by David Woodhouse

mtd: OneNAND: add enable / disable methods to onenand_chip

Add enable / disable methods called from get_device() / release_device().
These can be used, for example, to allow the driver to prevent the voltage
regulator from being put to sleep while OneNAND is in use.
Signed-off-by: default avatarAdrian Hunter <adrian.hunter@nokia.com>
Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
parent 8fffed8c
...@@ -948,6 +948,8 @@ static int onenand_get_device(struct mtd_info *mtd, int new_state) ...@@ -948,6 +948,8 @@ static int onenand_get_device(struct mtd_info *mtd, int new_state)
if (this->state == FL_READY) { if (this->state == FL_READY) {
this->state = new_state; this->state = new_state;
spin_unlock(&this->chip_lock); spin_unlock(&this->chip_lock);
if (new_state != FL_PM_SUSPENDED && this->enable)
this->enable(mtd);
break; break;
} }
if (new_state == FL_PM_SUSPENDED) { if (new_state == FL_PM_SUSPENDED) {
...@@ -974,6 +976,8 @@ static void onenand_release_device(struct mtd_info *mtd) ...@@ -974,6 +976,8 @@ static void onenand_release_device(struct mtd_info *mtd)
{ {
struct onenand_chip *this = mtd->priv; struct onenand_chip *this = mtd->priv;
if (this->state != FL_PM_SUSPENDED && this->disable)
this->disable(mtd);
/* Release the chip */ /* Release the chip */
spin_lock(&this->chip_lock); spin_lock(&this->chip_lock);
this->state = FL_READY; this->state = FL_READY;
......
...@@ -118,6 +118,8 @@ struct onenand_chip { ...@@ -118,6 +118,8 @@ struct onenand_chip {
int (*chip_probe)(struct mtd_info *mtd); int (*chip_probe)(struct mtd_info *mtd);
int (*block_markbad)(struct mtd_info *mtd, loff_t ofs); int (*block_markbad)(struct mtd_info *mtd, loff_t ofs);
int (*scan_bbt)(struct mtd_info *mtd); int (*scan_bbt)(struct mtd_info *mtd);
int (*enable)(struct mtd_info *mtd);
int (*disable)(struct mtd_info *mtd);
struct completion complete; struct completion complete;
int irq; int irq;
......
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