aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-msm/pcie.c238
-rw-r--r--arch/arm/mach-msm/pcie_irq.c36
2 files changed, 171 insertions, 103 deletions
diff --git a/arch/arm/mach-msm/pcie.c b/arch/arm/mach-msm/pcie.c
index 586e3b16707..b43c6701109 100644
--- a/arch/arm/mach-msm/pcie.c
+++ b/arch/arm/mach-msm/pcie.c
@@ -264,7 +264,7 @@ static inline int msm_pcie_oper_conf(struct pci_bus *bus, u32 devfn, int oper,
rc_idx = dev->rc_idx;
break;
default:
- pr_err("PCIe: unsupported bus number.\n");
+ pr_err("PCIe: unsupported bus number:%d.\n", bus->number);
*val = ~0;
rv = PCIBIOS_DEVICE_NOT_FOUND;
goto out;
@@ -299,7 +299,8 @@ static inline int msm_pcie_oper_conf(struct pci_bus *bus, u32 devfn, int oper,
/* check if the link is up for endpoint */
if (!rc && !msm_pcie_is_link_up(dev)) {
- pr_err("RC%d %s fail, link down - bus %d devfn %d\n",
+ pr_err(
+ "PCIe: RC%d %s fail, link down - bus %d devfn %d\n",
rc_idx, (oper == RD) ? "rd" : "wr",
bus->number, devfn);
*val = ~0;
@@ -365,7 +366,7 @@ static int msm_pcie_gpio_init(struct msm_pcie_dev_t *dev)
int rc, i;
struct msm_pcie_gpio_info_t *info;
- PCIE_DBG("\n");
+ PCIE_DBG("RC%d\n", dev->rc_idx);
for (i = 0; i < dev->gpio_n; i++) {
info = &dev->gpio[i];
@@ -375,7 +376,8 @@ static int msm_pcie_gpio_init(struct msm_pcie_dev_t *dev)
rc = gpio_request(info->num, info->name);
if (rc) {
- pr_err("can't get gpio %s; %d\n", info->name, rc);
+ pr_err("PCIe: RC%d can't get gpio %s; %d\n",
+ dev->rc_idx, info->name, rc);
break;
}
@@ -384,8 +386,9 @@ static int msm_pcie_gpio_init(struct msm_pcie_dev_t *dev)
else
rc = gpio_direction_input(info->num);
if (rc) {
- pr_err("can't set gpio direction %s; %d\n",
- info->name, rc);
+ pr_err(
+ "PCIe: RC%d can't set direction for GPIO %s:%d\n",
+ dev->rc_idx, info->name, rc);
gpio_free(info->num);
break;
}
@@ -402,6 +405,8 @@ static void msm_pcie_gpio_deinit(struct msm_pcie_dev_t *dev)
{
int i;
+ PCIE_DBG("RC%d\n", dev->rc_idx);
+
for (i = 0; i < dev->gpio_n; i++)
gpio_free(dev->gpio[i].num);
}
@@ -412,7 +417,7 @@ int msm_pcie_vreg_init(struct msm_pcie_dev_t *dev)
struct regulator *vreg;
struct msm_pcie_vreg_info_t *info;
- PCIE_DBG("\n");
+ PCIE_DBG("RC%d\n", dev->rc_idx);
for (i = 0; i < MSM_PCIE_MAX_VREG; i++) {
info = &dev->vreg[i];
@@ -421,13 +426,15 @@ int msm_pcie_vreg_init(struct msm_pcie_dev_t *dev)
if (!vreg)
continue;
- PCIE_DBG("Vreg %s is being enabled\n", info->name);
+ PCIE_DBG("RC%d Vreg %s is being enabled\n",
+ dev->rc_idx, info->name);
if (info->max_v) {
rc = regulator_set_voltage(vreg,
info->min_v, info->max_v);
if (rc) {
- pr_err("can't set voltage %s; %d\n",
- info->name, rc);
+ pr_err(
+ "PCIe: RC%d can't set voltage for %s: %d\n",
+ dev->rc_idx, info->name, rc);
break;
}
}
@@ -435,15 +442,16 @@ int msm_pcie_vreg_init(struct msm_pcie_dev_t *dev)
if (info->opt_mode) {
rc = regulator_set_optimum_mode(vreg, info->opt_mode);
if (rc < 0) {
- pr_err("can't set mode %s; %d\n",
- info->name, rc);
+ pr_err("PCIe: RC%d can't set mode for %s: %d\n",
+ dev->rc_idx, info->name, rc);
break;
}
}
rc = regulator_enable(vreg);
if (rc) {
- pr_err("can't enable %s, %d\n", info->name, rc);
+ pr_err("PCIe: RC%d can't enable regulator %s: %d\n",
+ dev->rc_idx, info->name, rc);
break;
}
}
@@ -462,6 +470,8 @@ static void msm_pcie_vreg_deinit(struct msm_pcie_dev_t *dev)
{
int i;
+ PCIE_DBG("RC%d\n", dev->rc_idx);
+
for (i = MSM_PCIE_MAX_VREG - 1; i >= 0; i--) {
if (dev->vreg[i].hdl) {
PCIE_DBG("Vreg %s is being disabled\n",
@@ -476,11 +486,13 @@ 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("RC%d\n", dev->rc_idx);
+
rc = regulator_enable(dev->gdsc);
if (rc) {
- pr_err("PCIe: fail to enable GDSC for RC %s\n",
- dev->pdev->name);
+ pr_err("PCIe: fail to enable GDSC for RC%d (%s)\n",
+ dev->rc_idx, dev->pdev->name);
return rc;
}
@@ -488,9 +500,13 @@ static int msm_pcie_clk_init(struct msm_pcie_dev_t *dev)
rc = msm_bus_scale_client_update_request(dev->bus_client, 1);
if (rc) {
pr_err(
- "PCIe:%s:fail to set bus bandwidth for RC %d:%d\n",
+ "PCIe:%s:fail to set bus bandwidth for RC%d:%d.\n",
__func__, dev->rc_idx, rc);
return rc;
+ } else {
+ PCIE_DBG(
+ "PCIe:%s: set bus bandwidth for RC%d.\n",
+ __func__, dev->rc_idx);
}
}
@@ -503,22 +519,30 @@ static int msm_pcie_clk_init(struct msm_pcie_dev_t *dev)
if (info->freq) {
rc = clk_set_rate(info->hdl, info->freq);
if (rc) {
- pr_err("PCIe: can't set rate for clk %s: %d\n",
- info->name, rc);
+ pr_err(
+ "PCIe: RC%d can't set rate for clk %s: %d.\n",
+ dev->rc_idx, info->name, rc);
break;
+ } else {
+ PCIE_DBG(
+ "PCIe: RC%d set rate for clk %s.\n",
+ dev->rc_idx, info->name);
}
}
rc = clk_prepare_enable(info->hdl);
if (rc)
- pr_err("failed to enable clk %s\n", info->name);
+ pr_err("PCIe: RC%d failed to enable clk %s\n",
+ dev->rc_idx, info->name);
else
- PCIE_DBG("enable clk %s\n", info->name);
+ PCIE_DBG("enable clk %s for RC%d.\n",
+ info->name, dev->rc_idx);
}
if (rc) {
- PCIE_DBG("disable clocks for error handling\n");
+ PCIE_DBG("RC%d disable clocks for error handling.\n",
+ dev->rc_idx);
while (i--) {
struct clk *hdl = dev->clk[i].hdl;
if (hdl)
@@ -536,6 +560,8 @@ static void msm_pcie_clk_deinit(struct msm_pcie_dev_t *dev)
int i;
int rc;
+ PCIE_DBG("RC%d\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);
@@ -544,8 +570,12 @@ static void msm_pcie_clk_deinit(struct msm_pcie_dev_t *dev)
rc = msm_bus_scale_client_update_request(dev->bus_client, 0);
if (rc)
pr_err(
- "PCIe:%s:fail to set bus bandwidth for RC %d:%d\n",
+ "PCIe:%s:fail to relinquish bus bandwidth for RC%d:%d.\n",
__func__, dev->rc_idx, rc);
+ else
+ PCIE_DBG(
+ "PCIe:%s:relinquish bus bandwidth for RC%d.\n",
+ __func__, dev->rc_idx);
}
regulator_disable(dev->gdsc);
@@ -556,6 +586,8 @@ 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("RC%d\n", dev->rc_idx);
+
for (i = 0; i < MSM_PCIE_MAX_PIPE_CLK; i++) {
info = &dev->pipeclk[i];
@@ -567,22 +599,30 @@ static int msm_pcie_pipe_clk_init(struct msm_pcie_dev_t *dev)
if (info->freq) {
rc = clk_set_rate(info->hdl, info->freq);
if (rc) {
- pr_err("PCIe: can't set rate for clk %s: %d\n",
- info->name, rc);
+ pr_err(
+ "PCIe: RC%d can't set rate for clk %s: %d.\n",
+ dev->rc_idx, info->name, rc);
break;
+ } else {
+ PCIE_DBG(
+ "PCIe: RC%d set rate for clk %s: %d.\n",
+ dev->rc_idx, info->name, rc);
}
}
rc = clk_prepare_enable(info->hdl);
if (rc)
- pr_err("failed to enable clk %s\n", info->name);
+ pr_err("PCIe: RC%d failed to enable clk %s.\n",
+ dev->rc_idx, info->name);
else
- PCIE_DBG("enabled pipe clk %s\n", info->name);
+ PCIE_DBG("RC%d enabled pipe clk %s.\n",
+ dev->rc_idx, info->name);
}
if (rc) {
- PCIE_DBG("disable pipe clocks for error handling\n");
+ PCIE_DBG("RC%d disable pipe clocks for error handling.\n",
+ dev->rc_idx);
while (i--)
if (dev->pipeclk[i].hdl)
clk_disable_unprepare(dev->pipeclk[i].hdl);
@@ -595,6 +635,8 @@ static void msm_pcie_pipe_clk_deinit(struct msm_pcie_dev_t *dev)
{
int i;
+ PCIE_DBG("RC%d\n", dev->rc_idx);
+
for (i = 0; i < MSM_PCIE_MAX_PIPE_CLK; i++)
if (dev->pipeclk[i].hdl)
clk_disable_unprepare(
@@ -607,7 +649,7 @@ static void msm_pcie_config_controller(struct msm_pcie_dev_t *dev)
struct resource *axi_conf = dev->res[MSM_PCIE_RES_CONF].resource;
u32 dev_conf, upper, lower, limit;
- PCIE_DBG("\n");
+ PCIE_DBG("RC%d\n", dev->rc_idx);
if (IS_ENABLED(CONFIG_ARM_LPAE)) {
lower = PCIE_LOWER_ADDR(axi_conf->start);
@@ -728,8 +770,8 @@ static int msm_pcie_get_resources(struct msm_pcie_dev_t *dev,
clkfreq = kzalloc(cnt * sizeof(*clkfreq),
GFP_KERNEL);
if (!clkfreq) {
- pr_err("%s: memory alloc failed\n",
- __func__);
+ pr_err("%s: memory alloc failed for RC%d\n",
+ __func__, dev->rc_idx);
return -ENOMEM;
}
ret = of_property_read_u32_array(
@@ -737,13 +779,13 @@ static int msm_pcie_get_resources(struct msm_pcie_dev_t *dev,
"max-clock-frequency-hz", clkfreq, cnt);
if (ret) {
pr_err(
- "%s: invalid max-clock-frequency-hz property, %d\n",
- __func__, ret);
+ "%s: invalid max-clock-frequency-hz property for RC%d:%d\n",
+ __func__, dev->rc_idx, ret);
goto out;
}
}
- PCIE_DBG("\n");
+ PCIE_DBG("RC%d\n", dev->rc_idx);
for (i = 0; i < MSM_PCIE_MAX_VREG; i++) {
vreg_info = &dev->vreg[i];
@@ -790,8 +832,8 @@ static int msm_pcie_get_resources(struct msm_pcie_dev_t *dev,
dev->gdsc = devm_regulator_get(&pdev->dev, "gdsc-vdd");
if (IS_ERR(dev->gdsc)) {
- pr_err("PCIe: Failed to get %s GDSC:%ld\n",
- dev->pdev->name, PTR_ERR(dev->gdsc));
+ pr_err("PCIe: RC%d Failed to get %s GDSC:%ld\n",
+ dev->rc_idx, dev->pdev->name, PTR_ERR(dev->gdsc));
if (PTR_ERR(dev->gdsc) == -EPROBE_DEFER)
PCIE_DBG("PCIe: EPROBE_DEFER for %s GDSC\n",
dev->pdev->name);
@@ -867,7 +909,7 @@ static int msm_pcie_get_resources(struct msm_pcie_dev_t *dev,
dev->bus_scale_table = msm_bus_cl_get_pdata(pdev);
if (!dev->bus_scale_table) {
- PCIE_DBG("PCIe: No bus scale table for RC %d (%s)\n",
+ PCIE_DBG("PCIe: No bus scale table for RC%d (%s)\n",
dev->rc_idx, dev->pdev->name);
dev->bus_client = 0;
} else {
@@ -875,7 +917,7 @@ static int msm_pcie_get_resources(struct msm_pcie_dev_t *dev,
msm_bus_scale_register_client(dev->bus_scale_table);
if (!dev->bus_client) {
pr_err(
- "PCIe: Failed to register bus client for RC %d (%s)\n",
+ "PCIe: Failed to register bus client for RC%d (%s)\n",
dev->rc_idx, dev->pdev->name);
msm_bus_cl_clear_pdata(dev->bus_scale_table);
ret = -ENODEV;
@@ -890,7 +932,8 @@ static int msm_pcie_get_resources(struct msm_pcie_dev_t *dev,
res_info->name);
if (!res) {
- pr_err("pcie:can't get %s resource.\n", res_info->name);
+ pr_err("PCIe: RC%d can't get %s resource.\n",
+ dev->rc_idx, res_info->name);
ret = -ENOMEM;
goto out;
} else
@@ -900,7 +943,8 @@ static int msm_pcie_get_resources(struct msm_pcie_dev_t *dev,
res_info->base = devm_ioremap(&pdev->dev,
res->start, resource_size(res));
if (!res_info->base) {
- pr_err("pcie: can't remap %s.\n", res_info->name);
+ pr_err("PCIe: RC%d can't remap %s.\n",
+ dev->rc_idx, res_info->name);
ret = -ENOMEM;
goto out;
}
@@ -919,8 +963,8 @@ static int msm_pcie_get_resources(struct msm_pcie_dev_t *dev,
iounmap(dev->res[j].base);
dev->res[j].base = NULL;
}
- pr_err("pcie: can't find IRQ # for %s.\n",
- irq_info->name);
+ pr_err("PCIe: RC%d can't find IRQ # for %s.\n",
+ dev->rc_idx, irq_info->name);
ret = -ENODEV;
goto out;
} else {
@@ -967,13 +1011,13 @@ static int msm_pcie_enable(struct msm_pcie_dev_t *dev, u32 options)
long int retries = 0;
int link_check_count = 0;
- PCIE_DBG("\n");
+ PCIE_DBG("RC%d\n", dev->rc_idx);
mutex_lock(&setup_lock);
/* assert PCIe reset link to keep EP in reset */
- pr_info("PCIe: Assert the reset of endpoint\n");
+ pr_info("PCIe: Assert the reset of endpoint of RC%d.\n", dev->rc_idx);
gpio_set_value(dev->gpio[MSM_PCIE_GPIO_PERST].num,
dev->gpio[MSM_PCIE_GPIO_PERST].on);
usleep_range(PERST_PROPAGATION_DELAY_US_MIN,
@@ -1014,7 +1058,7 @@ static int msm_pcie_enable(struct msm_pcie_dev_t *dev, u32 options)
goto link_fail;
}
- PCIE_DBG("waiting for phy ready...\n");
+ PCIE_DBG("RC%d: waiting for phy ready...\n", dev->rc_idx);
do {
if (pcie_phy_is_ready(dev))
@@ -1024,12 +1068,12 @@ static int msm_pcie_enable(struct msm_pcie_dev_t *dev, u32 options)
REFCLK_STABILIZATION_DELAY_US_MAX);
} while (retries < PHY_READY_TIMEOUT_COUNT);
- PCIE_DBG("number of PHY retries: %ld\n", retries);
+ PCIE_DBG("RC%d: number of PHY retries:%ld.\n", dev->rc_idx, retries);
if (pcie_phy_is_ready(dev))
- pr_info("PCIe RC %d PHY is ready!\n", dev->rc_idx);
+ pr_info("PCIe RC%d PHY is ready!\n", dev->rc_idx);
else {
- pr_err("PCIe PHY RC %d failed to come up!\n", dev->rc_idx);
+ pr_err("PCIe PHY RC%d failed to come up!\n", dev->rc_idx);
ret = -ENODEV;
goto link_fail;
}
@@ -1039,7 +1083,7 @@ static int msm_pcie_enable(struct msm_pcie_dev_t *dev, u32 options)
/* de-assert PCIe reset link to bring EP out of reset */
- pr_info("PCIe: Release the reset of endpoint\n");
+ pr_info("PCIe: Release the reset of endpoint of RC%d.\n", dev->rc_idx);
gpio_set_value(dev->gpio[MSM_PCIE_GPIO_PERST].num,
1 - dev->gpio[MSM_PCIE_GPIO_PERST].on);
usleep_range(PERST_PROPAGATION_DELAY_US_MIN,
@@ -1065,7 +1109,8 @@ static int msm_pcie_enable(struct msm_pcie_dev_t *dev, u32 options)
retries = 0;
while (!(val & XMLH_LINK_UP) && (retries < MAX_LINK_RETRIES)) {
- PCIE_DBG("LTSSM_STATE:0x%x\n", (val >> 0xC) & 0x1f);
+ pr_err("RC%d:No. %ld:LTSSM_STATE:0x%x\n", dev->rc_idx,
+ retries + 1, (val >> 0xC) & 0x1f);
gpio_set_value(dev->gpio[MSM_PCIE_GPIO_PERST].num,
dev->gpio[MSM_PCIE_GPIO_PERST].on);
usleep_range(PERST_PROPAGATION_DELAY_US_MIN,
@@ -1081,12 +1126,13 @@ static int msm_pcie_enable(struct msm_pcie_dev_t *dev, u32 options)
PCIE_DBG("number of link training retries: %ld\n", retries);
if (val & XMLH_LINK_UP) {
- pr_info("PCIe RC %d link initialized\n", dev->rc_idx);
+ pr_info("PCIe RC%d link initialized\n", dev->rc_idx);
} else {
- pr_info("PCIe: Assert the reset of endpoint\n");
+ pr_info("PCIe: Assert the reset of endpoint of RC%d.\n",
+ dev->rc_idx);
gpio_set_value(dev->gpio[MSM_PCIE_GPIO_PERST].num,
dev->gpio[MSM_PCIE_GPIO_PERST].on);
- pr_err("PCIe RC %d link initialization failed\n", dev->rc_idx);
+ pr_err("PCIe RC%d link initialization failed\n", dev->rc_idx);
ret = -1;
goto link_fail;
}
@@ -1116,9 +1162,9 @@ out:
void msm_pcie_disable(struct msm_pcie_dev_t *dev, u32 options)
{
- PCIE_DBG("RC %d\n", dev->rc_idx);
+ PCIE_DBG("RC%d\n", dev->rc_idx);
- pr_info("PCIe: Assert the reset of endpoint\n");
+ pr_info("PCIe: Assert the reset of endpoint of RC%d.\n", dev->rc_idx);
gpio_set_value(dev->gpio[MSM_PCIE_GPIO_PERST].num,
dev->gpio[MSM_PCIE_GPIO_PERST].on);
@@ -1189,7 +1235,8 @@ static int msm_pcie_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
ret = pcie_dev->irq[MSM_PCIE_INT_D].num;
break;
default:
- pr_err("PCIe: unsupported pin number.\n");
+ pr_err("PCIe: RC%d: unsupported pin number.\n",
+ pcie_dev->rc_idx);
}
return ret;
@@ -1220,7 +1267,7 @@ int msm_pcie_enumerate(u32 rc_idx)
int ret = 0;
struct msm_pcie_dev_t *dev = &msm_pcie_dev[rc_idx];
- PCIE_DBG("Enumerate RC %d\n", rc_idx);
+ PCIE_DBG("Enumerate RC%d\n", rc_idx);
if (!dev->enumerated) {
ret = msm_pcie_enable(dev, PM_ALL);
@@ -1250,23 +1297,23 @@ int msm_pcie_enumerate(u32 rc_idx)
msm_pcie_dev[rc_idx].dev = pcidev;
found = true;
PCIE_DBG(
- "PCI device is found for RC %d\n",
+ "PCI device is found for RC%d\n",
rc_idx);
}
} while (!found && pcidev);
if (!pcidev) {
pr_err(
- "PCIe: %s: Did not find PCI device for RC %d.\n",
+ "PCIe: %s: Did not find PCI device for RC%d.\n",
__func__, dev->rc_idx);
return -ENODEV;
}
} else {
- pr_err("PCIe: %s: failed to enable RC %d.\n",
+ pr_err("PCIe: %s: failed to enable RC%d.\n",
__func__, dev->rc_idx);
}
} else {
- pr_err("PCIe: %s: RC %d has already been enumerated.\n",
+ pr_err("PCIe: %s: RC%d has already been enumerated.\n",
__func__, dev->rc_idx);
}
@@ -1276,7 +1323,7 @@ int msm_pcie_enumerate(u32 rc_idx)
static int msm_pcie_probe(struct platform_device *pdev)
{
int ret = 0;
- int rc_idx;
+ int rc_idx = -1;
PCIE_DBG("\n");
@@ -1368,7 +1415,8 @@ static int msm_pcie_probe(struct platform_device *pdev)
&msm_pcie_dev[rc_idx].msi_gicm_base);
if (ret) {
- pr_err("msi-gicm-base does not exist.\n");
+ pr_err("PCIe: RC%d: msi-gicm-base does not exist.\n",
+ rc_idx);
goto decrease_rc_num;
} else {
PCIE_DBG("msi-gicm-base: 0x%x.\n",
@@ -1422,10 +1470,10 @@ static int msm_pcie_probe(struct platform_device *pdev)
if (ret)
pr_err(
- "PCIe:failed to enable RC %d in bootup; it will be enumerated upon WAKE signal.\n",
+ "PCIe: RC%d is not enabled during bootup; it will be enumerated upon WAKE signal.\n",
rc_idx);
else
- PCIE_DBG("RC %d is enabled in bootup\n", rc_idx);
+ PCIE_DBG("RC%d is enabled in bootup\n", rc_idx);
PCIE_DBG("PCIE probed %s\n", dev_name(&(pdev->dev)));
mutex_unlock(&pcie_drv.drv_lock);
@@ -1434,7 +1482,7 @@ static int msm_pcie_probe(struct platform_device *pdev)
decrease_rc_num:
pcie_drv.rc_num--;
out:
- pr_err("Driver Failed ret=%d\n", ret);
+ pr_err("PCIe: Driver probe failed for RC%d:%d\n", rc_idx, ret);
mutex_unlock(&pcie_drv.drv_lock);
return ret;
@@ -1445,6 +1493,8 @@ static int __exit msm_pcie_remove(struct platform_device *pdev)
int ret = 0;
int rc_idx;
+ PCIE_DBG("PCIe:%s.\n", __func__);
+
mutex_lock(&pcie_drv.drv_lock);
ret = of_property_read_u32((&pdev->dev)->of_node,
@@ -1536,15 +1586,16 @@ static int msm_pcie_pm_suspend(struct pci_dev *dev,
int ret_l23;
struct msm_pcie_dev_t *pcie_dev = PCIE_BUS_PRIV_DATA(dev);
- PCIE_DBG("RC %d\n", pcie_dev->rc_idx);
+ PCIE_DBG("RC%d\n", pcie_dev->rc_idx);
if (dev) {
+ PCIE_DBG("Save config space of RC%d.\n", pcie_dev->rc_idx);
ret = pci_save_state(dev);
pcie_dev->saved_state = pci_store_saved_state(dev);
}
if (ret) {
- pr_err("PCIe: fail to save state of RC 0x%p:%d.\n",
- dev, ret);
+ pr_err("PCIe: fail to save state of RC%d:%d.\n",
+ pcie_dev->rc_idx, ret);
return ret;
}
@@ -1557,16 +1608,17 @@ static int msm_pcie_pm_suspend(struct pci_dev *dev,
msm_pcie_write_mask(pcie_dev->elbi + PCIE20_ELBI_SYS_CTRL, 0,
BIT(4));
- PCIE_DBG("PME_TURNOFF_MSG is sent out\n");
+ PCIE_DBG("RC%d: PME_TURNOFF_MSG is sent out\n", pcie_dev->rc_idx);
ret_l23 = readl_poll_timeout((pcie_dev->parf
+ PCIE20_PARF_PM_STTS), val, (val & BIT(6)), 10000, 100000);
/* check L23_Ready */
if (!ret_l23)
- PCIE_DBG("PM_Enter_L23 is received\n");
+ PCIE_DBG("RC%d: PM_Enter_L23 is received\n", pcie_dev->rc_idx);
else
- PCIE_DBG("PM_Enter_L23 is NOT received\n");
+ PCIE_DBG("RC%d: PM_Enter_L23 is NOT received\n",
+ pcie_dev->rc_idx);
msm_pcie_disable(pcie_dev, PM_PIPE_CLK | PM_CLK | PM_VREG);
@@ -1578,14 +1630,15 @@ static void msm_pcie_fixup_suspend(struct pci_dev *dev)
int ret;
struct msm_pcie_dev_t *pcie_dev = PCIE_BUS_PRIV_DATA(dev);
- PCIE_DBG("RC %d\n", pcie_dev->rc_idx);
+ PCIE_DBG("RC%d\n", pcie_dev->rc_idx);
if (pcie_dev->link_status != MSM_PCIE_LINK_ENABLED)
return;
ret = msm_pcie_pm_suspend(dev, NULL, NULL, 0);
if (ret)
- pr_err("PCIe: got failure in suspend:%d.\n", ret);
+ pr_err("PCIe: RC%d got failure in suspend:%d.\n",
+ pcie_dev->rc_idx, ret);
}
DECLARE_PCI_FIXUP_SUSPEND(PCIE_VENDOR_ID_RCP, PCIE_DEVICE_ID_RCP,
msm_pcie_fixup_suspend);
@@ -1597,7 +1650,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("RC %d\n", pcie_dev->rc_idx);
+ PCIE_DBG("RC%d\n", pcie_dev->rc_idx);
spin_lock_irqsave(&pcie_dev->cfg_lock,
pcie_dev->irqsave_flags);
@@ -1607,7 +1660,8 @@ static int msm_pcie_pm_resume(struct pci_dev *dev,
ret = msm_pcie_enable(pcie_dev, PM_PIPE_CLK | PM_CLK | PM_VREG);
if (ret) {
- pr_err("PCIe:fail to enable PCIe link in resume\n");
+ pr_err("PCIe: RC%d fail to enable PCIe link in resume.\n",
+ pcie_dev->rc_idx);
return ret;
} else {
PCIE_DBG("dev->bus->number = %d dev->bus->primary = %d\n",
@@ -1626,7 +1680,7 @@ void msm_pcie_fixup_resume(struct pci_dev *dev)
int ret;
struct msm_pcie_dev_t *pcie_dev = PCIE_BUS_PRIV_DATA(dev);
- PCIE_DBG("RC %d\n", pcie_dev->rc_idx);
+ PCIE_DBG("RC%d\n", pcie_dev->rc_idx);
if ((pcie_dev->link_status != MSM_PCIE_LINK_DISABLED) ||
pcie_dev->user_suspend)
@@ -1634,7 +1688,8 @@ void msm_pcie_fixup_resume(struct pci_dev *dev)
ret = msm_pcie_pm_resume(dev, NULL, NULL, 0);
if (ret)
- pr_err("PCIe: got failure in fixup resume:%d.\n", ret);
+ pr_err("PCIe: RC%d got failure in fixup resume:%d.\n",
+ pcie_dev->rc_idx, ret);
}
DECLARE_PCI_FIXUP_RESUME(PCIE_VENDOR_ID_RCP, PCIE_DEVICE_ID_RCP,
msm_pcie_fixup_resume);
@@ -1644,7 +1699,7 @@ void msm_pcie_fixup_resume_early(struct pci_dev *dev)
int ret;
struct msm_pcie_dev_t *pcie_dev = PCIE_BUS_PRIV_DATA(dev);
- PCIE_DBG("RC %d\n", pcie_dev->rc_idx);
+ PCIE_DBG("RC%d\n", pcie_dev->rc_idx);
if ((pcie_dev->link_status != MSM_PCIE_LINK_DISABLED) ||
pcie_dev->user_suspend)
@@ -1652,7 +1707,8 @@ void msm_pcie_fixup_resume_early(struct pci_dev *dev)
ret = msm_pcie_pm_resume(dev, NULL, NULL, 0);
if (ret)
- pr_err("PCIe: got failure in resume:%d.\n", ret);
+ pr_err("PCIe: RC%d got failure in resume:%d.\n",
+ pcie_dev->rc_idx, ret);
}
DECLARE_PCI_FIXUP_RESUME_EARLY(PCIE_VENDOR_ID_RCP, PCIE_DEVICE_ID_RCP,
msm_pcie_fixup_resume_early);
@@ -1660,7 +1716,7 @@ DECLARE_PCI_FIXUP_RESUME_EARLY(PCIE_VENDOR_ID_RCP, PCIE_DEVICE_ID_RCP,
static void msm_pcie_fixup_final(struct pci_dev *dev)
{
struct msm_pcie_dev_t *pcie_dev = PCIE_BUS_PRIV_DATA(dev);
- PCIE_DBG("RC %d\n", pcie_dev->rc_idx);
+ PCIE_DBG("RC%d\n", pcie_dev->rc_idx);
pcie_drv.current_rc++;
}
DECLARE_PCI_FIXUP_FINAL(PCI_ANY_ID, PCI_ANY_ID, msm_pcie_fixup_final);
@@ -1682,7 +1738,7 @@ int msm_pcie_pm_control(enum msm_pcie_pm_opt pm_opt, u32 busnr, void *user,
if (pcie_dev) {
rc_idx = pcie_dev->rc_idx;
- PCIE_DBG("RC %d\n", pcie_dev->rc_idx);
+ PCIE_DBG("RC%d\n", pcie_dev->rc_idx);
} else {
pr_err(
"PCIe: did not find RC for pci endpoint device 0x%x.\n",
@@ -1702,35 +1758,41 @@ int msm_pcie_pm_control(enum msm_pcie_pm_opt pm_opt, u32 busnr, void *user,
switch (pm_opt) {
case MSM_PCIE_SUSPEND:
+ PCIE_DBG("User of RC%d requests to suspend the link\n", rc_idx);
if (msm_pcie_dev[rc_idx].link_status != MSM_PCIE_LINK_ENABLED) {
pr_err(
- "PCIe: requested to suspend when link is not enabled:%d.\n",
- msm_pcie_dev[rc_idx].link_status);
+ "PCIe: RC%d: requested to suspend when link is not enabled:%d.\n",
+ rc_idx, msm_pcie_dev[rc_idx].link_status);
break;
}
msm_pcie_dev[rc_idx].user_suspend = true;
ret = msm_pcie_pm_suspend(dev, user, data, options);
if (ret) {
- pr_err("PCIe: user failed to suspend the link.\n");
+ pr_err(
+ "PCIe: RC%d: user failed to suspend the link.\n",
+ rc_idx);
msm_pcie_dev[rc_idx].user_suspend = false;
}
break;
case MSM_PCIE_RESUME:
+ PCIE_DBG("User of RC%d requests to resume the link\n", rc_idx);
if (msm_pcie_dev[rc_idx].link_status !=
MSM_PCIE_LINK_DISABLED) {
pr_err(
- "PCIe: requested to resume when link is not disabled:%d.\n",
- msm_pcie_dev[rc_idx].link_status);
+ "PCIe: RC%d: requested to resume when link is not disabled:%d.\n",
+ rc_idx, msm_pcie_dev[rc_idx].link_status);
break;
}
ret = msm_pcie_pm_resume(dev, user, data, options);
if (ret)
- pr_err("PCIe: user failed to resume the link.\n");
+ pr_err("PCIe: RC%d: user failed to resume the link.\n",
+ rc_idx);
else
msm_pcie_dev[rc_idx].user_suspend = false;
break;
default:
- pr_err("PCIe: unsupported pm operation:%d.\n", pm_opt);
+ pr_err("PCIe: RC%d: unsupported pm operation:%d.\n",
+ rc_idx, pm_opt);
ret = -ENODEV;
goto out;
}
diff --git a/arch/arm/mach-msm/pcie_irq.c b/arch/arm/mach-msm/pcie_irq.c
index 48a07054cc8..a81b7675d2d 100644
--- a/arch/arm/mach-msm/pcie_irq.c
+++ b/arch/arm/mach-msm/pcie_irq.c
@@ -111,7 +111,7 @@ void msm_pcie_config_msi_controller(struct msm_pcie_dev_t *dev)
{
int i;
- PCIE_DBG("\n");
+ PCIE_DBG("RC%d\n", dev->rc_idx);
/* program MSI controller and enable all interrupts */
writel_relaxed(MSM_PCIE_MSI_PHY, dev->dm_core + PCIE20_MSI_CTRL_ADDR);
@@ -143,7 +143,7 @@ void msm_pcie_destroy_irq(unsigned int irq, struct msm_pcie_dev_t *pcie_dev)
pos = irq - irq_find_mapping(dev->irq_domain, 0);
}
- PCIE_DBG("\n");
+ PCIE_DBG("RC%d\n", dev->rc_idx);
if (!dev->msi_gicm_addr)
dynamic_irq_cleanup(irq);
@@ -199,7 +199,7 @@ static int msm_pcie_create_irq(struct msm_pcie_dev_t *dev)
{
int irq, pos;
- PCIE_DBG("\n");
+ PCIE_DBG("RC%d\n", dev->rc_idx);
again:
pos = find_first_zero_bit(dev->msi_irq_in_use, PCIE_MSI_NR_IRQS);
@@ -228,7 +228,7 @@ static int arch_setup_msi_irq_default(struct pci_dev *pdev,
struct msi_msg msg;
struct msm_pcie_dev_t *dev = PCIE_BUS_PRIV_DATA(pdev);
- PCIE_DBG("\n");
+ PCIE_DBG("RC%d\n", dev->rc_idx);
irq = msm_pcie_create_irq(dev);
@@ -254,7 +254,7 @@ static int msm_pcie_create_irq_qgic(struct msm_pcie_dev_t *dev)
{
int irq, pos;
- PCIE_DBG("\n");
+ PCIE_DBG("RC%d\n", dev->rc_idx);
again:
pos = find_first_zero_bit(dev->msi_irq_in_use, PCIE_MSI_NR_IRQS);
@@ -271,7 +271,8 @@ again:
irq = dev->msi_gicm_base + pos;
if (!irq) {
- pr_err("PCIe: failed to create QGIC MSI IRQ.\n");
+ pr_err("PCIe: RC%d failed to create QGIC MSI IRQ.\n",
+ dev->rc_idx);
return -EINVAL;
}
@@ -285,7 +286,7 @@ static int arch_setup_msi_irq_qgic(struct pci_dev *pdev,
struct msi_msg msg;
struct msm_pcie_dev_t *dev = PCIE_BUS_PRIV_DATA(pdev);
- PCIE_DBG("\n");
+ PCIE_DBG("RC%d\n", dev->rc_idx);
for (index = 0; index < nvec; index++) {
irq = msm_pcie_create_irq_qgic(dev);
@@ -314,7 +315,7 @@ int arch_setup_msi_irq(struct pci_dev *pdev, struct msi_desc *desc)
{
struct msm_pcie_dev_t *dev = PCIE_BUS_PRIV_DATA(pdev);
- PCIE_DBG("\n");
+ PCIE_DBG("RC%d\n", dev->rc_idx);
if (dev->msi_gicm_addr)
return arch_setup_msi_irq_qgic(pdev, desc, 1);
@@ -344,7 +345,7 @@ int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
int ret;
struct msm_pcie_dev_t *pcie_dev = PCIE_BUS_PRIV_DATA(dev);
- PCIE_DBG("\n");
+ PCIE_DBG("RC%d\n", pcie_dev->rc_idx);
if (type != PCI_CAP_ID_MSI || nvec > 32)
return -ENOSPC;
@@ -374,6 +375,7 @@ int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
static int msm_pcie_msi_map(struct irq_domain *domain, unsigned int irq,
irq_hw_number_t hwirq)
{
+ PCIE_DBG("\n");
irq_set_chip_and_handler (irq, &pcie_msi_chip, handle_simple_irq);
irq_set_chip_data(irq, domain->host_data);
set_irq_flags(irq, IRQF_VALID);
@@ -390,7 +392,7 @@ int32_t msm_pcie_irq_init(struct msm_pcie_dev_t *dev)
int msi_start = 0;
struct device *pdev = &dev->pdev->dev;
- PCIE_DBG("\n");
+ PCIE_DBG("RC%d\n", dev->rc_idx);
wakeup_source_init(&dev->ws, "pcie_wakeup_source");
@@ -399,7 +401,8 @@ int32_t msm_pcie_irq_init(struct msm_pcie_dev_t *dev)
dev->irq[MSM_PCIE_INT_MSI].num, handle_msi_irq,
IRQF_TRIGGER_RISING, dev->irq[MSM_PCIE_INT_MSI].name, dev);
if (rc) {
- pr_err("PCIe: Unable to request MSI interrupt\n");
+ pr_err("PCIe: RC%d: Unable to request MSI interrupt\n",
+ dev->rc_idx);
return rc;
}
@@ -408,7 +411,8 @@ int32_t msm_pcie_irq_init(struct msm_pcie_dev_t *dev)
dev->wake_n, handle_wake_irq, IRQF_TRIGGER_FALLING,
"msm_pcie_wake", dev);
if (rc) {
- pr_err("PCIe: Unable to request wake interrupt\n");
+ pr_err("PCIe: RC%d: Unable to request wake interrupt\n",
+ dev->rc_idx);
return rc;
}
@@ -416,7 +420,8 @@ int32_t msm_pcie_irq_init(struct msm_pcie_dev_t *dev)
rc = enable_irq_wake(dev->wake_n);
if (rc) {
- pr_err("PCIe: Unable to enable wake interrupt\n");
+ pr_err("PCIe: RC%d: Unable to enable wake interrupt\n",
+ dev->rc_idx);
return rc;
}
@@ -426,7 +431,8 @@ int32_t msm_pcie_irq_init(struct msm_pcie_dev_t *dev)
PCIE_MSI_NR_IRQS, &msm_pcie_msi_ops, dev);
if (!dev->irq_domain) {
- pr_err("PCIe: Unable to initialize irq domain\n");
+ pr_err("PCIe: RC%d: Unable to initialize irq domain\n",
+ dev->rc_idx);
disable_irq(dev->wake_n);
return PTR_ERR(dev->irq_domain);
}
@@ -439,7 +445,7 @@ int32_t msm_pcie_irq_init(struct msm_pcie_dev_t *dev)
void msm_pcie_irq_deinit(struct msm_pcie_dev_t *dev)
{
- PCIE_DBG("\n");
+ PCIE_DBG("RC%d\n", dev->rc_idx);
wakeup_source_trash(&dev->ws);
disable_irq(dev->wake_n);