qcacld-3.0: Cleanup code related to unit-test framework

A previous unit-test framework change contained some outstanding clean
code issues. Address the issues to ensure cleaner code is maintained.

Change-Id: I889d4e12a7c00b5fc6cb409bc077466019442456
CRs-Fixed: 1073756
Этот коммит содержится в:
Dustin Brown
2016-10-03 12:57:33 -07:00
коммит произвёл qcabuildsw
родитель 0a83fb550f
Коммит d53d1a85c6
5 изменённых файлов: 91 добавлений и 99 удалений

Просмотреть файл

@@ -37,9 +37,50 @@
*/
int wlan_hdd_register_driver(void);
void wlan_hdd_unregister_driver(void);
/**
* wlan_hdd_bus_suspend() - suspend the wlan bus
*
* This function is called by the platform driver to suspend the
* wlan bus
*
* @state: state
*
* Return: QDF_STATUS
*/
int wlan_hdd_bus_suspend(pm_message_t state);
/**
* wlan_hdd_bus_suspend_noirq() - handle .suspend_noirq callback
*
* This function is called by the platform driver to complete the
* bus suspend callback when device interrupts are disabled by kernel.
* Call HIF and WMA suspend_noirq callbacks to make sure there is no
* wake up pending from FW before allowing suspend.
*
* Return: 0 for success and -EBUSY if FW is requesting wake up
*/
int wlan_hdd_bus_suspend_noirq(void);
/**
* wlan_hdd_bus_resume(): wake up the bus
*
* This function is called by the platform driver to resume wlan
* bus
*
* Return: void
*/
int wlan_hdd_bus_resume(void);
/**
* wlan_hdd_bus_resume_noirq(): handle bus resume no irq
*
* This function is called by the platform driver to do bus
* resume no IRQ before calling resume callback. Call WMA and HIF
* layers to complete the resume_noirq.
*
* Return: 0 for success and negative error code for failure
*/
int wlan_hdd_bus_resume_noirq(void);
void hdd_hif_close(void *hif_ctx);
int hdd_hif_open(struct device *dev, void *bdev, const hif_bus_id *bid,

Просмотреть файл

@@ -208,7 +208,20 @@ void hdd_wlan_suspend_resume_event(uint8_t state) {}
* enabling/disabling appropriate copy engine irqs.
*/
#ifdef WLAN_SUSPEND_RESUME_TEST
/**
* hdd_wlan_fake_apps_resume() - Resume from unit-test triggered suspend
* @wiphy: wiphy struct from a validated hdd context
*
* Return: Zero on success, calls QDF_BUG() on failure
*/
int hdd_wlan_fake_apps_resume(struct wiphy *wiphy);
/**
* hdd_wlan_fake_apps_suspend() - Initiate a unit-test triggered suspend
* @wiphy: wiphy struct from a validated hdd context
*
* Return: Zero on success, suspend related non-zero error code on failure
*/
int hdd_wlan_fake_apps_suspend(struct wiphy *wiphy);
#else
static inline int hdd_wlan_fake_apps_resume(struct wiphy *wiphy)

Просмотреть файл

@@ -558,16 +558,6 @@ done:
return err;
}
/**
* wlan_hdd_bus_suspend() - suspend the wlan bus
*
* This function is called by the platform driver to suspend the
* wlan bus
*
* @state: state
*
* Return: QDF_STATUS
*/
int wlan_hdd_bus_suspend(pm_message_t state)
{
int ret;
@@ -635,16 +625,6 @@ done:
return err;
}
/**
* wlan_hdd_bus_suspend_noirq() - handle .suspend_noirq callback
*
* This function is called by the platform driver to complete the
* bus suspend callback when device interrupts are disabled by kernel.
* Call HIF and WMA suspend_noirq callbacks to make sure there is no
* wake up pending from FW before allowing suspend.
*
* Return: 0 for success and -EBUSY if FW is requesting wake up
*/
int wlan_hdd_bus_suspend_noirq(void)
{
int ret;
@@ -700,14 +680,6 @@ static int __wlan_hdd_bus_resume(void)
return status;
}
/**
* wlan_hdd_bus_resume(): wake up the bus
*
* This function is called by the platform driver to resume wlan
* bus
*
* Return: void
*/
int wlan_hdd_bus_resume(void)
{
int ret;
@@ -758,15 +730,6 @@ int __wlan_hdd_bus_resume_noirq(void)
return status;
}
/**
* wlan_hdd_bus_resume_noirq(): handle bus resume no irq
*
* This function is called by the platform driver to do bus
* resume no IRQ before calling resume callback. Call WMA and HIF
* layers to complete the resume_noirq.
*
* Return: 0 for success and negative error code for failure
*/
int wlan_hdd_bus_resume_noirq(void)
{
int ret;

Просмотреть файл

@@ -2356,7 +2356,7 @@ int hdd_set_qpower_config(hdd_context_t *hddctx, hdd_adapter_t *adapter,
#ifdef WLAN_SUSPEND_RESUME_TEST
/*
* On Rome/iHelium there are 12 CE irqs and #2 is the wake irq. This may not be
* On iHelium there are 12 CE irqs and #2 is the wake irq. This may not be
* a valid assumption on future platforms.
*/
#define CE_IRQ_COUNT 12
@@ -2366,7 +2366,41 @@ static struct wiphy *g_wiphy;
#define HDD_FA_SUSPENDED_BIT (0)
static unsigned long fake_apps_state;
static int __hdd_wlan_fake_apps_resume(struct wiphy *wiphy);
/**
* __hdd_wlan_fake_apps_resume() - The core logic for
* hdd_wlan_fake_apps_resume() skipping the call to hif_fake_apps_resume(),
* which is only need for non-irq resume
* @wiphy: wiphy struct from a validated hdd context
*
* Return: Zero on success, calls QDF_BUG() on failure
*/
static void __hdd_wlan_fake_apps_resume(struct wiphy *wiphy)
{
qdf_device_t qdf_dev = cds_get_context(QDF_MODULE_ID_QDF_DEVICE);
int i, resume_err;
hdd_info("Unit-test resume WLAN");
if (!test_and_clear_bit(HDD_FA_SUSPENDED_BIT, &fake_apps_state)) {
hdd_info("Not unit-test suspended; Nothing to do");
return;
}
/* disable wake irq */
pld_disable_irq(qdf_dev->dev, CE_WAKE_IRQ);
resume_err = wlan_hdd_bus_resume_noirq();
QDF_BUG(resume_err == 0);
/* simulate kernel enable irqs */
for (i = 0; i < CE_IRQ_COUNT; i++)
pld_enable_irq(qdf_dev->dev, i);
resume_err = wlan_hdd_bus_resume();
QDF_BUG(resume_err == 0);
resume_err = wlan_hdd_cfg80211_resume_wlan(wiphy);
QDF_BUG(resume_err == 0);
}
/**
* hdd_wlan_fake_apps_resume_irq_callback() - Irq callback function for resuming
@@ -2386,12 +2420,6 @@ static void hdd_wlan_fake_apps_resume_irq_callback(uint32_t val)
g_wiphy = NULL;
}
/**
* hdd_wlan_fake_apps_suspend() - Initiate a unit-test triggered suspend
* @wiphy: wiphy struct from a validated hdd context
*
* Return: Zero on success, suspend related non-zero error code on failure
*/
int hdd_wlan_fake_apps_suspend(struct wiphy *wiphy)
{
qdf_device_t qdf_dev = cds_get_context(QDF_MODULE_ID_QDF_DEVICE);
@@ -2449,62 +2477,12 @@ resume_done:
return suspend_err;
}
/**
* hdd_wlan_fake_apps_resume() - Resume from unit-test triggered suspend
* @wiphy: wiphy struct from a validated hdd context
*
* Return: Zero on success, calls QDF_BUG() on failure
*/
int hdd_wlan_fake_apps_resume(struct wiphy *wiphy)
{
struct hif_opaque_softc *hif_ctx = cds_get_context(QDF_MODULE_ID_HIF);
int err;
hif_fake_apps_resume(hif_ctx);
err = __hdd_wlan_fake_apps_resume(wiphy);
if (err) {
hif_fake_apps_suspend(hif_ctx,
hdd_wlan_fake_apps_resume_irq_callback);
return err;
}
return 0;
}
/**
* __hdd_wlan_fake_apps_resume() - The core logic for
* hdd_wlan_fake_apps_resume() skipping the call to hif_fake_apps_resume(),
* which is only need for non-irq resume
* @wiphy: wiphy struct from a validated hdd context
*
* Return: Zero on success, calls QDF_BUG() on failure
*/
static int __hdd_wlan_fake_apps_resume(struct wiphy *wiphy)
{
qdf_device_t qdf_dev = cds_get_context(QDF_MODULE_ID_QDF_DEVICE);
int i, resume_err;
hdd_info("Unit-test resume WLAN");
if (!test_and_clear_bit(HDD_FA_SUSPENDED_BIT, &fake_apps_state)) {
hdd_info("Not unit-test suspended; Nothing to do");
return 0;
}
/* disable wake irq */
pld_disable_irq(qdf_dev->dev, CE_WAKE_IRQ);
resume_err = wlan_hdd_bus_resume_noirq();
QDF_BUG(resume_err == 0);
/* simulate kernel enable irqs */
for (i = 0; i < CE_IRQ_COUNT; i++)
pld_enable_irq(qdf_dev->dev, i);
resume_err = wlan_hdd_bus_resume();
QDF_BUG(resume_err == 0);
resume_err = wlan_hdd_cfg80211_resume_wlan(wiphy);
QDF_BUG(resume_err == 0);
__hdd_wlan_fake_apps_resume(wiphy);
return 0;
}

Просмотреть файл

@@ -379,7 +379,4 @@ void *pld_smmu_get_mapping(struct device *dev);
int pld_smmu_map(struct device *dev, phys_addr_t paddr,
uint32_t *iova_addr, size_t size);
unsigned int pld_socinfo_get_serial_number(struct device *dev);
void pld_enable_irq(struct device *dev, unsigned int ce_id);
void pld_disable_irq(struct device *dev, unsigned int ce_id);
#endif