From patchwork Mon Jul 2 05:58:46 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [2/3] mtd/spear_smi: clear status register on init Date: Sun, 01 Jul 2012 19:58:46 -0000 From: Shiraz Hashim X-Patchwork-Id: 168497 Message-Id: <1341208727-22476-2-git-send-email-shiraz.hashim@st.com> To: , Cc: Shiraz Hashim , spear--sw-devel@lists.codex.cro.st.com, sr@denx.de, linux-mtd@lists.infradead.org, spear-devel@list.st.com It was observed that sometimes smi returned errors while resume from suspend. For safety reasons clear status register for any errors during init. In absence of it smi can return failures during command transmissions. Signed-off-by: Shiraz Hashim --- drivers/mtd/devices/spear_smi.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/mtd/devices/spear_smi.c b/drivers/mtd/devices/spear_smi.c index cffd36a..aec941e 100644 --- a/drivers/mtd/devices/spear_smi.c +++ b/drivers/mtd/devices/spear_smi.c @@ -336,6 +336,9 @@ static void spear_smi_hw_init(struct spear_smi *dev) val = HOLD1 | BANK_EN | DSEL_TIME | (prescale << 8); mutex_lock(&dev->lock); + /* clear all interrupt conditions */ + writel(0, dev->io_base + SMI_SR); + writel(val, dev->io_base + SMI_CR1); mutex_unlock(&dev->lock); }