diff options
author | Manikanta Maddireddy <mmaddireddy@nvidia.com> | 2019-04-22 03:44:51 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2019-04-23 04:42:02 -0400 |
commit | 2dec5a8536a82cda8ff2effc49a64842a1b5e048 (patch) | |
tree | 7c32fd5349fa58fa0c3f766f2a808d72ac27401f | |
parent | ee0df42e593f186d2485ebdbd1fedf57d62980fa (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.c | 22 |
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) { |