[linux-yocto] [PATCH 17/30] arch/arm/mach-axxia: Clear MTC Errors During Initialization
Charlie Paul
cpaul.windriver at gmail.com
Thu Apr 17 19:37:05 PDT 2014
From: John Jacques <john.jacques at lsi.com>
The MTC status registers are not cleared by a reset. So, clear them
during driver initialization.
Signed-off-by: John Jacques <john.jacques at lsi.com>
---
drivers/misc/lsi-mtc.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/misc/lsi-mtc.c b/drivers/misc/lsi-mtc.c
index ebbdac8..8e1ae77 100644
--- a/drivers/misc/lsi-mtc.c
+++ b/drivers/misc/lsi-mtc.c
@@ -2731,6 +2731,7 @@ mtc_dev_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
{
struct ncp_axis_mtc_MTC_CONFIG0_REG_ADDR_r_t cfg0 = { 0 };
int start_stop;
+
if (copy_from_user
((void *)&start_stop, (void *)arg, sizeof(int))) {
printk(KERN_DEBUG "MTC Error ioctl\n");
@@ -2740,6 +2741,10 @@ mtc_dev_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
if ((start_stop != 0) && (start_stop != 1))
return -EINVAL;
+ /* clear interrupt status before hit start */
+ if (start_stop == 1)
+ dev->regs->int_status = 0x7f;
+
cfg0 =
*((struct ncp_axis_mtc_MTC_CONFIG0_REG_ADDR_r_t *)
&(dev->regs->config0));
@@ -3080,6 +3085,8 @@ static long _mtc_config(struct mtc_device *dev, struct lsi_mtc_cfg_t *pMTCCfg)
dev->regs->config1, dev->regs->execute);
#endif
- /* test */
+ /* clear ecc interrupt status */
+ dev->regs->ecc_int_status = 0xf;
+
return 0;
}
--
1.7.9.5
More information about the linux-yocto
mailing list