diff --git a/core/pld/src/pld_common.c b/core/pld/src/pld_common.c index 83f609fd0af0..58fbbcce2f6b 100644 --- a/core/pld/src/pld_common.c +++ b/core/pld/src/pld_common.c @@ -1162,7 +1162,9 @@ int pld_force_wake_request(struct device *dev) case PLD_BUS_TYPE_SNOC: case PLD_BUS_TYPE_SDIO: case PLD_BUS_TYPE_USB: + break; case PLD_BUS_TYPE_IPCI: + ret = pld_ipci_force_wake_request(dev); break; default: pr_err("Invalid device type %d\n", type); @@ -1196,7 +1198,9 @@ int pld_is_device_awake(struct device *dev) case PLD_BUS_TYPE_SNOC: case PLD_BUS_TYPE_SDIO: case PLD_BUS_TYPE_USB: + break; case PLD_BUS_TYPE_IPCI: + ret = pld_ipci_is_device_awake(dev); break; default: pr_err("Invalid device type %d\n", type); @@ -1229,7 +1233,9 @@ int pld_force_wake_release(struct device *dev) case PLD_BUS_TYPE_SNOC: case PLD_BUS_TYPE_SDIO: case PLD_BUS_TYPE_USB: + break; case PLD_BUS_TYPE_IPCI: + ret = pld_ipci_force_wake_release(dev); break; default: pr_err("Invalid device type %d\n", type); @@ -1701,10 +1707,13 @@ int pld_athdiag_read(struct device *dev, uint32_t offset, ret = pld_usb_athdiag_read(dev, offset, memtype, datalen, output); break; + case PLD_BUS_TYPE_IPCI: + ret = pld_ipci_athdiag_read(dev, offset, memtype, + datalen, output); + break; case PLD_BUS_TYPE_PCIE_FW_SIM: case PLD_BUS_TYPE_IPCI_FW_SIM: case PLD_BUS_TYPE_SNOC_FW_SIM: - case PLD_BUS_TYPE_IPCI: break; default: ret = -EINVAL; @@ -1746,10 +1755,13 @@ int pld_athdiag_write(struct device *dev, uint32_t offset, ret = pld_usb_athdiag_write(dev, offset, memtype, datalen, input); break; + case PLD_BUS_TYPE_IPCI: + ret = pld_ipci_athdiag_write(dev, offset, memtype, + datalen, input); + break; case PLD_BUS_TYPE_PCIE_FW_SIM: case PLD_BUS_TYPE_IPCI_FW_SIM: case PLD_BUS_TYPE_SNOC_FW_SIM: - case PLD_BUS_TYPE_IPCI: break; default: ret = -EINVAL; diff --git a/core/pld/src/pld_ipci.h b/core/pld/src/pld_ipci.h index 1a26c770ee0f..964313f62c5f 100644 --- a/core/pld/src/pld_ipci.h +++ b/core/pld/src/pld_ipci.h @@ -120,6 +120,35 @@ static inline int pld_ipci_smmu_map(struct device *dev, phys_addr_t paddr, return 0; } +static inline int pld_ipci_force_wake_request(struct device *dev) +{ + return 0; +} + +static inline int pld_ipci_force_wake_release(struct device *dev) +{ + return 0; +} + +static inline int pld_ipci_is_device_awake(struct device *dev) +{ + return 0; +} + +static inline int pld_ipci_athdiag_read(struct device *dev, uint32_t offset, + uint32_t memtype, uint32_t datalen, + uint8_t *output) +{ + return 0; +} + +static inline int pld_ipci_athdiag_write(struct device *dev, uint32_t offset, + uint32_t memtype, uint32_t datalen, + uint8_t *input) +{ + return 0; +} + #else int pld_ipci_register_driver(void); void pld_ipci_unregister_driver(void); @@ -197,5 +226,33 @@ static inline int pld_ipci_smmu_map(struct device *dev, phys_addr_t paddr, return icnss_smmu_map(dev, paddr, iova_addr, size); } +static inline int pld_ipci_force_wake_request(struct device *dev) +{ + return icnss_force_wake_request(dev); +} + +static inline int pld_ipci_force_wake_release(struct device *dev) +{ + return icnss_force_wake_release(dev); +} + +static inline int pld_ipci_is_device_awake(struct device *dev) +{ + return icnss_is_device_awake(dev); +} + +static inline int pld_ipci_athdiag_read(struct device *dev, uint32_t offset, + uint32_t memtype, uint32_t datalen, + uint8_t *output) +{ + return icnss_athdiag_read(dev, offset, memtype, datalen, output); +} + +static inline int pld_ipci_athdiag_write(struct device *dev, uint32_t offset, + uint32_t memtype, uint32_t datalen, + uint8_t *input) +{ + return icnss_athdiag_write(dev, offset, memtype, datalen, input); +} #endif #endif