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:
Weixin Zhou
2021-01-21 14:53:05 +08:00
committed by Tao Huang
parent c296f63fe3
commit ab15d7f901

View File

@@ -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;
}