summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTony Truong <truong@codeaurora.org>2015-04-07 18:05:30 -0700
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-22 11:09:13 -0700
commit92111027640185e4689e6349727fc51ca84dec10 (patch)
treece06e5835c2b7ab0cc39a0b44952665314e49018
parent55820fda330aeb6389f68893870d48ad883eae29 (diff)
msm: pcie: add entry and exit detail logging for PCIe
To support more accurate benchmarks, add entry and exit logs for PCIe functions. Change-Id: I49f27263722adfaa8ae3973f242faa6a589d3358 Signed-off-by: Tony Truong <truong@codeaurora.org>
-rw-r--r--drivers/pci/host/pci-msm.c72
1 files changed, 58 insertions, 14 deletions
diff --git a/drivers/pci/host/pci-msm.c b/drivers/pci/host/pci-msm.c
index 8cb854f1430c..efedf31e8143 100644
--- a/drivers/pci/host/pci-msm.c
+++ b/drivers/pci/host/pci-msm.c
@@ -2635,7 +2635,7 @@ int msm_pcie_vreg_init(struct msm_pcie_dev_t *dev)
struct regulator *vreg;
struct msm_pcie_vreg_info_t *info;
- PCIE_DBG(dev, "RC%d\n", dev->rc_idx);
+ PCIE_DBG(dev, "RC%d: entry\n", dev->rc_idx);
for (i = 0; i < MSM_PCIE_MAX_VREG; i++) {
info = &dev->vreg[i];
@@ -2683,6 +2683,8 @@ int msm_pcie_vreg_init(struct msm_pcie_dev_t *dev)
regulator_disable(hdl);
}
+ PCIE_DBG(dev, "RC%d: exit\n", dev->rc_idx);
+
return rc;
}
@@ -2690,7 +2692,7 @@ static void msm_pcie_vreg_deinit(struct msm_pcie_dev_t *dev)
{
int i;
- PCIE_DBG(dev, "RC%d\n", dev->rc_idx);
+ PCIE_DBG(dev, "RC%d: entry\n", dev->rc_idx);
for (i = MSM_PCIE_MAX_VREG - 1; i >= 0; i--) {
if (dev->vreg[i].hdl) {
@@ -2699,6 +2701,8 @@ static void msm_pcie_vreg_deinit(struct msm_pcie_dev_t *dev)
regulator_disable(dev->vreg[i].hdl);
}
}
+
+ PCIE_DBG(dev, "RC%d: exit\n", dev->rc_idx);
}
static int msm_pcie_clk_init(struct msm_pcie_dev_t *dev)
@@ -2706,7 +2710,7 @@ static int msm_pcie_clk_init(struct msm_pcie_dev_t *dev)
int i, rc = 0;
struct msm_pcie_clk_info_t *info;
- PCIE_DBG(dev, "RC%d\n", dev->rc_idx);
+ PCIE_DBG(dev, "RC%d: entry\n", dev->rc_idx);
rc = regulator_enable(dev->gdsc);
@@ -2727,6 +2731,7 @@ static int msm_pcie_clk_init(struct msm_pcie_dev_t *dev)
}
}
+ PCIE_DBG(dev, "PCIe: requesting bus vote for RC%d\n", dev->rc_idx);
if (dev->bus_client) {
rc = msm_bus_scale_client_update_request(dev->bus_client, 1);
if (rc) {
@@ -2789,6 +2794,8 @@ static int msm_pcie_clk_init(struct msm_pcie_dev_t *dev)
regulator_disable(dev->gdsc);
}
+ PCIE_DBG(dev, "RC%d: exit\n", dev->rc_idx);
+
return rc;
}
@@ -2797,13 +2804,16 @@ static void msm_pcie_clk_deinit(struct msm_pcie_dev_t *dev)
int i;
int rc;
- PCIE_DBG(dev, "RC%d\n", dev->rc_idx);
+ PCIE_DBG(dev, "RC%d: entry\n", dev->rc_idx);
for (i = 0; i < MSM_PCIE_MAX_CLK; i++)
if (dev->clk[i].hdl)
clk_disable_unprepare(dev->clk[i].hdl);
if (dev->bus_client) {
+ PCIE_DBG(dev, "PCIe: removing bus vote for RC%d\n",
+ dev->rc_idx);
+
rc = msm_bus_scale_client_update_request(dev->bus_client, 0);
if (rc)
PCIE_ERR(dev,
@@ -2819,6 +2829,8 @@ static void msm_pcie_clk_deinit(struct msm_pcie_dev_t *dev)
regulator_disable(dev->gdsc_smmu);
regulator_disable(dev->gdsc);
+
+ PCIE_DBG(dev, "RC%d: exit\n", dev->rc_idx);
}
static int msm_pcie_pipe_clk_init(struct msm_pcie_dev_t *dev)
@@ -2826,7 +2838,7 @@ static int msm_pcie_pipe_clk_init(struct msm_pcie_dev_t *dev)
int i, rc = 0;
struct msm_pcie_clk_info_t *info;
- PCIE_DBG(dev, "RC%d\n", dev->rc_idx);
+ PCIE_DBG(dev, "RC%d: entry\n", dev->rc_idx);
for (i = 0; i < MSM_PCIE_MAX_PIPE_CLK; i++) {
info = &dev->pipeclk[i];
@@ -2868,6 +2880,8 @@ static int msm_pcie_pipe_clk_init(struct msm_pcie_dev_t *dev)
clk_disable_unprepare(dev->pipeclk[i].hdl);
}
+ PCIE_DBG(dev, "RC%d: exit\n", dev->rc_idx);
+
return rc;
}
@@ -2875,12 +2889,14 @@ static void msm_pcie_pipe_clk_deinit(struct msm_pcie_dev_t *dev)
{
int i;
- PCIE_DBG(dev, "RC%d\n", dev->rc_idx);
+ PCIE_DBG(dev, "RC%d: entry\n", dev->rc_idx);
for (i = 0; i < MSM_PCIE_MAX_PIPE_CLK; i++)
if (dev->pipeclk[i].hdl)
clk_disable_unprepare(
dev->pipeclk[i].hdl);
+
+ PCIE_DBG(dev, "RC%d: exit\n", dev->rc_idx);
}
static void msm_pcie_iatu_config_all_ep(struct msm_pcie_dev_t *dev)
@@ -3168,6 +3184,8 @@ static int msm_pcie_get_resources(struct msm_pcie_dev_t *dev,
const __be32 *prop;
u32 *clkfreq = NULL;
+ PCIE_DBG(dev, "RC%d: entry\n", dev->rc_idx);
+
cnt = of_property_count_strings((&pdev->dev)->of_node,
"clock-names");
if (cnt > 0) {
@@ -3189,8 +3207,6 @@ static int msm_pcie_get_resources(struct msm_pcie_dev_t *dev,
}
}
- PCIE_DBG(dev, "RC%d\n", dev->rc_idx);
-
for (i = 0; i < MSM_PCIE_MAX_VREG; i++) {
vreg_info = &dev->vreg[i];
vreg_info->hdl =
@@ -3428,6 +3444,9 @@ static int msm_pcie_get_resources(struct msm_pcie_dev_t *dev,
out:
kfree(clkfreq);
+
+ PCIE_DBG(dev, "RC%d: exit\n", dev->rc_idx);
+
return ret;
}
@@ -3449,7 +3468,7 @@ int msm_pcie_enable(struct msm_pcie_dev_t *dev, u32 options)
long int retries = 0;
int link_check_count = 0;
- PCIE_DBG(dev, "RC%d\n", dev->rc_idx);
+ PCIE_DBG(dev, "RC%d: entry\n", dev->rc_idx);
mutex_lock(&dev->setup_lock);
@@ -3633,12 +3652,14 @@ clk_fail:
out:
mutex_unlock(&dev->setup_lock);
+ PCIE_DBG(dev, "RC%d: exit\n", dev->rc_idx);
+
return ret;
}
void msm_pcie_disable(struct msm_pcie_dev_t *dev, u32 options)
{
- PCIE_DBG(dev, "RC%d\n", dev->rc_idx);
+ PCIE_DBG(dev, "RC%d: entry\n", dev->rc_idx);
mutex_lock(&dev->setup_lock);
@@ -3686,6 +3707,8 @@ void msm_pcie_disable(struct msm_pcie_dev_t *dev, u32 options)
msm_pcie_pipe_clk_deinit(dev);
mutex_unlock(&dev->setup_lock);
+
+ PCIE_DBG(dev, "RC%d: exit\n", dev->rc_idx);
}
static void msm_pcie_config_ep_aer(struct msm_pcie_dev_t *dev,
@@ -5150,12 +5173,12 @@ static int msm_pcie_pm_suspend(struct pci_dev *dev,
unsigned long irqsave_flags;
struct msm_pcie_dev_t *pcie_dev = PCIE_BUS_PRIV_DATA(dev);
+ PCIE_DBG(pcie_dev, "RC%d: entry\n", pcie_dev->rc_idx);
+
spin_lock_irqsave(&pcie_dev->aer_lock, irqsave_flags);
pcie_dev->suspending = true;
spin_unlock_irqrestore(&pcie_dev->aer_lock, irqsave_flags);
- PCIE_DBG(pcie_dev, "RC%d\n", pcie_dev->rc_idx);
-
if (!pcie_dev->power_on) {
PCIE_DBG(pcie_dev,
"PCIe: power of RC%d has been turned off.\n",
@@ -5207,6 +5230,8 @@ static int msm_pcie_pm_suspend(struct pci_dev *dev,
pinctrl_select_state(pcie_dev->pinctrl,
pcie_dev->pins_sleep);
+ PCIE_DBG(pcie_dev, "RC%d: exit\n", pcie_dev->rc_idx);
+
return ret;
}
@@ -5252,7 +5277,7 @@ static int msm_pcie_pm_resume(struct pci_dev *dev,
int ret;
struct msm_pcie_dev_t *pcie_dev = PCIE_BUS_PRIV_DATA(dev);
- PCIE_DBG(pcie_dev, "RC%d\n", pcie_dev->rc_idx);
+ PCIE_DBG(pcie_dev, "RC%d: entry\n", pcie_dev->rc_idx);
if (pcie_dev->use_pinctrl && pcie_dev->pins_default)
pinctrl_select_state(pcie_dev->pinctrl,
@@ -5277,15 +5302,34 @@ static int msm_pcie_pm_resume(struct pci_dev *dev,
dev->bus->number, dev->bus->primary);
if (!(options & MSM_PCIE_CONFIG_NO_CFG_RESTORE)) {
+ PCIE_DBG(pcie_dev,
+ "RC%d: entry of PCI framework restore state\n",
+ pcie_dev->rc_idx);
+
pci_load_and_free_saved_state(dev,
&pcie_dev->saved_state);
pci_restore_state(dev);
+
+ PCIE_DBG(pcie_dev,
+ "RC%d: exit of PCI framework restore state\n",
+ pcie_dev->rc_idx);
}
}
- if (pcie_dev->bridge_found)
+ if (pcie_dev->bridge_found) {
+ PCIE_DBG(pcie_dev,
+ "RC%d: entry of PCIe recover config\n",
+ pcie_dev->rc_idx);
+
msm_pcie_recover_config(dev);
+ PCIE_DBG(pcie_dev,
+ "RC%d: exit of PCIe recover config\n",
+ pcie_dev->rc_idx);
+ }
+
+ PCIE_DBG(pcie_dev, "RC%d: exit\n", pcie_dev->rc_idx);
+
return ret;
}