mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-13 00:00:00 -04:00
qcacld-3.0: Export APIs for power on/off WLAN hardware
Export APIs to WLAN driver to power on/off WLAN hardware. Change-Id: I3743b8fe333d3a64b01109e3e821ce44443bdafd CRs-Fixed: 1017496
This commit is contained in:
parent
d4349a9a50
commit
1496fcb9be
6 changed files with 121 additions and 1 deletions
|
|
@ -366,5 +366,6 @@ 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);
|
||||
|
||||
int pld_power_on(struct device *dev);
|
||||
int pld_power_off(struct device *dev);
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1314,3 +1314,55 @@ void pld_release_pm_sem(struct device *dev)
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* pld_power_on() - Power on WLAN hardware
|
||||
* @dev: device
|
||||
*
|
||||
* Return: 0 for success
|
||||
* Non zero failure code for errors
|
||||
*/
|
||||
int pld_power_on(struct device *dev)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
switch (pld_get_bus_type(dev)) {
|
||||
case PLD_BUS_TYPE_PCIE:
|
||||
ret = pld_pcie_power_on(dev);
|
||||
break;
|
||||
case PLD_BUS_TYPE_SNOC:
|
||||
ret = pld_snoc_power_on(dev);
|
||||
break;
|
||||
default:
|
||||
pr_err("Invalid device type\n");
|
||||
break;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* pld_power_off() - Power off WLAN hardware
|
||||
* @dev: device
|
||||
*
|
||||
* Return: 0 for success
|
||||
* Non zero failure code for errors
|
||||
*/
|
||||
int pld_power_off(struct device *dev)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
switch (pld_get_bus_type(dev)) {
|
||||
case PLD_BUS_TYPE_PCIE:
|
||||
ret = pld_pcie_power_on(dev);
|
||||
break;
|
||||
case PLD_BUS_TYPE_SNOC:
|
||||
ret = pld_snoc_power_off(dev);
|
||||
break;
|
||||
default:
|
||||
pr_err("Invalid device type\n");
|
||||
break;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -846,6 +846,30 @@ void pld_pcie_release_pm_sem(void)
|
|||
{
|
||||
cnss_release_pm_sem();
|
||||
}
|
||||
|
||||
/**
|
||||
* pld_pcie_power_on() - Power on WLAN hardware
|
||||
* @dev: device
|
||||
*
|
||||
* Return: 0 for success
|
||||
* Non zero failure code for errors
|
||||
*/
|
||||
int pld_pcie_power_on(struct device *dev)
|
||||
{
|
||||
return cnss_power_up(dev);
|
||||
}
|
||||
|
||||
/**
|
||||
* pld_pcie_power_off() - Power off WLAN hardware
|
||||
* @dev: device
|
||||
*
|
||||
* Return: 0 for success
|
||||
* Non zero failure code for errors
|
||||
*/
|
||||
int pld_pcie_power_off(struct device *dev)
|
||||
{
|
||||
return cnss_power_down(dev);
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -199,6 +199,14 @@ static void pld_pcie_release_pm_sem(void)
|
|||
{
|
||||
return;
|
||||
}
|
||||
static inline int pld_pcie_power_on(struct device *dev)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
static inline int pld_pcie_power_off(struct device *dev)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
int pld_pcie_get_fw_files_for_target(struct pld_fw_files *pfw_files,
|
||||
u32 target_type, u32 target_version);
|
||||
|
|
@ -224,6 +232,8 @@ int pld_pcie_auto_suspend(void);
|
|||
int pld_pcie_auto_resume(void);
|
||||
void pld_pcie_lock_pm_sem(void);
|
||||
void pld_pcie_release_pm_sem(void);
|
||||
int pld_pcie_power_on(struct device *dev);
|
||||
int pld_pcie_power_off(struct device *dev);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -358,4 +358,27 @@ int pld_snoc_get_ce_id(int irq)
|
|||
return icnss_get_ce_id(irq);
|
||||
}
|
||||
|
||||
/**
|
||||
* pld_snoc_power_on() - Power on WLAN hardware
|
||||
* @dev: device
|
||||
*
|
||||
* Return: 0 for success
|
||||
* Non zero failure code for errors
|
||||
*/
|
||||
int pld_snoc_power_on(struct device *dev)
|
||||
{
|
||||
return icnss_power_on(dev);
|
||||
}
|
||||
|
||||
/**
|
||||
* pld_snoc_power_off() - Power off WLAN hardware
|
||||
* @dev: device
|
||||
*
|
||||
* Return: 0 for success
|
||||
* Non zero failure code for errors
|
||||
*/
|
||||
int pld_snoc_power_off(struct device *dev)
|
||||
{
|
||||
return icnss_power_off(dev);
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -75,6 +75,14 @@ static inline int pld_snoc_get_ce_id(int irq)
|
|||
{
|
||||
return 0;
|
||||
}
|
||||
static inline int pld_snoc_power_on(struct device *dev)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
static inline int pld_snoc_power_off(struct device *dev)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
int pld_snoc_register_driver(void);
|
||||
void pld_snoc_unregister_driver(void);
|
||||
|
|
@ -89,6 +97,8 @@ int pld_snoc_ce_free_irq(unsigned int ce_id, void *ctx);
|
|||
void pld_snoc_enable_irq(unsigned int ce_id);
|
||||
void pld_snoc_disable_irq(unsigned int ce_id);
|
||||
int pld_snoc_get_ce_id(int irq);
|
||||
int pld_snoc_power_on(struct device *dev);
|
||||
int pld_snoc_power_off(struct device *dev);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in a new issue