ELF@@(&.3 JhP@hh00000PPPgoogle,dual_batt_gaugedual_batt_balancegoogle_dual_batt_gauge: get %s for '%s' => %d getting 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 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_gaugegoogle_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 &(&dual_fg_drv->gdbatt_work)->timerdebug_level6google_dual_batt_gauge: google_dual_batt_gauge_probe done failed to get "%s" power supply, retrying... google,second-fg-psy-nameMSC_FVdualbattgoogle,dual_batt_gaugePOWER_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) google,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)gpsy_set_propgoogle,chg-battery-capacitygoogle_dual_batt_gauge: name=%s evt=%lu gdbatt_check_currentCouldn't create debugfs, (%ld) First battery not PRESENT fail to init chg profile (%d) 3google_dual_batt_gauge: cannot read chg-pack-cc-limits table, ret=%d name=%s evt=%lu ../private/google-modules/bms/google_psy.hgoogle_dual_batt_gauge: error %d reading single prop %d %s: battery OV cc_max:%d->%d (%d)get %s for '%s' => %d POWER_SUPPLY_PROP_CHARGE_FULL_DESIGNdaul_batt_tempgoogle,psy-type-unknowngoogle_dual_battSecond battery not PRESENT %s: skip ov for tier %d/%dgoogle,vfloat-offset-max-idx4google_dual_batt_gauge: battery not present, no default capacity, zero charge table google,first-fg-psy-name(work_completion)(&(&dual_fg_drv->init_work)->work)6google_dual_batt_gauge: failed to get "%s" power supply, retrying... gdbatt_set_property6google_dual_batt_gauge: google,second-fg-psy-name=%s google,chg-base-battery-capacitygoogle_dual_batt_gauge: error %d reading first fg prop %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-offset&dual_fg_drv->fg_lockgoogle_dual_batt_gauge: error %d reading second fg prop %d google_dual_batt_gauge: PRESENT different: %d/%dgoogle_dual_batt_gauge_probedual_batt../private/google-modules/bms/google_dual_batt_gauge.cgoogle,chg-sec-battery-capacitycase %d not align: %d/%dCouldn't register logbuffer, (%ld) gpsy_get_prop3google_dual_batt_gauge: cannot register power supply notifer (%d) gdbatt_ov_handler3google_dual_batt_gauge: failed to get %s from '%s', ret=%d MSC_FCC%s: battery over max fv:%d->%d?#Ո(Q!(Th=ҨL5^-T=ҨL5^ T葐UT2H#TQ׉H T׉H @T((rT[haT6@(H(/`T(ȭt(T(Q!(T҈$ȇhVT( ȓ #T# ?!T#_?#{@9qT{#_ )+ih8J @@*?#C{_WOCA8@%CRR>^B!Cu@4^B!c4h @hh@ub^B!#Rq6 jRu*{z`!B****wrh`cRhvhzx~`"*`!B****whB `cRhhi`!B^B!V ``@!?`T_1T@__R` ^^R` sA8%C_  T*OHWG_F{EC#_`@!v^B!#R`6 R^Btr!#R@6?`T`@!@_?Tc4R`@!RR@*!5?#{ T@` `B`B`B@ @*{¨#_?#{ L@R`@`@RV9 @*{¨#_?#{ L@R`@(R`@RhV9 @*{¨#_?#{WOCA8%CThT`SaR`,1aTRR@A8%C@ TOCWB{A#_`S@aR`,1T@*5`R!aS@*5`R!!hh&AhRtBUB`65bB!#R6bR!#R6bb!#R6bD`B cD* 7`cDq6`R!`h^6*( Ri bRh y?A@`R!o`R!bSc?#C{og _ W O A8%C`*7@@h2P9 4 v h:P9u"(4;@@[CaR@4*7*CaR* 487H*_Zh:P959`v@*`z@* hDh4h D5CR` 7 ո_CR 7 qT_q TR8R@A8%C_ BTOLWK_JgIoH{GC#_֨_CR7 ջ_7CR7 ժ})7 hA?qz,C k,TiA)Q?%qBTJ))B? k*T(@*!@*@*!@@!bDd D**xv ^*]**hA^Ck,ThAQ%q<TJ(BkjT* *C]**h.A Q?qTk2A} kjTC^?qaT.RJ)*JB k-T9*C^?q7TJ)JB kT* kT/?qTk2A kT?qTk6A kJT? qTk:A kToR? q`Tk>A k累 kT* kmT*h@l6A k T? qTNR* kT-R4/R k T*/H@*@! .Rl:A kJ$T? q$TnROR kLT?qTkDj2A K_ kJT?q Tl6A k T? q`!Tl:A k !TmR? q Tl>A kI*7 9j@Zi*7 9j@Ui*iC_k [ kTkHTkTi:P9]47?k%h%i@*h?**`v@9)`v ]`A@R*C^ **h.A*k]T*-RkD kT_k?q`T_k*Tj6A_k*T? qTj:A_kTmR? qTi>A?k*_kCKThC飐Ri=r} }) e CCK7hBiCj*A9 )9 kAHhii**:@#=)CAR7 ջ_@KCAR7 պ_ })K_kkTkTiCԐRC^j*(r< Kj7_k*TiK  )Q) $}$!*\!C] })*C^* ]#`v@b@!#Rh{@g*iCkT*K  JQJ E}* ( _ k hC_kU`v@!K#R}@iCC^*`A@hC)K3C]R*^^+# hu@]MRGNRMRl>A kT?q! TR *H@!*@k*@!*@lnRsԐR!$r*b:P9!*hDȷ5@_!@B@_!@Bq*ThBA kJT?q@*h@_!@B_{6H@_!@B})6sH@_!@B@_!@B!B*G?#{WOA8%C*@RRW9H4VW94@R"B *@C*4* ,!@RW*@`@**T6 ՠ!**@#*4* Wqh T* ) +yJ @@~@ @( y@ @( q}q@ @ kk@ @ k T d@ @!*[ @XE@ @KQA1( TElQ=1TlRL rJ},k},LJfJ lkfk I} h%i  > <!*5@ @q$@z kT +@ @!#E@ @ Q?A1TE*Q_=1BTjRJ r}*)}* f *)f) }( *)H  H q}*A8%C_ !TOE*WD{B@#_!**Z?#{WOCA8%C*@RRW94VW9H4@Rq@Tq T(@RU#@6d@ R7*@Vd@ R`7*h@ "Rq!@Z97*A8%C@ T*OCWB{A#_ !R@*!@**@@*!@**@!B@@!B@?#?q#_?#{WOCA8%C6|U|EkThEk`TkUZ)qTt@(R AR7t@(R AR7vuA8%C@ !TOCWB{A#_ֈ@*!@@*!@@!B@$R@!B@$R?#{WO\A`^hBQqThJ(iE!#RBR6 K~@`B@R***vOBWA{è#_@*?#C{WOCB)*E?k$* 7iA6hkT .!B&*kT`ZA`ZhE!#Ra@kK~@`B@R***`@wODWC{A@C#_?#{WOH@I4@R*Q} ~~R`6!7k @hQq+T  *)ySj6@lQ k T_qkT* - l6@kJ}~ij-} i*j6@ kTk @*`OBWA{è#_*`6@6?#{ Oa"@@ h"@@@q*h@@@q**qThB@OB R @{è#_ֈ@!@?#{!{#_?#{{#_description=Google Dual Gauge Driverauthor=Jenny Ho license=GPLvermagic=5.15.110-android14-11-gcc48824eebe8-ab11075071 SMP preempt mod_unload modversions aarch64name=google_dual_batt_gaugedepends=logbuffer,google-bms,gvotablealias=of:N*T*Cgoogle,dual_batt_gaugealias=of:N*T*Cgoogle,dual_batt_gaugeC*scmversion=g5f4e38ec3244x C"5F!sLinuxLinuxgoogle_dual_batt_gauge떎module_layout~)Hmemcpyғ__stack_chk_failӅ3-system_wqiLz__ubsan_handle_cfi_check_fail_abort)VW9platform_driver_unregister Ylogbuffer_unregisterL,gbms_free_chg_profile}?queue_delayed_work_onXJ8>power_supply_set_propertyG__pm_runtime_idlex__pm_runtime_resume]power_supply_get_drvdata[Үof_find_property$bgvotable_cast_votegbms_msc_temp_idxvLgvotable_election_get_handle۔ogbms_logbuffer_prlogmutex_unlock{f8emutex_lock_nestedmod_delayed_work_onjpower_supply_changedZ%strcmpE:#__kmalloc zkfree=Wgbms_init_chg_table4pgbms_init_chg_profile_internalcRof_find_node_by_name bpower_supply_reg_notifier0power_supply_get_property[(_dev_info6;power_supply_get_by_name%}Ԇlockdep_init_map_typeN9of_property_read_variable_u32_arrayPdevm_kmallocÀQ-debugfs_create_u32ˌdebugfs_create_dirwologbuffer_register^^_dev_errFDdevm_power_supply_registerh˽__mutex_initdelayed_work_timer_fn4Kinit_timer_key+Db__init_work {{__dynamic_pr_debugbTRBdevm_kstrdup~_printkϳSof_property_read_stringg?L__platform_driver_registerGNU ]PrQ!sGNUt--  mmFF 8< !@ !H$!L$!T X \`x    00@@YY$(04<dhl|l l 04DP T Xptxqq  ``     <DLX@T`pt  zz 04@X!\!l{ { ttaa     <  P  T  X ` 8!d 8!l x |         R R  , h      ( H h x |    ` #d #h %l %x  # # % %     8 ##  aa`2 2 ` @H$8d  2 2 ,J0J8H`& & `  (##AA##AA  pp  $(04<%@%DPT\`h%l%p     AA ,08<DAHALTX\`d h pPP /$/4Plxhh  tx8800$X\dhl<@DHLX4DXd66jj jj$(,4<DHLPTX`lptx|DjjTTjjTTTT TTD H Lpt`ii@@`<@DOHOLPTpatax`  `DP` d t /  /   |    8 8   !| ! !