ELFh@@(&/4 K|` ||PPPPP```google,dual_batt_gaugegoogle_dual_batt_gauge: get %s for '%s' => %d POWER_SUPPLY_PROP_CURRENT_NOWdual_batt_balancegetting unsupported property: %d pspupdate base_charge_full:%d->%d, sec_charge_full:%d->%d google_dual_batt_gauge: %s: skip ov for tier %d/%dgoogle_dual_batt_gauge: %s: %d, %d, %d(work_completion)(&(&dual_fg_drv->gdbatt_work)->work)google_dual_batt_gauge: Couldn't set vsec_offset (%d) Couldn't register as power supply, ret=%d POWER_SUPPLY_PROP_CURRENT_AVG%s: %d, %d, %dPRESENT different: %d/%dgoogle_dual_batt_gauge: getting unsupported property: %d initial base_soc:%d(%#x), sec_soc:%d(%#x) google_dual_batt_gauge: set %s for '%s' to %d 3google_dual_batt_gauge: Cannot set the second BATT_CE_CTRL, ret=%d google_dual_batt_gauge: gdbatt: set_prop cannot write psp=%d 4google_dual_batt_gauge: base battery not present, no default capacity, zero charge table psy_changed3google_dual_batt_gauge: Cannot set the first BATT_CE_CTRL, ret=%d google_dual_batt_gaugebatteryget %s for '%s' => %lld google_dual_batt_gauge: case %d not align: %d/%dgdbatt: set_prop cannot write psp=%d 6google_dual_batt_gauge: google,first-fg-psy-name=%s check done. cable_in=%d (%d) 3google_dual_batt_gauge: %s: invalid params, %d, %d, %d gdbatt_oc_cc_offsetgdbatt_select_cc_maxCouldn't set vsec_offset (%d) error %d reading first fg prop %d error %d reading second fg prop %d error %d reading single prop %d set %s for '%s' to %d gdbatt_gbms_set_property&(&dual_fg_drv->gdbatt_work)->timergoogle,seq-fg-soc-limit6google_dual_batt_gauge: google_dual_batt_gauge_probe done failed to get "%s" power supply, retrying... 6google_dual_batt_gauge: fail to update base battery stats (%d) POWER_SUPPLY_PROP_CHARGE_COUNTERdebug_levelgoogle,second-fg-psy-name6google_dual_batt_gauge: fail to get charge state from battery (%d) MSC_FVdualbatt%s: route to gdbatt_get_property, psp:%d google,dual_batt_gaugegoogle,sec-vbatt-ratiogoogle,seq-fg-delta-limitPOWER_SUPPLY_PROP_VOLTAGE_NOWgdbatt_get_property&(&dual_fg_drv->init_work)->timer6google_dual_batt_gauge: %s: temp:%d/%d(%d/%d), vbatt:%d/%d(%d/%d), cc_max:%d/%d(%d) &dual_fg_drv->stats_lockgoogle,cc-balance-ratiogoogle_dual_batt_gauge_init_work done 4google_dual_batt_gauge: secondary battery not present, no default capacity, zero charge table google,chg-pack-cc-limits%s: battery OC base:%d/%d sec:%d/%d cc_offset:%d->%d cc_max:%d (%d/%d)gdbatt_gbms_get_propertygpsy_set_propFailed to create dbatt_stats google,chg-battery-capacitygoogle_dual_batt_gauge: name=%s evt=%lu 6google_dual_batt_gauge: MSC_STAT dual cannot read soc_in=%d gdbatt_check_currentFirst battery not PRESENT fail to init chg profile (%d) ../private/google-modules/bms/google_psy.h3google_dual_batt_gauge: cannot read chg-pack-cc-limits table, ret=%d name=%s evt=%lu google_dual_batt_gauge: error %d reading single prop %d report_soc_type:%d -> %d, seq_soc:%d, sec_soc:%d Couldn't create debugfs, (%ld) seq_soc_limitgoogle,vbatt-ov-allowed-idxget %s for '%s' => %d %s: battery OV cc_max:%d->%d (%d)POWER_SUPPLY_PROP_CHARGE_FULL_DESIGNdaul_batt_tempgoogle_dual_batt_gauge: %s: route to gdbatt_set_property, psp:%d google,psy-type-unknownSecond battery not PRESENT google_dual_batt_gauge: get %s for '%s' => %lld google_dual_batt%s: skip ov for tier %d/%dseq_report_soc_typegoogle,vfloat-offset-max-idx4google_dual_batt_gauge: battery not present, no default capacity, zero charge table seq_delta_limitgoogle,first-fg-psy-name(work_completion)(&(&dual_fg_drv->init_work)->work)6google_dual_batt_gauge: failed to get "%s" power supply, retrying... 6google_dual_batt_gauge: google,second-fg-psy-name=%s google,chg-base-battery-capacity6google_dual_batt_gauge: fail to update sec battery stats (%d) GBMS_PROP_CAPACITY_RAWgoogle_dual_batt_gauge: error %d reading first fg prop %d google_dual_batt_gauge: %s: route to gdbatt_get_property, psp:%d 3google_dual_batt_gauge: failed to set %s for '%s', ret=%d 3google_dual_batt_gauge: no dual gauge setting google,battery%s: battery OV v_base:%d, v_sec:%dgoogle_dual_batt_gauge: check done. cable_in=%d (%d) gdbatt_ov_last_tierGBMS_PROP_FG_REG_LOGGINGgoogle,vsec-offsetgoogle_dual_batt_gauge: error %d reading second fg prop %d google_dual_batt_gauge: PRESENT different: %d/%dgoogle_dual_batt_gauge_probedual_battgpsy_get_int64_propdbatt_stats../private/google-modules/bms/google_dual_batt_gauge.cgoogle,chg-sec-battery-capacitycase %d not align: %d/%d3google_dual_batt_gauge: Cannot set aafv to the first FG, ret=%d 3google_dual_batt_gauge: Cannot set aafv to the second FG, ret=%d %s: route to gdbatt_set_property, psp:%d Couldn't register logbuffer, (%ld) gpsy_get_prop3google_dual_batt_gauge: cannot register power supply notifer (%d) 3google_dual_batt_gauge: failed to get %s from '%s', ret=%d GBMS_PROP_CHARGE_CHARGER_STATEgdbatt_ov_handlerMSC_FCC%s: battery over max fv:%d->%dc?#C{3WOCA8@CFRR>@:B!Cu 4:B!c@4h@hh@H"u!:B!#Rq6 jR{{`"!B****h )`"cRhzh~i`!B****whb )`cRhhi`!B:B!V ``@!?`T_1T@__R`` ^^R`sA8C_ !T*3@OHWG{EC#_`@!vR!:B!#R`6 Rv!:B!#R@6v!:B!#R`6HRv!:B!#R`6w(:B!#Rv(@6:B!#R@6?`T`@!h@!4h@!?bTc4Rc(4R4R4R`@!RR@*h!c?#{ T@` `" `B`nC`D@ @*{¨#_Vn?#{T@h {#_ֶ`?#C{WOA8CTuT5vTCR 7 @<`S #aR`,1T @*5`Q!`S@ #aR`,1 T @*4uT*CR `7 @6@*!@*u*T7V6RR@A8C_ TODWC{BC#_`Q!bvGdzG**!tvvzhfh2Ah hQtB1B 6K@*!@*6`Q!bSaSbb!#R6br!#R6b!#R6bZG`c^G* 7`cbGq6`Q!`h6* Rt*iJҨIi`bA R.*u!}ɛ&"K ~zvrnjfb^ZVRNJFB>:62a Rv( R bRhy!@`Q!)`Q!@@!@B@@!@B`?#C{og _ W O A8CPZ94{z R|Bw@X@@RhRZ9h4hVZ9(4@RhZZ94H@hh@htі@@CR*@7 ը_h"iJҨIiub*}ɛKh&Dy&@@6bc d!>* 7`@bc"d!5*T 76@RX7hZZ94W@v@7CR 4*`7*CR*447*-*_vhZZ95`v@*`z@* R8R@A8C_ DTOLWK_JgIoH{GC#_ֹ_CR 7 շ_W7CR@!7 ո_87hFih7k˜#*x*@!*@~@*h"hF R)K}(!飐Ri=r}) e hAk,TiA)Q?%q:TK))B?kjT C *`@b^*hACk,ThAQ%qh7TK(BkT^*^**`.AQ)q5TK(CkmT* ^* k.AhQ%qh3TK(CkThF^KhF*kT^***C^Ch7Y7hAiBC^Q) i.Ae i@6h*^h7Y7hAiB^Q) i.Ae i@5h'|)h~FkͲLk!T]kTkThFh 7k, T`*CC@R*** *h.A?kjT)*?k$*u~Fi 7iAjB)Q)- (i@7hL  *`v@]`v@p`z@`z@h.AQ)qB%TK(iF!#RCR7 K~@`*CC@R***w*@hZZ9h4h.A)?k)* *j 7jAkBJQJ1 H%i@*h\@*@!*kT յ!B*`v@`vhF!#Ra@kK~@`*CC@R***h"x ]!*|)!C]***]# `v@b@!#Rh"{~@i* *_ k+ThF飐Ri=r} }) e *H7hBiDj~DkFFQ)Q1 jB)1 kDe jA)e kBUhvi**X@ CAR` 7 շ_x@Kx CAR@ 7 չ_KkkTkTi~FԐR*(r:K 7kTK  )Q) $}*iFkT*K  JQJ E}* ( _ k h~Fk`v@!K#R}@i~F`*C*^@hF)KR**3+# h"x@ *@!*@*@!*@ԐR!**$r*@*bZZ9!*@_!@Bg@_!@B_6@_!@B_6@_!@BO@_!@BO!B*j$L*?#{ Oa"@@ hB @@@q*h" @@@q**qTh @OB R @{è#_ֈ@!@?#{WOH@I4@9R*Q} ~~R`B!7k @hQq+T  *)ySj6@lQ k T_qkT* - lB@kJ}~ij-} i*j6@ kTk @*`OBWA{è#_*`B@B?#{g_WOA8C CR4*7*0@**C!R 7 CR `7hRH rH( f  CAR@ 7 @7******A8C_ aT*@OGWF_EgD{B#_@*!@*!@*@*!@**@@!@B@@!@B@@!@B@6?#4@QqT 8@?kjTqT <@?k*T q@T @@?kT qT D@?kTqT H@?kjTqT L@?k*Tq@T P@?kTqT T@?kT!qT X@?kjT%qT \@?k*T)qAT@R#_*#_ R#_@R#_`R#_րR#_֠R#_R#_R#_R#_ R#_@*Ԭp\?#C{OA8C*@Ra94a9h4@RB`C*4* !)@RH H *@6 * A8)C_? aTOD*{B@C#_֠@#*4* !****.qT* ) +yJ @@vH @j6rH Rk KI} h%飐Ri=r}) e  @ @) @ @ k *i@ @h k T շ@ @!* @*i@ @*` ա!*@ @q$@z kj@T Ր@ @!*!*A(?#*#_W>]?#*#_+Df?#C{_WOCA8C*@RȒa9(4Ȗa94@RBX**`7 u 4 Ւ!V@RUX**7  @T**7 @U6 *nUl@!*@@@@!**6@@!@B5@@x**7 u4 <!**4@!*@@@@!B!**@@!@B5hQ]q(T)R R)! r? jT*A8C@ aT*ODWC_B{AC#_4Uq@T Օ@**?***!B*?#C{WOCA8C*@Ra9(4a94@RhQaqh T )* +yJ @֗@ @ !R* 6@!*@*I@RVA8C@ T*@ODWC{AC#_֗@w@ !R*@6@!*@* Ֆ*@@ !R6@*!@**,*@w@ !R*7*@q!9h4 RhJ Ih(}țKӈBR@v7* Ց!*@!*@*!B*r@!B@*O@!B@*n@!B@*@!B@*t)?#(R?q$Hz#_?# (J*?qT? qT*#_ ]*Q_A1Ta Q_=1"TjRJ r)}*}*+)f) f *} ) @ #_H q}#_?#{_WOCA8ժRC**4|U| JxH?qXkTi~H?kTKh5h~H4?q(WZkTx@(R R 7x@(R R7h&Jtzu~4i"JI4qCTq TkHR$@z*q(Rb*J_kTA8C@ TOEWD_C{A@#_`@!***v* `@!****@*!@@*!@@!B@$R@!B@$R\C?#{WO*HHH(  +aT"R*|@RIZIVI(  +T"%R* OBWA{è#_?#{ WO @9q T R*iJIi"A R"%}ɛKӟ~zvrnjfb^ZVRNJFBa R @OCWB{Ĩ#__eE??#{ L@R`@`@R!9 @*{¨#__eE??#{ L@R`@(R`@Rh!9 @*{¨#_ű6?#{!{#_ g@?#{{#_description=Google Dual Gauge Driverauthor=Jenny Ho license=GPLvermagic=6.1.99-android14-11-gc151586fe278-ab12919773 SMP preempt mod_unload modversions aarch64name=google_dual_batt_gaugescmversion=g38791c5c2da3depends=logbuffer,google-bms,gvotablealias=of:N*T*Cgoogle,dual_batt_gaugealias=of:N*T*Cgoogle,dual_batt_gaugeC*C|"%+FS"LinuxLinuxgoogle_dual_batt_gauge#__platform_driver_registerplatform_driver_unregister#]devm_kmalloc_fof_property_read_string\of_property_read_variable_u32_array%}Ԇlockdep_init_map_typedelayed_work_timer_fn4Kinit_timer_keyh˽__mutex_init޻of_find_propertyCdevm_power_supply_register~_printk7Odevm_kstrdupA_dev_errwologbuffer_register,device_create_filedebugfs_create_dirMSdebugfs_create_u32Ӆ3-system_wq}?queue_delayed_work_onғ__stack_chk_faileb,__dynamic_pr_debugÁkpower_supply_unreg_notifier/gHgbms_free_chg_profile zkfree Ylogbuffer_unregister}gbms_get_property.power_supply_get_by_name wpower_supply_get_propertyjؽ_dev_infoQLof_find_node_by_namedgbms_init_chg_profile_internal&gbms_init_chg_table bpower_supply_reg_notifierktime_get_with_offset{f8emutex_lock_nestedC jgbms_tier_stats_initmutex_unlockmod_delayed_work_on Z7__pm_runtime_resumevr__pm_runtime_idle$bgvotable_cast_vote_gbms_msc_temp_idx۔ogbms_logbuffer_prlogvLgvotable_election_get_handle$power_supply_changedZ%strcmp~)HmemcpyE:#__kmallocgbms_stats_update_tier3power_supply_get_drvdataogbms_set_propertyG)gbms_tier_stats_cstremodule_layoutGNUk<#zhBlҾGNUTdht    ( , 04LT7X7\ ` x    00{ { @@0i4i8H\S`Sdt  ::$ ( 8PTd|    !!ll   $,@ D HLX`&d&ptx  mm 4<DLX(DsHsLdxLPdlpQ Q      08W<W@HL\d-h-ltx  , ,    $ 8 , 8 D L ` d l  p  t      8 8        8 8       P ` |      h |    m m, @ H X \     $(!,!8@ D P  0|  R R,N 0N 4Xm\mxZZWW   48<@D@H@P`RdRhxm|m@@mm$ $   4@DDDL\0mmN N ^ ^L\|!! (,4!8!<H8L8T X ` d h|88    88  88  PP  xpp  @L\4 `4 p TOO    8$8, 0 8O<O@L8P8X \ d h lx8|8  <Pl(<@DHXpt $,hhlhpt|0011H X t        !L!P!T!X!d!|!!!!!!8!8! ! !!!!" """ "0"4"8"<"H"X"8\"8d" h" l"p"t"|"""1"1""8"8" " """p#t#Hx#H|#?#?# # #### $0$0L$\$`$d$h$t$x$|$$$$%% %%% %$%,%h%x%|%%%%%%%%%&,&0&@&D&\&(`&(d&h&p&|&&&&&&&&&&&&S&S& & &&&&z&z&&&' ''z'z''('4'8'<'z@'zD'H'T'`'d'h'zl'zp't''())j)j))O)O)** *k*k*(*,*0*k4*k<*D*L*P*T*zX*z\*k`*kl*x*|**z*z*k*k***+8+D++++,,, --T-h- ( ` $ (`0 48@D DHP TDX`` dxh`p,t4x@ `8`x``H`$t`4< $( 0`4h8@DHXP T!X`` d hp t!x`$!P"`4!|"!"`""84#t#p8$&$'4%&T%0'%\' T&$\&(P0(4H*8@ )Dt*H,8-,8-,8-?*d+t0 @X(U (08 h p#x'K! 8@HPpxK + K @(K0 PX`Kh K@  Kc  K08 @KHhp xK K  K@  K(c HP XK`^  K    KB(0 8K@CAndroid (10087095, +pgo, +bolt, +lto, -mlgo, based on r487747c) clang version 17.0.2 (https://android.googlesource.com/toolchain/llvm-project d9f89f4d16663d5012e5c09495f3b30ece3d2362) )Mehk$E-19@QWZa^Tq}x X    ^ 9  8XX    , 0B@l8=zXu t( px t~    88,   zY$,h  08k  ,|K @8 H P  `m d<p80 e E  <|  P8 (g,6 p8d L '  \  (H L0 8  8F ! N 8~ 8V  x 8  '0hh8Fd*@08 @   x  P  \    P$ ` 8   p  H J (!r 388!!bC 8 " H8 8#hL(T# #D #=  8<$$- 8 8%  X% > %   (8X&6'z''!0 (~ @ )#* * *d+2 `+ d+{,D,n,8-H4- 8-q  Q  %  %( M (%  s<    - Ya Y  b ! ! &%R:'!U :0,<hJ$Pc4uMR +yvX8c.VAA(.note.gnu.property.note.Linux.rela.exit.text.rela.init.text.hyp.text.rela.text.comment.init.plt.hyp.bss__versions.modinfo.note.GNU-stack.llvm_addrsig.rela__dyndbg.text.ftrace_trampoline.rela.gnu.linkonce.this_module.rela__jump_table.note.gnu.build-id.shstrtab.strtab.symtab.hyp.rodata.rela.rodata.rela.exit.data.rela.init.data.hyp.data.rela.datagdbatt_set_propertygdbatt_gbms_set_propertypower_supply_get_propertygdbatt_get_propertygdbatt_gbms_get_propertyof_find_propertygdbatt_get_capacitymemcpyinit_timer_keygoogle_dual_batt_gauge_probe.__keyof_property_read_variable_u32_arraygbms_msc_temp_idxgdbatt_select_voltage_idxdbatt_stats_show__mutex_initgbms_tier_stats_initktime_get_with_offsetdev_attr_dbatt_statsgbatt_update_batt_statsgdbatt_fg_propsgoogle_dual_batt_pm_ops____versionsgbms_tier_stats_cstr_dev_errdebugfs_create_dirgoogle_dual_batt_gauge_driverplatform_driver_unregisterlogbuffer_unregisterdevm_power_supply_register__platform_driver_registerlogbuffer_registergbms_stats_update_tierpower_supply_unreg_notifierpower_supply_reg_notifiersystem_wqdevm_kstrdupstrcmp_dev_infogoogle_dual_batt_gauge_shutdownqueue_delayed_work_onmod_delayed_work_on__kcfi_typeid_delayed_work_timer_fn__stack_chk_failgbms_init_chg_profile_internal_printkgoogle_dual_batt_workgoogle_dual_batt_gauge_init_workmutex_unlockgoogle_dual_batt_gauge_of_match__dynamic_pr_debuggbms_logbuffer_prlogdebug_printk_prlogof_property_read_stringgdbatt_fg_logginggoogle_dual_batt_gauge_removegvotable_cast_votedbatt_stats_storelockdep_init_map_typegoogle_dual_batt_pm_resume__pm_runtime_resumepower_supply_get_by_nameof_find_node_by_nameinit_module__this_modulecleanup_modulegdbatt_init_pack_chg_profilegbms_free_chg_profiledevice_create_filegvotable_election_get_handle__pm_runtime_idlegbms_init_chg_table__mod_of__google_dual_batt_gauge_of_match_device_tablegdbatt_property_is_writeablegdbatt_gbms_property_is_writeablekfreegoogle_dual_batt_gauge_probegoogle_dual_batt_pm_suspendmutex_lock_nestedpsy_changedpower_supply_changedgdbatt_psy_descdevm_kmalloc__kmallocpower_supply_get_drvdata_note_9$x.99$x.89$x.79$x.69$d.59$d.49$d.39$d.29google_dual_batt_gauge_probe.__key.19$d.19$x.109$d.9$d.98google_dual_batt_gauge_probe.__UNIQUE_ID_ddebug388$d.88gdbatt_gbms_get_property.__UNIQUE_ID_ddebug378$d.78gdbatt_get_property.__UNIQUE_ID_ddebug368$d.68gdbatt_ov_handler.__UNIQUE_ID_ddebug358$x.58$x.48__UNIQUE_ID_alias338$x.38$x.28$d.118$x.18$d.108$x.8$d.8$x.97$x.87$x.77$x.67$d.57$d.47__UNIQUE_ID_alias337$d.37$d.27$d.117google_dual_batt_gauge_probe.__key.17$d.17$x.107$d.7$d.96psy_changed.__UNIQUE_ID_ddebug386$d.86gdbatt_gbms_get_property.__UNIQUE_ID_ddebug376$d.76gdbatt_get_property.__UNIQUE_ID_ddebug366$d.66gdbatt_oc_cc_offset.__UNIQUE_ID_ddebug356$x.56gpsy_get_prop.__UNIQUE_ID_ddebug346$x.46__UNIQUE_ID_depends336$x.36$x.26$d.116$x.16$d.106$x.6$x.95$x.85$x.75$x.65$d.55$d.45__UNIQUE_ID_scmversion335$d.35$d.25$d.115google_dual_batt_gauge_probe.__key.15$d.15$x.105$d.5__UNIQUE_ID_license394$d.94gdbatt_gbms_set_property.__UNIQUE_ID_ddebug384$d.84gdbatt_gbms_get_property.__UNIQUE_ID_ddebug374$d.74gdbatt_get_property.__UNIQUE_ID_ddebug364$d.64$x.54gpsy_set_prop.__UNIQUE_ID_ddebug344$x.44__UNIQUE_ID_name334$x.34$d.124$x.24$d.114$x.14$d.104$x.4$d.4__UNIQUE_ID_author393$x.93$x.83$x.73$x.63$d.53$d.43__UNIQUE_ID_vermagic333$d.33$d.23$d.113google_dual_batt_gauge_probe.__key.13$d.13$x.103$d.3__UNIQUE_ID_description392$d.92gdbatt_gbms_set_property.__UNIQUE_ID_ddebug382$d.82gdbatt_get_property.__UNIQUE_ID_ddebug372$d.72gdbatt_get_property.__UNIQUE_ID_ddebug362$d.62$x.52$x.42debugfs_create_u32$x.32$x.22$d.112$x.12$d.102$x.2$d.2__UNIQUE_ID___addressable_cleanup_module391$x.91$x.81$x.71$d.61$d.51$d.41$d.31$d.21$x.111$d.11$x.101$d.1__UNIQUE_ID___addressable_init_module390$d.90gdbatt_gbms_get_property.__UNIQUE_ID_ddebug380$d.80gdbatt_get_property.__UNIQUE_ID_ddebug370$d.70gdbatt_select_cc_max.__UNIQUE_ID_ddebug360$x.60gpsy_get_int64_prop.__UNIQUE_ID_ddebug350$x.50$x.40$x.30$x.20_note_10$d.110$x.10$d.100@PlPo82PyO-cPI^QIRI@PhP'P`PJ@ipA%5P00@xx%%0P( @H%@8h %3@%UXPP@x%E`P@@%|hPaj@h%Q`@%U0LoIZ0V0V@@0%q@[ h$h ' u=(