Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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;
+2 −0
Original line number Diff line number Diff line
@@ -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;