*/
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;
/*
* xhci-tegra.h - Nvidia xHCI host controller related data
*
- * Copyright (c) 2013, NVIDIA CORPORATION. All rights reserved.
+ * Copyright (c) 2013-2014, NVIDIA CORPORATION. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License,
#define MBOX_OWNER_SW 2
#define MBOX_OWNER_ID_MASK 0xFF
-#define MBOX_SMI_INTR_EN (1 << 3)
+#define SMI_INTR_STATUS_MBOX (1 << 3)
+#define SMI_INTR_STATUS_FW_REINIT (1 << 1)
/* PMC Register */
#define PMC_SCRATCH34 0x124