diff --git a/core/pld/src/pld_common.c b/core/pld/src/pld_common.c index 13694e4592c9..a82d595fbd6b 100644 --- a/core/pld/src/pld_common.c +++ b/core/pld/src/pld_common.c @@ -1213,6 +1213,7 @@ int pld_get_soc_info(struct device *dev, struct pld_soc_info *info) ret = pld_snoc_get_soc_info(info); break; case PLD_BUS_TYPE_PCIE: + ret = pld_pcie_get_soc_info(dev, info); break; case PLD_BUS_TYPE_SDIO: break; diff --git a/core/pld/src/pld_pcie.c b/core/pld/src/pld_pcie.c index 66dada94dcbe..dcc9b5cafb1c 100644 --- a/core/pld/src/pld_pcie.c +++ b/core/pld/src/pld_pcie.c @@ -494,6 +494,32 @@ int pld_pcie_get_platform_cap(struct pld_platform_cap *cap) return 0; } +/** + * pld_pcie_get_soc_info() - Get SOC information + * @info: buffer to SOC information + * + * Return SOC info to the buffer. + * + * Return: 0 for success + * Non zero failure code for errors + */ +int pld_pcie_get_soc_info(struct device *dev, struct pld_soc_info *info) +{ + int ret = 0; + struct cnss_soc_info cnss_info; + + if (info == NULL) + return -ENODEV; + + ret = cnss_get_soc_info(dev, &cnss_info); + if (ret) + return ret; + + memcpy(info, &cnss_info, sizeof(*info)); + + return 0; +} + /** * pld_pcie_set_driver_status() - Set driver status * @status: driver status diff --git a/core/pld/src/pld_pcie.h b/core/pld/src/pld_pcie.h index a325e21f2f37..0324a71d2861 100644 --- a/core/pld/src/pld_pcie.h +++ b/core/pld/src/pld_pcie.h @@ -199,6 +199,11 @@ static inline int pld_pcie_get_platform_cap(struct pld_platform_cap *cap) { return 0; } +static inline int pld_pcie_get_soc_info(struct device *dev, + struct pld_soc_info *info) +{ + return 0; +} static inline void pld_pcie_set_driver_status(enum pld_driver_status status) { return; @@ -256,6 +261,7 @@ static inline void pld_pcie_get_msi_address(struct device *dev, int pld_pcie_get_fw_files_for_target(struct pld_fw_files *pfw_files, u32 target_type, u32 target_version); int pld_pcie_get_platform_cap(struct pld_platform_cap *cap); +int pld_pcie_get_soc_info(struct device *dev, struct pld_soc_info *info); void pld_pcie_set_driver_status(enum pld_driver_status status); static inline void pld_pcie_link_down(void)