diff options
author | Joy Wang <joyw@nvidia.com> | 2014-03-24 15:48:15 +0800 |
---|---|---|
committer | Seema Khowala <seemaj@nvidia.com> | 2014-04-23 14:04:31 -0700 |
commit | c6c0362822e1e925b284eb1b3c133f226cab7c16 (patch) | |
tree | 28b7b9fe505cdfdd9fa1731589d7fc7e060c68ef /drivers/usb/host/xhci-tegra.c | |
parent | 6f86fc48404fdbc12dad8cee8297a3ddf40655c0 (diff) |
xhci: tegra: Clear SMI INTR status register
Clear SMI INTR status bits in smi irq handler.
Bug 1481790
Change-Id: I7b5e37ece1996ab2e2d97d561cff05fc6652b2d5
Signed-off-by: Joy Wang <joyw@nvidia.com>
Reviewed-on: http://git-master/r/385512
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Tested-by: Bharat Nihalani <bnihalani@nvidia.com>
Diffstat (limited to 'drivers/usb/host/xhci-tegra.c')
-rw-r--r-- | drivers/usb/host/xhci-tegra.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/usb/host/xhci-tegra.c b/drivers/usb/host/xhci-tegra.c index 0bb391b8001e..3834882320b3 100644 --- a/drivers/usb/host/xhci-tegra.c +++ b/drivers/usb/host/xhci-tegra.c @@ -3385,12 +3385,13 @@ static irqreturn_t tegra_xhci_smi_irq(int irq, void *ptrdev) */ temp = readl(tegra->fpci_base + XUSB_CFG_ARU_SMI_INTR); - - /* write 1 to clear SMI INTR en bit ( bit 3 ) */ - temp = MBOX_SMI_INTR_EN; writel(temp, tegra->fpci_base + XUSB_CFG_ARU_SMI_INTR); - schedule_work(&tegra->mbox_work); + xhci_dbg(tegra->xhci, "SMI INTR status 0x%x\n", temp); + if (temp & SMI_INTR_STATUS_FW_REINIT) + xhci_err(tegra->xhci, "Firmware reinit.\n"); + if (temp & SMI_INTR_STATUS_MBOX) + schedule_work(&tegra->mbox_work); spin_unlock(&tegra->lock); return IRQ_HANDLED; |