From: Shiraz Hashim Date: Mon, 2 Jul 2012 05:58:46 +0000 (+0530) Subject: mtd: spear_smi: clear status register on init X-Git-Tag: firefly_0821_release~3680^2~1874^2~124 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=4dc48c37d1ce968b5ade7d1646927199ee536129;p=firefly-linux-kernel-4.4.55.git mtd: spear_smi: clear status register on init 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 Signed-off-by: Artem Bityutskiy Signed-off-by: David Woodhouse --- diff --git a/drivers/mtd/devices/spear_smi.c b/drivers/mtd/devices/spear_smi.c index cffd36a916d0..aec941e74e67 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); }