mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 11:26:02 +09:00
power: supply: rk818-battery: Drop dependency on framebuffer
It was bizarre anyway. Framebuffer is barely used on Linux anyway, so this is not a great way to check for system inactivity. Signed-off-by: Ondrej Jirman <megi@xff.cz>
This commit is contained in:
committed by
Mauro (mdrjr) Ribeiro
parent
ecc87d71c7
commit
e26249894f
@@ -217,7 +217,6 @@ struct rk818_battery {
|
||||
bool sleep_chrg_online;
|
||||
u8 sleep_chrg_status;
|
||||
bool adc_allow_update;
|
||||
int fb_blank;
|
||||
bool s2r; /*suspend to resume*/
|
||||
u32 work_mode;
|
||||
int temperature;
|
||||
@@ -1097,34 +1096,6 @@ static void rk818_bat_save_reboot_cnt(struct rk818_battery *di, u8 save_cnt)
|
||||
rk818_bat_write(di, RK818_REBOOT_CNT_REG, save_cnt);
|
||||
}
|
||||
|
||||
static int rk818_bat_fb_notifier(struct notifier_block *nb,
|
||||
unsigned long event, void *data)
|
||||
{
|
||||
struct rk818_battery *di;
|
||||
struct fb_event *evdata = data;
|
||||
|
||||
if (event != FB_EARLY_EVENT_BLANK && event != FB_EVENT_BLANK)
|
||||
return NOTIFY_OK;
|
||||
|
||||
di = container_of(nb, struct rk818_battery, fb_nb);
|
||||
di->fb_blank = *(int *)evdata->data;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int rk818_bat_register_fb_notify(struct rk818_battery *di)
|
||||
{
|
||||
memset(&di->fb_nb, 0, sizeof(di->fb_nb));
|
||||
di->fb_nb.notifier_call = rk818_bat_fb_notifier;
|
||||
|
||||
return fb_register_client(&di->fb_nb);
|
||||
}
|
||||
|
||||
static int rk818_bat_unregister_fb_notify(struct rk818_battery *di)
|
||||
{
|
||||
return fb_unregister_client(&di->fb_nb);
|
||||
}
|
||||
|
||||
static u8 rk818_bat_get_halt_cnt(struct rk818_battery *di)
|
||||
{
|
||||
return rk818_bat_read(di, RK818_HALT_CNT_REG);
|
||||
@@ -1512,7 +1483,7 @@ static void rk818_bat_calc_zero_linek(struct rk818_battery *di)
|
||||
int ocv_cap, dead_cap, xsoc;
|
||||
int ocv_soc, dead_soc;
|
||||
int pwroff_vol;
|
||||
int i, cnt, vol_old, vol_now;
|
||||
int i, cnt = 0, vol_old, vol_now;
|
||||
int org_linek = 0, min_gap_xsoc;
|
||||
|
||||
if ((abs(di->current_avg) < 500) && (di->dsoc > 10))
|
||||
@@ -1884,7 +1855,7 @@ static void rk818_bat_debug_info(struct rk818_battery *di)
|
||||
"Dsoc=%d, Rsoc=%d, Vavg=%d, Iavg=%d, Cap=%d, Fcc=%d, d=%d\n"
|
||||
"K=%d, Mode=%s, Oldcap=%d, Is=%d, Ip=%d, Vs=%d\n"
|
||||
"fb_temp=%d, bat_temp=%d, sample_res=%d, USB=%d, DC=%d\n"
|
||||
"off:i=0x%x, c=0x%x, p=%d, Rbat=%d, age_ocv_cap=%d, fb=%d, hot=%d\n"
|
||||
"off:i=0x%x, c=0x%x, p=%d, Rbat=%d, age_ocv_cap=%d, hot=%d\n"
|
||||
"adp:finish=%lu, boot_min=%lu, sleep_min=%lu, adc=%d, Vsys=%d\n"
|
||||
"bat:%s, meet: soc=%d, calc: dsoc=%d, rsoc=%d, Vocv=%d\n"
|
||||
"pwr: dsoc=%d, rsoc=%d, vol=%d, halt: st=%d, cnt=%d, reboot=%d\n"
|
||||
@@ -1901,7 +1872,7 @@ static void rk818_bat_debug_info(struct rk818_battery *di)
|
||||
di->pdata->sample_res, di->usb_in, di->ac_in,
|
||||
rk818_bat_get_ioffset(di),
|
||||
rk818_bat_get_coffset(di), di->poffset, di->bat_res,
|
||||
di->age_adjust_cap, di->fb_blank, !!(thermal & HOTDIE_STS),
|
||||
di->age_adjust_cap, !!(thermal & HOTDIE_STS),
|
||||
base2min(di->finish_base),
|
||||
base2min(di->boot_base), di->sleep_sum_sec / 60,
|
||||
di->adc_allow_update,
|
||||
@@ -2495,13 +2466,12 @@ static void rk818_bat_rsoc_daemon(struct rk818_battery *di)
|
||||
int est_vol, remain_cap;
|
||||
static unsigned long sec;
|
||||
|
||||
if ((di->remain_cap < 0) && (di->fb_blank != 0)) {
|
||||
if (di->remain_cap < 0) {
|
||||
if (!sec)
|
||||
sec = get_boot_sec();
|
||||
// wake_lock_timeout(&di->wake_lock,
|
||||
// (di->pdata->monitor_sec + 1) * HZ);
|
||||
|
||||
DBG("sec=%ld, hold_sec=%ld\n", sec, base2sec(sec));
|
||||
|
||||
if (base2sec(sec) >= 60) {
|
||||
sec = 0;
|
||||
di->dbg_cap_low0++;
|
||||
@@ -2511,7 +2481,6 @@ static void rk818_bat_rsoc_daemon(struct rk818_battery *di)
|
||||
rk818_bat_init_capacity(di, remain_cap);
|
||||
BAT_INFO("adjust cap below 0 --> %d, rsoc=%d\n",
|
||||
di->remain_cap, di->rsoc);
|
||||
// wake_unlock(&di->wake_lock);
|
||||
}
|
||||
} else {
|
||||
sec = 0;
|
||||
@@ -3331,7 +3300,6 @@ static int rk818_battery_probe(struct platform_device *pdev)
|
||||
rk818_bat_init_info(di);
|
||||
rk818_bat_init_fg(di);
|
||||
rk818_bat_init_sysfs(di);
|
||||
rk818_bat_register_fb_notify(di);
|
||||
//wake_lock_init(&di->wake_lock, WAKE_LOCK_SUSPEND, "rk818_bat_lock");
|
||||
di->bat_monitor_wq = alloc_ordered_workqueue("%s",
|
||||
WQ_MEM_RECLAIM | WQ_FREEZABLE, "rk818-bat-monitor-wq");
|
||||
@@ -3465,7 +3433,6 @@ static void rk818_battery_shutdown(struct platform_device *dev)
|
||||
|
||||
cancel_delayed_work_sync(&di->bat_delay_work);
|
||||
cancel_delayed_work_sync(&di->calib_delay_work);
|
||||
rk818_bat_unregister_fb_notify(di);
|
||||
del_timer(&di->caltimer);
|
||||
if (base2sec(di->boot_base) < REBOOT_PERIOD_SEC)
|
||||
cnt = rk818_bat_check_reboot(di);
|
||||
|
||||
Reference in New Issue
Block a user