build/patch/kernel/archive/sunxi-6.5/patches.megous/power-supply-rk818-battery-Drop-dependency-on-framebuffer.patch

132 lines
4.7 KiB
Diff
Raw Normal View History

From 1fcc9613a473c88198a61a92c36302018bfcc6b3 Mon Sep 17 00:00:00 2001
From: Ondrej Jirman <megi@xff.cz>
Date: Tue, 17 May 2022 23:30:46 +0200
Subject: [PATCH 323/464] 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>
---
drivers/power/supply/rk818_battery.c | 43 ++++------------------------
1 file changed, 5 insertions(+), 38 deletions(-)
diff --git a/drivers/power/supply/rk818_battery.c b/drivers/power/supply/rk818_battery.c
index 741195e77da6..cc409b7aafb5 100644
--- a/drivers/power/supply/rk818_battery.c
+++ b/drivers/power/supply/rk818_battery.c
@@ -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);
--
2.34.1