qcacld-3.0: Add PM semaphore related APIs in PLD

Add PM semaphore related APIs in PLD, which is being used in BMI.

CRs-Fixed: 1010156
Change-Id: Ief52f7b078ea62cae18508b9e523e2a19f3519b3
This commit is contained in:
Yuanyuan Liu 2016-04-11 11:11:27 -07:00 • committed by Akash Patel
commit 44c44772ad
3 changed files with 50 additions and 0 deletions

View file

@ -342,5 +342,7 @@ void pld_enable_irq(struct device *dev, unsigned int ce_id);
void pld_disable_irq(struct device *dev, unsigned int ce_id);
int pld_get_soc_info(struct device *dev, struct pld_soc_info *info);
int pld_get_ce_id(struct device *dev, int irq);
void pld_lock_pm_sem(struct device *dev);
void pld_release_pm_sem(struct device *dev);
#endif

View file

@ -1115,3 +1115,43 @@ int pld_get_ce_id(struct device *dev, int irq)
return ret;
}
/**
* pld_lock_pm_sem() - Lock PM semaphore
* @dev: device
*
* Return: void
*/
void pld_lock_pm_sem(struct device *dev)
{
switch (pld_get_bus_type(dev)) {
case PLD_BUS_TYPE_PCIE:
cnss_lock_pm_sem();
break;
case PLD_BUS_TYPE_SNOC:
break;
default:
pr_err("Invalid device type\n");
break;
}
}
/**
* pld_release_pm_sem() - Release PM semaphore
* @dev: device
*
* Return: void
*/
void pld_release_pm_sem(struct device *dev)
{
switch (pld_get_bus_type(dev)) {
case PLD_BUS_TYPE_PCIE:
cnss_release_pm_sem();
break;
case PLD_BUS_TYPE_SNOC:
break;
default:
pr_err("Invalid device type\n");
break;
}
}

View file

@ -179,6 +179,14 @@ static inline int cnss_auto_resume(void)
{
return 0;
}
static void cnss_lock_pm_sem(void)
{
return;
}
static void cnss_release_pm_sem(void)
{
return;
}
#else
int pld_pcie_get_fw_files_for_target(struct pld_fw_files *pfw_files,
u32 target_type, u32 target_version);