mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 20:07:46 +09:00
power: rk817-battery: move resume work to workqueue
Reduced resume elapsed time Signed-off-by: Weixin Zhou <zwx@rock-chips.com> Change-Id: I074d86934537bc05f7d18f9eb62278d9a9053cdf
This commit is contained in:
@@ -493,6 +493,7 @@ struct rk817_battery_device {
|
||||
struct workqueue_struct *bat_monitor_wq;
|
||||
struct delayed_work bat_delay_work;
|
||||
struct delayed_work calib_delay_work;
|
||||
struct work_struct resume_work;
|
||||
struct wake_lock wake_lock;
|
||||
struct timer_list caltimer;
|
||||
|
||||
@@ -623,6 +624,8 @@ struct rk817_battery_device {
|
||||
bool change; /* Battery status change, report information */
|
||||
};
|
||||
|
||||
static void rk817_bat_resume_work(struct work_struct *work);
|
||||
|
||||
static u64 get_boot_sec(void)
|
||||
{
|
||||
struct timespec ts;
|
||||
@@ -3037,6 +3040,7 @@ static int rk817_battery_probe(struct platform_device *pdev)
|
||||
INIT_DELAYED_WORK(&battery->bat_delay_work, rk817_battery_work);
|
||||
queue_delayed_work(battery->bat_monitor_wq, &battery->bat_delay_work,
|
||||
msecs_to_jiffies(TIMER_MS_COUNTS * 5));
|
||||
INIT_WORK(&battery->resume_work, rk817_bat_resume_work);
|
||||
|
||||
ret = rk817_bat_init_power_supply(battery);
|
||||
if (ret) {
|
||||
@@ -3312,10 +3316,9 @@ static int rk817_bat_sleep_dischrg(struct rk817_battery_device *battery)
|
||||
return sleep_soc;
|
||||
}
|
||||
|
||||
static int rk817_bat_pm_resume(struct device *dev)
|
||||
static void rk817_bat_resume_work(struct work_struct *work)
|
||||
{
|
||||
struct platform_device *pdev = to_platform_device(dev);
|
||||
struct rk817_battery_device *battery = dev_get_drvdata(&pdev->dev);
|
||||
struct rk817_battery_device *battery = container_of(work, struct rk817_battery_device, resume_work);
|
||||
int interval_sec = 0, time_step = 0, pwroff_vol;
|
||||
|
||||
battery->s2r = true;
|
||||
@@ -3362,6 +3365,13 @@ static int rk817_bat_pm_resume(struct device *dev)
|
||||
|
||||
queue_delayed_work(battery->bat_monitor_wq, &battery->bat_delay_work,
|
||||
msecs_to_jiffies(1000));
|
||||
}
|
||||
|
||||
static int rk817_bat_pm_resume(struct device *dev)
|
||||
{
|
||||
struct rk817_battery_device *battery = dev_get_drvdata(dev);
|
||||
|
||||
queue_work(battery->bat_monitor_wq, &battery->resume_work);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user