forked from Minki/linux
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: Adrian Hunter <adrian.hunter@nokia.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
This commit is contained in:
parent
8fffed8cfd
commit
cf24dc85ff
@ -948,6 +948,8 @@ static int onenand_get_device(struct mtd_info *mtd, int new_state)
|
||||
if (this->state == FL_READY) {
|
||||
this->state = new_state;
|
||||
spin_unlock(&this->chip_lock);
|
||||
if (new_state != FL_PM_SUSPENDED && this->enable)
|
||||
this->enable(mtd);
|
||||
break;
|
||||
}
|
||||
if (new_state == FL_PM_SUSPENDED) {
|
||||
@ -974,6 +976,8 @@ static void onenand_release_device(struct mtd_info *mtd)
|
||||
{
|
||||
struct onenand_chip *this = mtd->priv;
|
||||
|
||||
if (this->state != FL_PM_SUSPENDED && this->disable)
|
||||
this->disable(mtd);
|
||||
/* Release the chip */
|
||||
spin_lock(&this->chip_lock);
|
||||
this->state = FL_READY;
|
||||
|
@ -118,6 +118,8 @@ struct onenand_chip {
|
||||
int (*chip_probe)(struct mtd_info *mtd);
|
||||
int (*block_markbad)(struct mtd_info *mtd, loff_t ofs);
|
||||
int (*scan_bbt)(struct mtd_info *mtd);
|
||||
int (*enable)(struct mtd_info *mtd);
|
||||
int (*disable)(struct mtd_info *mtd);
|
||||
|
||||
struct completion complete;
|
||||
int irq;
|
||||
|
Loading…
Reference in New Issue
Block a user