From 04dd17822334871b23ea2862f7798fb0e0007777 Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Sat, 11 May 2024 08:53:19 +0000 Subject: [PATCH] change otg to host mode --- kernel/drivers/power/supply/rk818_battery.c | 30 +++++++++++++++--------------- 1 files changed, 15 insertions(+), 15 deletions(-) diff --git a/kernel/drivers/power/supply/rk818_battery.c b/kernel/drivers/power/supply/rk818_battery.c index 8973f10..a538407 100644 --- a/kernel/drivers/power/supply/rk818_battery.c +++ b/kernel/drivers/power/supply/rk818_battery.c @@ -170,7 +170,7 @@ struct wake_lock wake_lock; struct notifier_block fb_nb; struct timer_list caltimer; - time_t rtc_base; + time64_t rtc_base; int bat_res; int chrg_status; bool is_initialized; @@ -262,9 +262,9 @@ static u64 get_boot_sec(void) { - struct timespec ts; + struct timespec64 ts; - get_monotonic_boottime(&ts); + ktime_get_boottime_ts64(&ts); return ts.tv_sec; } @@ -286,6 +286,9 @@ { u8 i; u16 d; + + if (size < 2) + return 0; for (i = 0; i < size; i++) { if (value < table[i]) @@ -1206,13 +1209,13 @@ struct rk818_battery *di; struct fb_event *evdata = data; - if (event != FB_EARLY_EVENT_BLANK && event != FB_EVENT_BLANK) - return NOTIFY_OK; + if (event != FB_EVENT_BLANK) + return NOTIFY_DONE; di = container_of(nb, struct rk818_battery, fb_nb); di->fb_blank = *(int *)evdata->data; - return 0; + return NOTIFY_OK; } static int rk818_bat_register_fb_notify(struct rk818_battery *di) @@ -1740,7 +1743,7 @@ di->zero_linek = 1200; else di->zero_linek = 800; - DBG("ZERO-new: zero_linek adjust step6...\n"); + DBG("ZERO-new: zero_linek adjust step6...\n"); } } else { /* xsoc < 0 */ @@ -2101,6 +2104,8 @@ FINISH_CHRG_CUR2 : FINISH_CHRG_CUR1; finish_sec = base2sec(di->finish_base); soc_sec = di->fcc * 3600 / 100 / DIV(finish_current); + if (soc_sec == 0) + soc_sec = 1; plus_soc = finish_sec / DIV(soc_sec); if (finish_sec > soc_sec) { rest = finish_sec % soc_sec; @@ -3127,13 +3132,11 @@ SAMPLE_RES_DIV1 : SAMPLE_RES_DIV2; } -static time_t rk818_get_rtc_sec(void) +static time64_t rk818_get_rtc_sec(void) { int err; struct rtc_time tm; - struct timespec tv = { .tv_nsec = NSEC_PER_SEC >> 1, }; struct rtc_device *rtc = rtc_class_open(CONFIG_RTC_HCTOSYS_DEVICE); - time_t sec; err = rtc_read_time(rtc, &tm); if (err) { @@ -3147,10 +3150,7 @@ return 0; } - rtc_tm_to_time(&tm, &tv.tv_sec); - sec = tv.tv_sec; - - return sec; + return rtc_tm_to_time64(&tm); } static int rk818_bat_rtc_sleep_sec(struct rk818_battery *di) @@ -3245,7 +3245,7 @@ } pdata->ocv_size = length / sizeof(u32); - if (pdata->ocv_size <= 0) { + if (pdata->ocv_size < 2) { dev_err(dev, "invalid ocv table\n"); return -EINVAL; } -- Gitblit v1.6.2