diff options
| author | Tony Truong <truong@codeaurora.org> | 2015-04-07 18:05:30 -0700 |
|---|---|---|
| committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-22 11:09:13 -0700 |
| commit | 92111027640185e4689e6349727fc51ca84dec10 (patch) | |
| tree | ce06e5835c2b7ab0cc39a0b44952665314e49018 | |
| parent | 55820fda330aeb6389f68893870d48ad883eae29 (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.c | 72 |
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; } |
