msm: pcie: update debugfs messages with new IPC label

In addition to having outputs to kernel log, PCIe
debugfs messages should also be captured in IPC logging.
Therefore, add a new IPC logging label and update the
existing calls to do so.

Change-Id: I2ab6a6549575c4e2de2f1ef0756328f4b6f6a178
Signed-off-by: Tony Truong <truong@codeaurora.org>
This commit is contained in:
Tony Truong 2015-07-23 17:44:08 -07:00 committed by David Keitel
parent d4eaaf3a8a
commit d9d95976d1

View file

@ -324,6 +324,13 @@
"DUMP:%s: " fmt, __func__, arg); \ "DUMP:%s: " fmt, __func__, arg); \
} while (0) } while (0)
#define PCIE_DBG_FS(dev, fmt, arg...) do { \
if ((dev) && (dev)->ipc_log_dump) \
ipc_log_string((dev)->ipc_log_dump, \
"DBG_FS:%s: " fmt, __func__, arg); \
pr_alert("%s: " fmt, __func__, arg); \
} while (0)
#define PCIE_INFO(dev, fmt, arg...) do { \ #define PCIE_INFO(dev, fmt, arg...) do { \
if ((dev) && (dev)->ipc_log_long) \ if ((dev) && (dev)->ipc_log_long) \
ipc_log_string((dev)->ipc_log_long, \ ipc_log_string((dev)->ipc_log_long, \
@ -1422,92 +1429,92 @@ static void pcie_parf_dump(struct msm_pcie_dev_t *dev)
static void msm_pcie_show_status(struct msm_pcie_dev_t *dev) static void msm_pcie_show_status(struct msm_pcie_dev_t *dev)
{ {
pr_alert("PCIe: RC%d is %s enumerated\n", PCIE_DBG_FS(dev, "PCIe: RC%d is %s enumerated\n",
dev->rc_idx, dev->enumerated ? "" : "not"); dev->rc_idx, dev->enumerated ? "" : "not");
pr_alert("PCIe: link is %s\n", PCIE_DBG_FS(dev, "PCIe: link is %s\n",
(dev->link_status == MSM_PCIE_LINK_ENABLED) (dev->link_status == MSM_PCIE_LINK_ENABLED)
? "enabled" : "disabled"); ? "enabled" : "disabled");
pr_alert("cfg_access is %s allowed\n", PCIE_DBG_FS(dev, "cfg_access is %s allowed\n",
dev->cfg_access ? "" : "not"); dev->cfg_access ? "" : "not");
pr_alert("use_msi is %d\n", PCIE_DBG_FS(dev, "use_msi is %d\n",
dev->use_msi); dev->use_msi);
pr_alert("use_pinctrl is %d\n", PCIE_DBG_FS(dev, "use_pinctrl is %d\n",
dev->use_pinctrl); dev->use_pinctrl);
pr_alert("user_suspend is %d\n", PCIE_DBG_FS(dev, "user_suspend is %d\n",
dev->user_suspend); dev->user_suspend);
pr_alert("num_ep: %d\n", PCIE_DBG_FS(dev, "num_ep: %d\n",
dev->num_ep); dev->num_ep);
pr_alert("num_active_ep: %d\n", PCIE_DBG_FS(dev, "num_active_ep: %d\n",
dev->num_active_ep); dev->num_active_ep);
pr_alert("pending_ep_reg: %s\n", PCIE_DBG_FS(dev, "pending_ep_reg: %s\n",
dev->pending_ep_reg ? "true" : "false"); dev->pending_ep_reg ? "true" : "false");
pr_alert("disable_pc is %d", PCIE_DBG_FS(dev, "disable_pc is %d",
dev->disable_pc); dev->disable_pc);
pr_alert("l0s_supported is %s supported\n", PCIE_DBG_FS(dev, "l0s_supported is %s supported\n",
dev->l0s_supported ? "" : "not"); dev->l0s_supported ? "" : "not");
pr_alert("l1_supported is %s supported\n", PCIE_DBG_FS(dev, "l1_supported is %s supported\n",
dev->l1_supported ? "" : "not"); dev->l1_supported ? "" : "not");
pr_alert("l1ss_supported is %s supported\n", PCIE_DBG_FS(dev, "l1ss_supported is %s supported\n",
dev->l1ss_supported ? "" : "not"); dev->l1ss_supported ? "" : "not");
pr_alert("common_clk_en is %d\n", PCIE_DBG_FS(dev, "common_clk_en is %d\n",
dev->common_clk_en); dev->common_clk_en);
pr_alert("clk_power_manage_en is %d\n", PCIE_DBG_FS(dev, "clk_power_manage_en is %d\n",
dev->clk_power_manage_en); dev->clk_power_manage_en);
pr_alert("aux_clk_sync is %d\n", PCIE_DBG_FS(dev, "aux_clk_sync is %d\n",
dev->aux_clk_sync); dev->aux_clk_sync);
pr_alert("ext_ref_clk is %d\n", PCIE_DBG_FS(dev, "ext_ref_clk is %d\n",
dev->ext_ref_clk); dev->ext_ref_clk);
pr_alert("ep_wakeirq is %d\n", PCIE_DBG_FS(dev, "ep_wakeirq is %d\n",
dev->ep_wakeirq); dev->ep_wakeirq);
pr_alert("phy_ver is %d\n", PCIE_DBG_FS(dev, "phy_ver is %d\n",
dev->phy_ver); dev->phy_ver);
pr_alert("drv_ready is %d\n", PCIE_DBG_FS(dev, "drv_ready is %d\n",
dev->drv_ready); dev->drv_ready);
pr_alert("the link is %s suspending\n", PCIE_DBG_FS(dev, "the link is %s suspending\n",
dev->suspending ? "" : "not"); dev->suspending ? "" : "not");
pr_alert("shadow is %s enabled\n", PCIE_DBG_FS(dev, "shadow is %s enabled\n",
dev->shadow_en ? "" : "not"); dev->shadow_en ? "" : "not");
pr_alert("the power of RC is %s on\n", PCIE_DBG_FS(dev, "the power of RC is %s on\n",
dev->power_on ? "" : "not"); dev->power_on ? "" : "not");
pr_alert("msi_gicm_addr: 0x%x\n", PCIE_DBG_FS(dev, "msi_gicm_addr: 0x%x\n",
dev->msi_gicm_addr); dev->msi_gicm_addr);
pr_alert("msi_gicm_base: 0x%x\n", PCIE_DBG_FS(dev, "msi_gicm_base: 0x%x\n",
dev->msi_gicm_base); dev->msi_gicm_base);
pr_alert("bus_client: %d\n", PCIE_DBG_FS(dev, "bus_client: %d\n",
dev->bus_client); dev->bus_client);
pr_alert("current short bdf: %d\n", PCIE_DBG_FS(dev, "current short bdf: %d\n",
dev->current_short_bdf); dev->current_short_bdf);
pr_alert("smmu does %s exist\n", PCIE_DBG_FS(dev, "smmu does %s exist\n",
dev->smmu_exist ? "" : "not"); dev->smmu_exist ? "" : "not");
pr_alert("n_fts: %d\n", PCIE_DBG_FS(dev, "n_fts: %d\n",
dev->n_fts); dev->n_fts);
pr_alert("common_phy: %d\n", PCIE_DBG_FS(dev, "common_phy: %d\n",
dev->common_phy); dev->common_phy);
pr_alert("ep_latency: %dms\n", PCIE_DBG_FS(dev, "ep_latency: %dms\n",
dev->ep_latency); dev->ep_latency);
pr_alert("current_bdf: 0x%x\n", PCIE_DBG_FS(dev, "current_bdf: 0x%x\n",
dev->current_bdf); dev->current_bdf);
pr_alert("tlp_rd_size: 0x%x\n", PCIE_DBG_FS(dev, "tlp_rd_size: 0x%x\n",
dev->tlp_rd_size); dev->tlp_rd_size);
pr_alert("rc_corr_counter: %lu\n", PCIE_DBG_FS(dev, "rc_corr_counter: %lu\n",
dev->rc_corr_counter); dev->rc_corr_counter);
pr_alert("rc_non_fatal_counter: %lu\n", PCIE_DBG_FS(dev, "rc_non_fatal_counter: %lu\n",
dev->rc_non_fatal_counter); dev->rc_non_fatal_counter);
pr_alert("rc_fatal_counter: %lu\n", PCIE_DBG_FS(dev, "rc_fatal_counter: %lu\n",
dev->rc_fatal_counter); dev->rc_fatal_counter);
pr_alert("ep_corr_counter: %lu\n", PCIE_DBG_FS(dev, "ep_corr_counter: %lu\n",
dev->ep_corr_counter); dev->ep_corr_counter);
pr_alert("ep_non_fatal_counter: %lu\n", PCIE_DBG_FS(dev, "ep_non_fatal_counter: %lu\n",
dev->ep_non_fatal_counter); dev->ep_non_fatal_counter);
pr_alert("ep_fatal_counter: %lu\n", PCIE_DBG_FS(dev, "ep_fatal_counter: %lu\n",
dev->ep_fatal_counter); dev->ep_fatal_counter);
pr_alert("linkdown_counter: %lu\n", PCIE_DBG_FS(dev, "linkdown_counter: %lu\n",
dev->linkdown_counter); dev->linkdown_counter);
pr_alert("wake_counter: %lu\n", PCIE_DBG_FS(dev, "wake_counter: %lu\n",
dev->wake_counter); dev->wake_counter);
pr_alert("link_turned_on_counter: %lu\n", PCIE_DBG_FS(dev, "link_turned_on_counter: %lu\n",
dev->link_turned_on_counter); dev->link_turned_on_counter);
pr_alert("link_turned_off_counter: %lu\n", PCIE_DBG_FS(dev, "link_turned_off_counter: %lu\n",
dev->link_turned_off_counter); dev->link_turned_off_counter);
} }
@ -1524,7 +1531,7 @@ static void msm_pcie_shadow_dump(struct msm_pcie_dev_t *dev, bool rc)
shadow = dev->rc_shadow; shadow = dev->rc_shadow;
} else { } else {
shadow = dev->ep_shadow[i]; shadow = dev->ep_shadow[i];
pr_alert("PCIe Device: %02x:%02x.%01x\n", PCIE_DBG_FS(dev, "PCIe Device: %02x:%02x.%01x\n",
dev->pcidev_table[i].bdf >> 24, dev->pcidev_table[i].bdf >> 24,
dev->pcidev_table[i].bdf >> 19 & 0x1f, dev->pcidev_table[i].bdf >> 19 & 0x1f,
dev->pcidev_table[i].bdf >> 16 & 0x07); dev->pcidev_table[i].bdf >> 16 & 0x07);
@ -1532,7 +1539,8 @@ static void msm_pcie_shadow_dump(struct msm_pcie_dev_t *dev, bool rc)
for (j = 0; j < PCIE_CONF_SPACE_DW; j++) { for (j = 0; j < PCIE_CONF_SPACE_DW; j++) {
val = shadow[j]; val = shadow[j];
if (val != PCIE_CLEAR) { if (val != PCIE_CLEAR) {
pr_alert("PCIe: shadow_dw[%d]:cfg 0x%x:0x%x\n", PCIE_DBG_FS(dev,
"PCIe: shadow_dw[%d]:cfg 0x%x:0x%x\n",
j, j * 4, val); j, j * 4, val);
} }
} }
@ -1581,33 +1589,35 @@ static void msm_pcie_sel_debug_testcase(struct msm_pcie_dev_t *dev,
switch (testcase) { switch (testcase) {
case 0: /* output status */ case 0: /* output status */
pr_alert("\n\nPCIe: Status for RC%d:\n", PCIE_DBG_FS(dev, "\n\nPCIe: Status for RC%d:\n",
dev->rc_idx); dev->rc_idx);
msm_pcie_show_status(dev); msm_pcie_show_status(dev);
break; break;
case 1: /* disable link */ case 1: /* disable link */
pr_alert("\n\nPCIe: RC%d: disable link\n\n", dev->rc_idx); PCIE_DBG_FS(dev,
"\n\nPCIe: RC%d: disable link\n\n", dev->rc_idx);
ret = msm_pcie_pm_control(MSM_PCIE_SUSPEND, 0, ret = msm_pcie_pm_control(MSM_PCIE_SUSPEND, 0,
dev->dev, NULL, dev->dev, NULL,
MSM_PCIE_CONFIG_NO_CFG_RESTORE); MSM_PCIE_CONFIG_NO_CFG_RESTORE);
if (ret) if (ret)
pr_alert("PCIe:%s:failed to disable link\n", PCIE_DBG_FS(dev, "PCIe:%s:failed to disable link\n",
__func__); __func__);
else else
pr_alert("PCIe:%s:disabled link\n", PCIE_DBG_FS(dev, "PCIe:%s:disabled link\n",
__func__); __func__);
break; break;
case 2: /* enable link and recover config space for RC and EP */ case 2: /* enable link and recover config space for RC and EP */
pr_alert("\n\nPCIe: RC%d: enable link and recover config space\n\n", PCIE_DBG_FS(dev,
"\n\nPCIe: RC%d: enable link and recover config space\n\n",
dev->rc_idx); dev->rc_idx);
ret = msm_pcie_pm_control(MSM_PCIE_RESUME, 0, ret = msm_pcie_pm_control(MSM_PCIE_RESUME, 0,
dev->dev, NULL, dev->dev, NULL,
MSM_PCIE_CONFIG_NO_CFG_RESTORE); MSM_PCIE_CONFIG_NO_CFG_RESTORE);
if (ret) if (ret)
pr_alert("PCIe:%s:failed to enable link\n", PCIE_DBG_FS(dev, "PCIe:%s:failed to enable link\n",
__func__); __func__);
else { else {
pr_alert("PCIe:%s:enabled link\n", __func__); PCIE_DBG_FS(dev, "PCIe:%s:enabled link\n", __func__);
msm_pcie_recover_config(dev->dev); msm_pcie_recover_config(dev->dev);
} }
break; break;
@ -1615,38 +1625,41 @@ static void msm_pcie_sel_debug_testcase(struct msm_pcie_dev_t *dev,
* disable and enable link, recover config space for * disable and enable link, recover config space for
* RC and EP * RC and EP
*/ */
pr_alert("\n\nPCIe: RC%d: disable and enable link then recover config space\n\n", PCIE_DBG_FS(dev,
"\n\nPCIe: RC%d: disable and enable link then recover config space\n\n",
dev->rc_idx); dev->rc_idx);
ret = msm_pcie_pm_control(MSM_PCIE_SUSPEND, 0, ret = msm_pcie_pm_control(MSM_PCIE_SUSPEND, 0,
dev->dev, NULL, dev->dev, NULL,
MSM_PCIE_CONFIG_NO_CFG_RESTORE); MSM_PCIE_CONFIG_NO_CFG_RESTORE);
if (ret) if (ret)
pr_alert("PCIe:%s:failed to disable link\n", PCIE_DBG_FS(dev, "PCIe:%s:failed to disable link\n",
__func__); __func__);
else else
pr_alert("PCIe:%s:disabled link\n", __func__); PCIE_DBG_FS(dev, "PCIe:%s:disabled link\n", __func__);
ret = msm_pcie_pm_control(MSM_PCIE_RESUME, 0, ret = msm_pcie_pm_control(MSM_PCIE_RESUME, 0,
dev->dev, NULL, dev->dev, NULL,
MSM_PCIE_CONFIG_NO_CFG_RESTORE); MSM_PCIE_CONFIG_NO_CFG_RESTORE);
if (ret) if (ret)
pr_alert("PCIe:%s:failed to enable link\n", PCIE_DBG_FS(dev, "PCIe:%s:failed to enable link\n",
__func__); __func__);
else { else {
pr_alert("PCIe:%s:enabled link\n", __func__); PCIE_DBG_FS(dev, "PCIe:%s:enabled link\n", __func__);
msm_pcie_recover_config(dev->dev); msm_pcie_recover_config(dev->dev);
} }
break; break;
case 4: /* dump shadow registers for RC and EP */ case 4: /* dump shadow registers for RC and EP */
pr_alert("\n\nPCIe: RC%d: dumping RC shadow registers\n", PCIE_DBG_FS(dev,
"\n\nPCIe: RC%d: dumping RC shadow registers\n",
dev->rc_idx); dev->rc_idx);
msm_pcie_shadow_dump(dev, true); msm_pcie_shadow_dump(dev, true);
pr_alert("\n\nPCIe: RC%d: dumping EP shadow registers\n", PCIE_DBG_FS(dev,
"\n\nPCIe: RC%d: dumping EP shadow registers\n",
dev->rc_idx); dev->rc_idx);
msm_pcie_shadow_dump(dev, false); msm_pcie_shadow_dump(dev, false);
break; break;
case 5: /* disable L0s */ case 5: /* disable L0s */
pr_alert("\n\nPCIe: RC%d: disable L0s\n\n", PCIE_DBG_FS(dev, "\n\nPCIe: RC%d: disable L0s\n\n",
dev->rc_idx); dev->rc_idx);
msm_pcie_write_mask(dev->dm_core + msm_pcie_write_mask(dev->dm_core +
PCIE20_CAP_LINKCTRLSTATUS, PCIE20_CAP_LINKCTRLSTATUS,
@ -1662,15 +1675,15 @@ static void msm_pcie_sel_debug_testcase(struct msm_pcie_dev_t *dev,
readl_relaxed(dev->conf + readl_relaxed(dev->conf +
ep_link_ctrlstts_offset); ep_link_ctrlstts_offset);
} }
pr_alert("PCIe: RC's CAP_LINKCTRLSTATUS:0x%x\n", PCIE_DBG_FS(dev, "PCIe: RC's CAP_LINKCTRLSTATUS:0x%x\n",
readl_relaxed(dev->dm_core + readl_relaxed(dev->dm_core +
PCIE20_CAP_LINKCTRLSTATUS)); PCIE20_CAP_LINKCTRLSTATUS));
pr_alert("PCIe: EP's CAP_LINKCTRLSTATUS:0x%x\n", PCIE_DBG_FS(dev, "PCIe: EP's CAP_LINKCTRLSTATUS:0x%x\n",
readl_relaxed(dev->conf + readl_relaxed(dev->conf +
ep_link_ctrlstts_offset)); ep_link_ctrlstts_offset));
break; break;
case 6: /* enable L0s */ case 6: /* enable L0s */
pr_alert("\n\nPCIe: RC%d: enable L0s\n\n", PCIE_DBG_FS(dev, "\n\nPCIe: RC%d: enable L0s\n\n",
dev->rc_idx); dev->rc_idx);
msm_pcie_write_mask(dev->dm_core + msm_pcie_write_mask(dev->dm_core +
PCIE20_CAP_LINKCTRLSTATUS, PCIE20_CAP_LINKCTRLSTATUS,
@ -1686,15 +1699,15 @@ static void msm_pcie_sel_debug_testcase(struct msm_pcie_dev_t *dev,
readl_relaxed(dev->conf + readl_relaxed(dev->conf +
ep_link_ctrlstts_offset); ep_link_ctrlstts_offset);
} }
pr_alert("PCIe: RC's CAP_LINKCTRLSTATUS:0x%x\n", PCIE_DBG_FS(dev, "PCIe: RC's CAP_LINKCTRLSTATUS:0x%x\n",
readl_relaxed(dev->dm_core + readl_relaxed(dev->dm_core +
PCIE20_CAP_LINKCTRLSTATUS)); PCIE20_CAP_LINKCTRLSTATUS));
pr_alert("PCIe: EP's CAP_LINKCTRLSTATUS:0x%x\n", PCIE_DBG_FS(dev, "PCIe: EP's CAP_LINKCTRLSTATUS:0x%x\n",
readl_relaxed(dev->conf + readl_relaxed(dev->conf +
ep_link_ctrlstts_offset)); ep_link_ctrlstts_offset));
break; break;
case 7: /* disable L1 */ case 7: /* disable L1 */
pr_alert("\n\nPCIe: RC%d: disable L1\n\n", PCIE_DBG_FS(dev, "\n\nPCIe: RC%d: disable L1\n\n",
dev->rc_idx); dev->rc_idx);
msm_pcie_write_mask(dev->dm_core + msm_pcie_write_mask(dev->dm_core +
PCIE20_CAP_LINKCTRLSTATUS, PCIE20_CAP_LINKCTRLSTATUS,
@ -1710,15 +1723,15 @@ static void msm_pcie_sel_debug_testcase(struct msm_pcie_dev_t *dev,
readl_relaxed(dev->conf + readl_relaxed(dev->conf +
ep_link_ctrlstts_offset); ep_link_ctrlstts_offset);
} }
pr_alert("PCIe: RC's CAP_LINKCTRLSTATUS:0x%x\n", PCIE_DBG_FS(dev, "PCIe: RC's CAP_LINKCTRLSTATUS:0x%x\n",
readl_relaxed(dev->dm_core + readl_relaxed(dev->dm_core +
PCIE20_CAP_LINKCTRLSTATUS)); PCIE20_CAP_LINKCTRLSTATUS));
pr_alert("PCIe: EP's CAP_LINKCTRLSTATUS:0x%x\n", PCIE_DBG_FS(dev, "PCIe: EP's CAP_LINKCTRLSTATUS:0x%x\n",
readl_relaxed(dev->conf + readl_relaxed(dev->conf +
ep_link_ctrlstts_offset)); ep_link_ctrlstts_offset));
break; break;
case 8: /* enable L1 */ case 8: /* enable L1 */
pr_alert("\n\nPCIe: RC%d: enable L1\n\n", PCIE_DBG_FS(dev, "\n\nPCIe: RC%d: enable L1\n\n",
dev->rc_idx); dev->rc_idx);
msm_pcie_write_mask(dev->dm_core + msm_pcie_write_mask(dev->dm_core +
PCIE20_CAP_LINKCTRLSTATUS, PCIE20_CAP_LINKCTRLSTATUS,
@ -1734,15 +1747,15 @@ static void msm_pcie_sel_debug_testcase(struct msm_pcie_dev_t *dev,
readl_relaxed(dev->conf + readl_relaxed(dev->conf +
ep_link_ctrlstts_offset); ep_link_ctrlstts_offset);
} }
pr_alert("PCIe: RC's CAP_LINKCTRLSTATUS:0x%x\n", PCIE_DBG_FS(dev, "PCIe: RC's CAP_LINKCTRLSTATUS:0x%x\n",
readl_relaxed(dev->dm_core + readl_relaxed(dev->dm_core +
PCIE20_CAP_LINKCTRLSTATUS)); PCIE20_CAP_LINKCTRLSTATUS));
pr_alert("PCIe: EP's CAP_LINKCTRLSTATUS:0x%x\n", PCIE_DBG_FS(dev, "PCIe: EP's CAP_LINKCTRLSTATUS:0x%x\n",
readl_relaxed(dev->conf + readl_relaxed(dev->conf +
ep_link_ctrlstts_offset)); ep_link_ctrlstts_offset));
break; break;
case 9: /* disable L1ss */ case 9: /* disable L1ss */
pr_alert("\n\nPCIe: RC%d: disable L1ss\n\n", PCIE_DBG_FS(dev, "\n\nPCIe: RC%d: disable L1ss\n\n",
dev->rc_idx); dev->rc_idx);
current_offset = PCIE_EXT_CAP_OFFSET; current_offset = PCIE_EXT_CAP_OFFSET;
while (current_offset) { while (current_offset) {
@ -1755,12 +1768,13 @@ static void msm_pcie_sel_debug_testcase(struct msm_pcie_dev_t *dev,
current_offset = val >> 20; current_offset = val >> 20;
} }
if (!ep_l1sub_ctrl1_offset) { if (!ep_l1sub_ctrl1_offset) {
pr_alert("PCIe: RC%d endpoint does not support l1ss registers\n", PCIE_DBG_FS(dev,
"PCIe: RC%d endpoint does not support l1ss registers\n",
dev->rc_idx); dev->rc_idx);
break; break;
} }
pr_alert("PCIe: RC%d: ep_l1sub_ctrl1_offset: 0x%x\n", PCIE_DBG_FS(dev, "PCIe: RC%d: ep_l1sub_ctrl1_offset: 0x%x\n",
dev->rc_idx, ep_l1sub_ctrl1_offset); dev->rc_idx, ep_l1sub_ctrl1_offset);
msm_pcie_write_reg_field(dev->dm_core, msm_pcie_write_reg_field(dev->dm_core,
@ -1789,21 +1803,21 @@ static void msm_pcie_sel_debug_testcase(struct msm_pcie_dev_t *dev,
readl_relaxed(dev->conf + readl_relaxed(dev->conf +
ep_dev_ctrl2stts2_offset); ep_dev_ctrl2stts2_offset);
} }
pr_alert("PCIe: RC's L1SUB_CONTROL1:0x%x\n", PCIE_DBG_FS(dev, "PCIe: RC's L1SUB_CONTROL1:0x%x\n",
readl_relaxed(dev->dm_core + readl_relaxed(dev->dm_core +
PCIE20_L1SUB_CONTROL1)); PCIE20_L1SUB_CONTROL1));
pr_alert("PCIe: RC's DEVICE_CONTROL2_STATUS2:0x%x\n", PCIE_DBG_FS(dev, "PCIe: RC's DEVICE_CONTROL2_STATUS2:0x%x\n",
readl_relaxed(dev->dm_core + readl_relaxed(dev->dm_core +
PCIE20_DEVICE_CONTROL2_STATUS2)); PCIE20_DEVICE_CONTROL2_STATUS2));
pr_alert("PCIe: EP's L1SUB_CONTROL1:0x%x\n", PCIE_DBG_FS(dev, "PCIe: EP's L1SUB_CONTROL1:0x%x\n",
readl_relaxed(dev->conf + readl_relaxed(dev->conf +
ep_l1sub_ctrl1_offset)); ep_l1sub_ctrl1_offset));
pr_alert("PCIe: EP's DEVICE_CONTROL2_STATUS2:0x%x\n", PCIE_DBG_FS(dev, "PCIe: EP's DEVICE_CONTROL2_STATUS2:0x%x\n",
readl_relaxed(dev->conf + readl_relaxed(dev->conf +
ep_dev_ctrl2stts2_offset)); ep_dev_ctrl2stts2_offset));
break; break;
case 10: /* enable L1ss */ case 10: /* enable L1ss */
pr_alert("\n\nPCIe: RC%d: enable L1ss\n\n", PCIE_DBG_FS(dev, "\n\nPCIe: RC%d: enable L1ss\n\n",
dev->rc_idx); dev->rc_idx);
current_offset = PCIE_EXT_CAP_OFFSET; current_offset = PCIE_EXT_CAP_OFFSET;
while (current_offset) { while (current_offset) {
@ -1818,7 +1832,8 @@ static void msm_pcie_sel_debug_testcase(struct msm_pcie_dev_t *dev,
current_offset = val >> 20; current_offset = val >> 20;
} }
if (!ep_l1sub_ctrl1_offset) { if (!ep_l1sub_ctrl1_offset) {
pr_alert("PCIe: RC%d endpoint does not support l1ss registers\n", PCIE_DBG_FS(dev,
"PCIe: RC%d endpoint does not support l1ss registers\n",
dev->rc_idx); dev->rc_idx);
break; break;
} }
@ -1826,9 +1841,9 @@ static void msm_pcie_sel_debug_testcase(struct msm_pcie_dev_t *dev,
val = readl_relaxed(dev->conf + val = readl_relaxed(dev->conf +
ep_l1sub_cap_reg1_offset); ep_l1sub_cap_reg1_offset);
pr_alert("PCIe: EP's L1SUB_CAPABILITY_REG_1: 0x%x\n", PCIE_DBG_FS(dev, "PCIe: EP's L1SUB_CAPABILITY_REG_1: 0x%x\n",
val); val);
pr_alert("PCIe: RC%d: ep_l1sub_ctrl1_offset: 0x%x\n", PCIE_DBG_FS(dev, "PCIe: RC%d: ep_l1sub_ctrl1_offset: 0x%x\n",
dev->rc_idx, ep_l1sub_ctrl1_offset); dev->rc_idx, ep_l1sub_ctrl1_offset);
val &= 0xf; val &= 0xf;
@ -1859,44 +1874,48 @@ static void msm_pcie_sel_debug_testcase(struct msm_pcie_dev_t *dev,
readl_relaxed(dev->conf + readl_relaxed(dev->conf +
ep_dev_ctrl2stts2_offset); ep_dev_ctrl2stts2_offset);
} }
pr_alert("PCIe: RC's L1SUB_CONTROL1:0x%x\n", PCIE_DBG_FS(dev, "PCIe: RC's L1SUB_CONTROL1:0x%x\n",
readl_relaxed(dev->dm_core + readl_relaxed(dev->dm_core +
PCIE20_L1SUB_CONTROL1)); PCIE20_L1SUB_CONTROL1));
pr_alert("PCIe: RC's DEVICE_CONTROL2_STATUS2:0x%x\n", PCIE_DBG_FS(dev, "PCIe: RC's DEVICE_CONTROL2_STATUS2:0x%x\n",
readl_relaxed(dev->dm_core + readl_relaxed(dev->dm_core +
PCIE20_DEVICE_CONTROL2_STATUS2)); PCIE20_DEVICE_CONTROL2_STATUS2));
pr_alert("PCIe: EP's L1SUB_CONTROL1:0x%x\n", PCIE_DBG_FS(dev, "PCIe: EP's L1SUB_CONTROL1:0x%x\n",
readl_relaxed(dev->conf + readl_relaxed(dev->conf +
ep_l1sub_ctrl1_offset)); ep_l1sub_ctrl1_offset));
pr_alert("PCIe: EP's DEVICE_CONTROL2_STATUS2:0x%x\n", PCIE_DBG_FS(dev, "PCIe: EP's DEVICE_CONTROL2_STATUS2:0x%x\n",
readl_relaxed(dev->conf + readl_relaxed(dev->conf +
ep_dev_ctrl2stts2_offset)); ep_dev_ctrl2stts2_offset));
break; break;
case 11: /* enumerate PCIe */ case 11: /* enumerate PCIe */
pr_alert("\n\nPCIe: attempting to enumerate RC%d\n\n", PCIE_DBG_FS(dev, "\n\nPCIe: attempting to enumerate RC%d\n\n",
dev->rc_idx); dev->rc_idx);
if (dev->enumerated) if (dev->enumerated)
pr_alert("PCIe: RC%d is already enumerated\n", PCIE_DBG_FS(dev, "PCIe: RC%d is already enumerated\n",
dev->rc_idx); dev->rc_idx);
else { else {
if (!msm_pcie_enumerate(dev->rc_idx)) if (!msm_pcie_enumerate(dev->rc_idx))
pr_alert("PCIe: RC%d is successfully enumerated\n", PCIE_DBG_FS(dev,
"PCIe: RC%d is successfully enumerated\n",
dev->rc_idx); dev->rc_idx);
else else
pr_alert("PCIe: RC%d enumeration failed\n", PCIE_DBG_FS(dev,
"PCIe: RC%d enumeration failed\n",
dev->rc_idx); dev->rc_idx);
} }
break; break;
case 12: /* write a value to a register */ case 12: /* write a value to a register */
pr_alert("\n\nPCIe: RC%d: writing a value to a register\n\n", PCIE_DBG_FS(dev,
"\n\nPCIe: RC%d: writing a value to a register\n\n",
dev->rc_idx); dev->rc_idx);
if (!base_sel) { if (!base_sel) {
pr_alert("Invalid base_sel: 0x%x\n", base_sel); PCIE_DBG_FS(dev, "Invalid base_sel: 0x%x\n", base_sel);
break; break;
} }
pr_alert("base: %s: 0x%p\nwr_offset: 0x%x\nwr_mask: 0x%x\nwr_value: 0x%x\n", PCIE_DBG_FS(dev,
"base: %s: 0x%p\nwr_offset: 0x%x\nwr_mask: 0x%x\nwr_value: 0x%x\n",
dev->res[base_sel - 1].name, dev->res[base_sel - 1].name,
dev->res[base_sel - 1].base, dev->res[base_sel - 1].base,
wr_offset, wr_mask, wr_value); wr_offset, wr_mask, wr_value);
@ -1907,7 +1926,7 @@ static void msm_pcie_sel_debug_testcase(struct msm_pcie_dev_t *dev,
break; break;
case 13: /* dump all registers of base_sel */ case 13: /* dump all registers of base_sel */
if (!base_sel) { if (!base_sel) {
pr_alert("Invalid base_sel: 0x%x\n", base_sel); PCIE_DBG_FS(dev, "Invalid base_sel: 0x%x\n", base_sel);
break; break;
} else if (base_sel - 1 == MSM_PCIE_RES_PHY) { } else if (base_sel - 1 == MSM_PCIE_RES_PHY) {
pcie_phy_dump(dev); pcie_phy_dump(dev);
@ -1919,11 +1938,12 @@ static void msm_pcie_sel_debug_testcase(struct msm_pcie_dev_t *dev,
dev->res[base_sel - 1].resource); dev->res[base_sel - 1].resource);
} }
pr_alert("\n\nPCIe: Dumping %s Registers for RC%d\n\n", PCIE_DBG_FS(dev, "\n\nPCIe: Dumping %s Registers for RC%d\n\n",
dev->res[base_sel - 1].name, dev->rc_idx); dev->res[base_sel - 1].name, dev->rc_idx);
for (i = 0; i < base_sel_size; i += 32) { for (i = 0; i < base_sel_size; i += 32) {
pr_alert("0x%04x %08x %08x %08x %08x %08x %08x %08x %08x\n", PCIE_DBG_FS(dev,
"0x%04x %08x %08x %08x %08x %08x %08x %08x %08x\n",
i, readl_relaxed(dev->res[base_sel - 1].base + i), i, readl_relaxed(dev->res[base_sel - 1].base + i),
readl_relaxed(dev->res[base_sel - 1].base + (i + 4)), readl_relaxed(dev->res[base_sel - 1].base + (i + 4)),
readl_relaxed(dev->res[base_sel - 1].base + (i + 8)), readl_relaxed(dev->res[base_sel - 1].base + (i + 8)),
@ -1935,7 +1955,7 @@ static void msm_pcie_sel_debug_testcase(struct msm_pcie_dev_t *dev,
} }
break; break;
default: default:
pr_alert("Invalid testcase: %d.\n", testcase); PCIE_DBG_FS(dev, "Invalid testcase: %d.\n", testcase);
break; break;
} }
} }
@ -1953,12 +1973,14 @@ int msm_pcie_debug_info(struct pci_dev *dev, u32 option, u32 base,
if (option == 12 || option == 13) { if (option == 12 || option == 13) {
if (!base || base > 5) { if (!base || base > 5) {
pr_alert("Invalid base_sel: 0x%x\n", base); PCIE_DBG_FS(pdev, "Invalid base_sel: 0x%x\n", base);
pr_alert("PCIe: base_sel is still 0x%x\n", base_sel); PCIE_DBG_FS(pdev,
"PCIe: base_sel is still 0x%x\n", base_sel);
return -EINVAL; return -EINVAL;
} else { } else {
base_sel = base; base_sel = base;
pr_alert("PCIe: base_sel is now 0x%x\n", base_sel); PCIE_DBG_FS(pdev,
"PCIe: base_sel is now 0x%x\n", base_sel);
} }
if (option == 12) { if (option == 12) {
@ -1966,9 +1988,12 @@ int msm_pcie_debug_info(struct pci_dev *dev, u32 option, u32 base,
wr_mask = mask; wr_mask = mask;
wr_value = value; wr_value = value;
pr_alert("PCIe: wr_offset is now 0x%x\n", wr_offset); PCIE_DBG_FS(pdev,
pr_alert("PCIe: wr_mask is now 0x%x\n", wr_mask); "PCIe: wr_offset is now 0x%x\n", wr_offset);
pr_alert("PCIe: wr_value is now 0x%x\n", wr_value); PCIE_DBG_FS(pdev,
"PCIe: wr_mask is now 0x%x\n", wr_mask);
PCIE_DBG_FS(pdev,
"PCIe: wr_value is now 0x%x\n", wr_value);
} }
} }