Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6b4f257a authored by Rama Krishna Phani A's avatar Rama Krishna Phani A
Browse files

msm: ep_pcie: Enable edma only if the controller is up



Initialize edma block only if the pcie enumeration is success.

Change-Id: I45e229ea70bb5a2ed56cf313474be08a98a9628f
Signed-off-by: default avatarRama Krishna Phani A <rphani@codeaurora.org>
parent c2795af5
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -397,6 +397,15 @@ struct ep_pcie_dev_t {
extern struct ep_pcie_dev_t ep_pcie_dev;
extern struct ep_pcie_hw hw_drv;

#if IS_ENABLED(CONFIG_QCOM_PCI_EDMA)
int qcom_edma_init(struct device *dev);
#else
static inline int qcom_edma_init(struct device *dev)
{
	return 0;
}
#endif

static inline void ep_pcie_write_mask(void __iomem *addr,
				u32 clear_mask, u32 set_mask)
{
@@ -435,6 +444,5 @@ extern bool ep_pcie_phy_is_ready(struct ep_pcie_dev_t *dev);
extern void ep_pcie_reg_dump(struct ep_pcie_dev_t *dev, u32 sel, bool linkdown);
extern void ep_pcie_debugfs_init(struct ep_pcie_dev_t *ep_dev);
extern void ep_pcie_debugfs_exit(void);
extern int qcom_edma_init(struct device *dev);

#endif
+6 −4
Original line number Diff line number Diff line
@@ -2834,12 +2834,14 @@ static int ep_pcie_probe(struct platform_device *pdev)
	}
skip_mapping:
	ret = ep_pcie_enumeration(&ep_pcie_dev);
	if (IS_ENABLED(CONFIG_QCOM_PCI_EDMA))
	if (ret && !ep_pcie_debug_keep_resource)
		goto irq_deinit;

	qcom_edma_init(&pdev->dev);

	if (!ret || ep_pcie_debug_keep_resource)
	return 0;

irq_deinit:
	ep_pcie_irq_deinit(&ep_pcie_dev);
irq_failure:
	ep_pcie_gpio_deinit(&ep_pcie_dev);