summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorManikanta Maddireddy <mmaddireddy@nvidia.com>2019-04-22 03:44:51 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2019-04-23 04:42:02 -0400
commit2dec5a8536a82cda8ff2effc49a64842a1b5e048 (patch)
tree7c32fd5349fa58fa0c3f766f2a808d72ac27401f
parentee0df42e593f186d2485ebdbd1fedf57d62980fa (diff)
PCI: tegra: Set debounce only for PEX_L5_RST
First interrupt is not generated on PERST# gpio for C0 & C4 controllers if debounce is set. Only PCIe C5 controller in Jetson-Xavier is configured as endpoint, so set debounce only for PEX_L5_RST. bug 200510849 Change-Id: I727b254908d7ce9452892e6b82f229b4ec361053 Signed-off-by: Manikanta Maddireddy <mmaddireddy@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/2102419 Tested-by: Rock Yang <rocky@nvidia.com> Reviewed-by: Vidya Sagar <vidyas@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Ashutosh Jha <ajha@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
-rw-r--r--drivers/pci/ep/pcie-tegra-dw-ep.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/drivers/pci/ep/pcie-tegra-dw-ep.c b/drivers/pci/ep/pcie-tegra-dw-ep.c
index 517ad45c9..1a5fe7dc7 100644
--- a/drivers/pci/ep/pcie-tegra-dw-ep.c
+++ b/drivers/pci/ep/pcie-tegra-dw-ep.c
@@ -1712,16 +1712,18 @@ static int tegra_pcie_dw_ep_probe(struct platform_device *pdev)
1712 dev_err(pcie->dev, "pex_rst_gpio direction input failed\n"); 1712 dev_err(pcie->dev, "pex_rst_gpio direction input failed\n");
1713 goto fail_thread; 1713 goto fail_thread;
1714 } 1714 }
1715 gpiod = gpio_to_desc(pcie->pex_rst_gpio); 1715 if (pcie->cid == CTRL_5) {
1716 if (!gpiod) { 1716 gpiod = gpio_to_desc(pcie->pex_rst_gpio);
1717 dev_err(pcie->dev, "Unable to get gpio desc\n"); 1717 if (!gpiod) {
1718 ret = -EINVAL; 1718 dev_err(pcie->dev, "Unable to get gpio desc\n");
1719 goto fail_thread; 1719 ret = -EINVAL;
1720 } 1720 goto fail_thread;
1721 ret = gpiod_set_debounce(gpiod, PERST_DEBOUNCE_TIME); 1721 }
1722 if (ret < 0) { 1722 ret = gpiod_set_debounce(gpiod, PERST_DEBOUNCE_TIME);
1723 dev_err(pcie->dev, "Unable to set gpio debounce time\n"); 1723 if (ret < 0) {
1724 goto fail_thread; 1724 dev_err(pcie->dev, "Unable to set gpio debounce time\n");
1725 goto fail_thread;
1726 }
1725 } 1727 }
1726 irq = gpio_to_irq(pcie->pex_rst_gpio); 1728 irq = gpio_to_irq(pcie->pex_rst_gpio);
1727 if (irq < 0) { 1729 if (irq < 0) {