diff --git a/core/pld/src/pld_common.c b/core/pld/src/pld_common.c index 8e28e08fd4d5..87af543bdd12 100644 --- a/core/pld/src/pld_common.c +++ b/core/pld/src/pld_common.c @@ -1408,7 +1408,7 @@ void *pld_smmu_get_mapping(struct device *dev) ptr = pld_snoc_smmu_get_mapping(dev); break; case PLD_BUS_TYPE_PCIE: - pr_err("Not supported on type %d\n", type); + ptr = pld_pcie_smmu_get_mapping(dev); break; default: pr_err("Invalid device type %d\n", type); @@ -1439,8 +1439,7 @@ int pld_smmu_map(struct device *dev, phys_addr_t paddr, ret = pld_snoc_smmu_map(dev, paddr, iova_addr, size); break; case PLD_BUS_TYPE_PCIE: - pr_err("Not supported on type %d\n", type); - ret = -ENODEV; + ret = pld_pcie_smmu_map(dev, paddr, iova_addr, size); break; default: pr_err("Invalid device type %d\n", type); diff --git a/core/pld/src/pld_pcie.h b/core/pld/src/pld_pcie.h index 868948130c6d..d62ee999f8c0 100644 --- a/core/pld/src/pld_pcie.h +++ b/core/pld/src/pld_pcie.h @@ -127,6 +127,18 @@ static inline int pld_pcie_wlan_pm_control(struct device *dev, bool vote) #endif #ifndef CONFIG_PLD_PCIE_CNSS +static inline void *pld_pcie_smmu_get_mapping(struct device *dev) +{ + return NULL; +} + +static inline int +pld_pcie_smmu_map(struct device *dev, + phys_addr_t paddr, uint32_t *iova_addr, size_t size) +{ + return 0; +} + static inline int pld_pcie_get_fw_files_for_target(struct device *dev, struct pld_fw_files *pfw_files, @@ -308,6 +320,18 @@ void pld_pcie_schedule_recovery_work(struct device *dev, void pld_pcie_device_self_recovery(struct device *dev, enum pld_recovery_reason reason); +static inline void *pld_pcie_smmu_get_mapping(struct device *dev) +{ + return cnss_smmu_get_mapping(dev); +} + +static inline int +pld_pcie_smmu_map(struct device *dev, + phys_addr_t paddr, uint32_t *iova_addr, size_t size) +{ + return cnss_smmu_map(dev, paddr, iova_addr, size); +} + static inline void pld_pcie_link_down(struct device *dev) { cnss_pci_link_down(dev);