pci: msm: Dump PCIe registers to debug linkdown
Support to dump PARF,PHY,DBI/dm_core registers for PCIe linkdown. Change-Id: I1c591e676cda47fd9ded5ffe15a388672a75cb21 Signed-off-by: Vivek Pernamitta <vpernami@codeaurora.org>
This commit is contained in:
parent
0873aa6e66
commit
3c4fddd87f
1 changed files with 33 additions and 0 deletions
|
@ -1280,6 +1280,29 @@ static void pcie_parf_dump(struct msm_pcie_dev_t *dev)
|
|||
}
|
||||
}
|
||||
|
||||
static void pcie_dm_core_dump(struct msm_pcie_dev_t *dev)
|
||||
{
|
||||
int i, size;
|
||||
|
||||
PCIE_DUMP(dev, "PCIe: RC%d DBI/dm_core register dump\n", dev->rc_idx);
|
||||
|
||||
size = resource_size(dev->res[MSM_PCIE_RES_DM_CORE].resource);
|
||||
|
||||
for (i = 0; i < size; i += 32) {
|
||||
PCIE_DUMP(dev,
|
||||
"RC%d: 0x%04x %08x %08x %08x %08x %08x %08x %08x %08x\n",
|
||||
dev->rc_idx, i,
|
||||
readl_relaxed(dev->dm_core + i),
|
||||
readl_relaxed(dev->dm_core + (i + 4)),
|
||||
readl_relaxed(dev->dm_core + (i + 8)),
|
||||
readl_relaxed(dev->dm_core + (i + 12)),
|
||||
readl_relaxed(dev->dm_core + (i + 16)),
|
||||
readl_relaxed(dev->dm_core + (i + 20)),
|
||||
readl_relaxed(dev->dm_core + (i + 24)),
|
||||
readl_relaxed(dev->dm_core + (i + 28)));
|
||||
}
|
||||
}
|
||||
|
||||
static void msm_pcie_show_status(struct msm_pcie_dev_t *dev)
|
||||
{
|
||||
PCIE_DBG_FS(dev, "PCIe: RC%d is %s enumerated\n",
|
||||
|
@ -5034,6 +5057,16 @@ static irqreturn_t handle_linkdown_irq(int irq, void *data)
|
|||
dev->link_status = MSM_PCIE_LINK_DOWN;
|
||||
dev->shadow_en = false;
|
||||
|
||||
/* PCIe registers dump on link down */
|
||||
if ((dev->rc_idx == 0) || (dev->rc_idx == 2)) {
|
||||
PCIE_DUMP(dev,
|
||||
"PCIe:Linkdown IRQ for RC%d Dumping PCIe registers\n",
|
||||
dev->rc_idx);
|
||||
pcie_phy_dump(dev);
|
||||
pcie_parf_dump(dev);
|
||||
pcie_dm_core_dump(dev);
|
||||
}
|
||||
|
||||
if (dev->linkdown_panic)
|
||||
panic("User has chosen to panic on linkdown\n");
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue