diff --git a/core/pld/src/pld_common.c b/core/pld/src/pld_common.c index 53b223c0bc3e..4cc89d8e7a1a 100644 --- a/core/pld/src/pld_common.c +++ b/core/pld/src/pld_common.c @@ -1414,6 +1414,13 @@ void *pld_smmu_get_domain(struct device *dev) case PLD_BUS_TYPE_SNOC: ptr = pld_snoc_smmu_get_domain(dev); break; + case PLD_BUS_TYPE_PCIE: + ptr = pld_pcie_smmu_get_domain(dev); + break; + case PLD_BUS_TYPE_SDIO: + case PLD_BUS_TYPE_USB: + pr_err("Not supported on type %d\n", type); + break; default: pr_err("Invalid device type %d\n", type); break; diff --git a/core/pld/src/pld_pcie.h b/core/pld/src/pld_pcie.h index 008075d53851..2930881eb1b0 100644 --- a/core/pld/src/pld_pcie.h +++ b/core/pld/src/pld_pcie.h @@ -133,10 +133,17 @@ static inline int pld_pcie_wlan_pm_control(struct device *dev, bool vote) #endif #ifndef CONFIG_PLD_PCIE_CNSS +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 19, 0)) +static inline void *pld_pcie_smmu_get_domain(struct device *dev) +{ + return NULL; +} +#else static inline void *pld_pcie_smmu_get_mapping(struct device *dev) { return NULL; } +#endif static inline int pld_pcie_smmu_map(struct device *dev, @@ -350,10 +357,17 @@ static inline int pld_pcie_collect_rddm(struct device *dev) return cnss_force_collect_rddm(dev); } +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 19, 0)) +static inline void *pld_pcie_smmu_get_domain(struct device *dev) +{ + return cnss_smmu_get_domain(dev); +} +#else static inline void *pld_pcie_smmu_get_mapping(struct device *dev) { return cnss_smmu_get_mapping(dev); } +#endif static inline int pld_pcie_smmu_map(struct device *dev,