diff --git a/drivers/power/supply/rk816_battery.c b/drivers/power/supply/rk816_battery.c index cf9e3376dcc3..35bca762e73b 100644 --- a/drivers/power/supply/rk816_battery.c +++ b/drivers/power/supply/rk816_battery.c @@ -2298,9 +2298,9 @@ static void rk816_bat_init_poffset(struct rk816_battery *di) di->poffset = coffset - ioffset; } -static void rk816_bat_caltimer_isr(unsigned long data) +static void rk816_bat_caltimer_isr(struct timer_list *t) { - struct rk816_battery *di = (struct rk816_battery *)data; + struct rk816_battery *di = from_timer(di, t, caltimer); mod_timer(&di->caltimer, jiffies + MINUTE(8) * HZ); queue_delayed_work(di->bat_monitor_wq, &di->calib_delay_work, @@ -2322,7 +2322,7 @@ static void rk816_bat_internal_calib(struct work_struct *work) static void rk816_bat_init_caltimer(struct rk816_battery *di) { - setup_timer(&di->caltimer, rk816_bat_caltimer_isr, (unsigned long)di); + timer_setup(&di->caltimer, rk816_bat_caltimer_isr, 0); di->caltimer.expires = jiffies + MINUTE(8) * HZ; add_timer(&di->caltimer); INIT_DELAYED_WORK(&di->calib_delay_work, rk816_bat_internal_calib); diff --git a/drivers/power/supply/rk817_battery.c b/drivers/power/supply/rk817_battery.c index c6c7cebd480e..0b4f0088d46b 100644 --- a/drivers/power/supply/rk817_battery.c +++ b/drivers/power/supply/rk817_battery.c @@ -1690,10 +1690,10 @@ static void rk817_bat_rsoc_init(struct rk817_battery_device *battery) rk817_bat_save_dsoc(battery, battery->dsoc); } -static void rk817_bat_caltimer_isr(unsigned long data) +static void rk817_bat_caltimer_isr(struct timer_list *t) { struct rk817_battery_device *battery = - (struct rk817_battery_device *)data; + from_timer(battery, t, caltimer); mod_timer(&battery->caltimer, jiffies + MINUTE(8) * HZ); queue_delayed_work(battery->bat_monitor_wq, @@ -1717,9 +1717,9 @@ static void rk817_bat_internal_calib(struct work_struct *work) static void rk817_bat_init_caltimer(struct rk817_battery_device *battery) { - setup_timer(&battery->caltimer, + timer_setup(&battery->caltimer, rk817_bat_caltimer_isr, - (unsigned long)battery); + 0); battery->caltimer.expires = jiffies + MINUTE(8) * HZ; add_timer(&battery->caltimer); INIT_DELAYED_WORK(&battery->calib_delay_work, rk817_bat_internal_calib); diff --git a/drivers/power/supply/rk818_battery.c b/drivers/power/supply/rk818_battery.c index 579238112d98..e4eb90c747c1 100644 --- a/drivers/power/supply/rk818_battery.c +++ b/drivers/power/supply/rk818_battery.c @@ -1457,9 +1457,9 @@ static void rk818_bat_init_coffset(struct rk818_battery *di) __func__, di->poffset, ioffset, rk818_bat_get_coffset(di)); } -static void rk818_bat_caltimer_isr(unsigned long data) +static void rk818_bat_caltimer_isr(struct timer_list *t) { - struct rk818_battery *di = (struct rk818_battery *)data; + struct rk818_battery *di = from_timer(di, t, caltimer); mod_timer(&di->caltimer, jiffies + MINUTE(8) * HZ); queue_delayed_work(di->bat_monitor_wq, &di->calib_delay_work, @@ -1490,7 +1490,7 @@ static void rk818_bat_internal_calib(struct work_struct *work) static void rk818_bat_init_caltimer(struct rk818_battery *di) { - setup_timer(&di->caltimer, rk818_bat_caltimer_isr, (unsigned long)di); + timer_setup(&di->caltimer, rk818_bat_caltimer_isr, 0); di->caltimer.expires = jiffies + MINUTE(8) * HZ; add_timer(&di->caltimer); INIT_DELAYED_WORK(&di->calib_delay_work, rk818_bat_internal_calib);