|
@@ -1,5 +1,5 @@
|
|
|
/*
|
|
|
- * Copyright (c) 2014-2019 The Linux Foundation. All rights reserved.
|
|
|
+ * Copyright (c) 2014-2020 The Linux Foundation. All rights reserved.
|
|
|
*
|
|
|
* Permission to use, copy, modify, and/or distribute this software for
|
|
|
* any purpose with or without fee is hereby granted, provided that the
|
|
@@ -244,8 +244,8 @@ qdf_export_symbol(qdf_mutex_release);
|
|
|
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0))
|
|
|
const char *qdf_wake_lock_name(qdf_wake_lock_t *lock)
|
|
|
{
|
|
|
- if (lock->name)
|
|
|
- return lock->name;
|
|
|
+ if (lock)
|
|
|
+ return lock->lock.name;
|
|
|
return "UNNAMED_WAKELOCK";
|
|
|
}
|
|
|
#else
|
|
@@ -268,13 +268,21 @@ qdf_export_symbol(qdf_wake_lock_name);
|
|
|
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 4, 0))
|
|
|
QDF_STATUS qdf_wake_lock_create(qdf_wake_lock_t *lock, const char *name)
|
|
|
{
|
|
|
- wakeup_source_register(lock->dev, name);
|
|
|
+ lock->priv = wakeup_source_register(lock->lock.dev, name);
|
|
|
+ if (!(lock->priv)) {
|
|
|
+ QDF_BUG(0);
|
|
|
+ return QDF_STATUS_E_FAILURE;
|
|
|
+ }
|
|
|
+
|
|
|
+ lock->lock = *(lock->priv);
|
|
|
+
|
|
|
return QDF_STATUS_SUCCESS;
|
|
|
}
|
|
|
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0))
|
|
|
QDF_STATUS qdf_wake_lock_create(qdf_wake_lock_t *lock, const char *name)
|
|
|
{
|
|
|
- wakeup_source_init(lock, name);
|
|
|
+ wakeup_source_init(&(lock->lock), name);
|
|
|
+ lock->priv = &(lock->lock);
|
|
|
return QDF_STATUS_SUCCESS;
|
|
|
}
|
|
|
#else
|
|
@@ -300,7 +308,7 @@ QDF_STATUS qdf_wake_lock_acquire(qdf_wake_lock_t *lock, uint32_t reason)
|
|
|
host_diag_log_wlock(reason, qdf_wake_lock_name(lock),
|
|
|
WIFI_POWER_EVENT_DEFAULT_WAKELOCK_TIMEOUT,
|
|
|
WIFI_POWER_EVENT_WAKELOCK_TAKEN);
|
|
|
- __pm_stay_awake(lock);
|
|
|
+ __pm_stay_awake(lock->priv);
|
|
|
|
|
|
return QDF_STATUS_SUCCESS;
|
|
|
}
|
|
@@ -324,7 +332,7 @@ qdf_export_symbol(qdf_wake_lock_acquire);
|
|
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
|
|
|
QDF_STATUS qdf_wake_lock_timeout_acquire(qdf_wake_lock_t *lock, uint32_t msec)
|
|
|
{
|
|
|
- pm_wakeup_ws_event(lock, msec, true);
|
|
|
+ pm_wakeup_ws_event(lock->priv, msec, true);
|
|
|
return QDF_STATUS_SUCCESS;
|
|
|
}
|
|
|
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)
|
|
@@ -333,7 +341,7 @@ QDF_STATUS qdf_wake_lock_timeout_acquire(qdf_wake_lock_t *lock, uint32_t msec)
|
|
|
/* Wakelock for Rx is frequent.
|
|
|
* It is reported only during active debug
|
|
|
*/
|
|
|
- __pm_wakeup_event(lock, msec);
|
|
|
+ __pm_wakeup_event(&(lock->lock), msec);
|
|
|
return QDF_STATUS_SUCCESS;
|
|
|
}
|
|
|
#else /* LINUX_VERSION_CODE */
|
|
@@ -359,7 +367,7 @@ QDF_STATUS qdf_wake_lock_release(qdf_wake_lock_t *lock, uint32_t reason)
|
|
|
host_diag_log_wlock(reason, qdf_wake_lock_name(lock),
|
|
|
WIFI_POWER_EVENT_DEFAULT_WAKELOCK_TIMEOUT,
|
|
|
WIFI_POWER_EVENT_WAKELOCK_RELEASED);
|
|
|
- __pm_relax(lock);
|
|
|
+ __pm_relax(lock->priv);
|
|
|
|
|
|
return QDF_STATUS_SUCCESS;
|
|
|
}
|
|
@@ -382,13 +390,13 @@ qdf_export_symbol(qdf_wake_lock_release);
|
|
|
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 1, 0))
|
|
|
QDF_STATUS qdf_wake_lock_destroy(qdf_wake_lock_t *lock)
|
|
|
{
|
|
|
- wakeup_source_unregister(lock);
|
|
|
+ wakeup_source_unregister(lock->priv);
|
|
|
return QDF_STATUS_SUCCESS;
|
|
|
}
|
|
|
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0))
|
|
|
QDF_STATUS qdf_wake_lock_destroy(qdf_wake_lock_t *lock)
|
|
|
{
|
|
|
- wakeup_source_trash(lock);
|
|
|
+ wakeup_source_trash(&(lock->lock));
|
|
|
return QDF_STATUS_SUCCESS;
|
|
|
}
|
|
|
#else
|