mtd: spear_smi: clear status register on init
authorShiraz Hashim <shiraz.hashim@st.com>
Mon, 2 Jul 2012 05:58:46 +0000 (11:28 +0530)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Fri, 6 Jul 2012 17:27:38 +0000 (18:27 +0100)
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 <shiraz.hashim@st.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
drivers/mtd/devices/spear_smi.c

index cffd36a..aec941e 100644 (file)
@@ -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);
 }