ELF@@!?#^{C3_WO A8BBRR> uA!C 4@!c4`Bh @ sw`bh@"ub@!#R`7|  jRuw{{y2`w6`w:`BRh>`xyv`xz`x~`bRh`!BV A!`@!v"@wT@1AT@A8B_ AT*3@OIWH_G{E^_#___R`Bw [^^R`buU `@!*v@!#R6 R@tr!#R6tB@v* Tv@b*B!*?BTc4R `@!sa@RR*fscs`$!*?#^{ `sV@``b `nA`"`A`Bs*B @*{¨^_#_?#^{Cg_WOA8Buth\u@ v"`[ aR,1T@RRA8B@  TOEWD_CgB{A^_#_vB`[aR4,1AT`5@h5@!@4 @!huZ `"zAh@hvB6MRxB!#R6!#R6zb!#R6bDwBcD|6* w cDp6*@!*uh6**R5RVu92u9`.2@b"R`Z!@@!@!?#^{Cg_WOA8B"ѳѸSѶTN94|u2hD(4`BhD4R 7 @R7 qT@q,T@bR8RA8B@ !TOEWD_CgB{A^_#_*@@!**@@!*x@zByDdD!***wv$@@@!B$@@@!Bq*T?#^{WOsu@5@b B @tu@@q #!*b@s@`@q*h6"@**7OB RWA{è^_#_֟$t@@!?#^{ g_WO*`"h @`Qh6@R~~RӢ6! 7" @QqT  *yS@qT9Rfi@Q}~6@h@@?kT9@QkT`*OEWD_CgB @{ƨ^_#_**`@?#^{og_ W O A8B@Z@ZR94xCaR4*7*CaR*47****|_**jf_CR7 ո_H7CR7 ը_(J72 qAkTC"AQ%qBTJ(2ȎAkT*H@kmT"AQ%q>TJ(2ȎAkTC*CA:)QqT6Ak TqT;R*3Y@(Qq8TJ(ܺAkTQqKTAkjTq!TD^kT;)*@AkjT qT[R-*6@@!*b;RAk T qTHR Ak*TqAT{R(R^kTBbqTD^6KAk Tq!T.+AkT qATVR6RrDkT@^ k觟*TqT'})AC^ kJT qT|)7@)o)@7@)o)@*6*kØ–~Dk!T^kT]khT1@YB*B@R*]^AkT**(!*]z)|)!3@^ ^#@@!#R@"~@[RAkTqThR#AkTqTvRC(R^AkTqTRHRVR/A^ kTqTO{RAkTqTRAk TqTRHR)"AkTq TR]vhRvRA^ kTqT.Rc"AkTqTR"AkTqTRhRRR"A^ kTq TRR@*@*@*ԟ$@@_!B_ط6@*ԟ$7@@_!B_(6**h@9h4** A8B_ aTOKWJ_IgHoG{F^_#_$b@9!*@*@*@*?#^{ _WOut@t `hAQqBTuJ5v"AhD R!#R K~@`Bt*B@R***yODWC_B @{Ũ^_#_@*?#^{Cg_WO**``t~DxAk7v7`h@ [)@kTvu@*kT ?$!B**3vhD!#Ra@kˆK~@`Bu*B@R***`"z`@OEWD_CgB{A^_#_?#^{og_ W O A8*B*`ZhZR9h4`tAk7u7`h@V)@``"``@*``@**`h~D_k*TC*h6**&`hD飐Ri=r}}) e C*7`b ` tnAhBY(`"@`RtAhCY(@`w@7CAR@7 ո_`Kx@CAR7 չ_KkTkkTg^ԐR;rxh~DC^ K*7tDkTKh Q }k T* *kJTKh Q  }(  kH `k[È^y@h~D!#RK}@`By*BZZ@tDh~DC^*K3^R#***]+ `"{`@A8B_ aTOKWJ_IgHoG{F^_#_*@@!*c*@@!*aԐR!**$r*$@@_!B5$@@_!B1$ը *!B]**]T?#^{_WOA8B*@RRRR94VVR94@Rׂآ@@H@C*4* S$!D@RW@w@**t7 $!**@#*4* $!**Wq T *) +yJ @֟$~$$@$L$@$@$A$@$@$6$ @$@4 @q$@w$d$$@m$ l$!*c$Y$J$G$@ @5 Q$2@ @B؎=qCTȒ ?9qTiRI r  } IJf fV  ~  # 2$$@ @kaT' $$@ @!*$$@ @( q} $$@ @ k5*A8B_ ! T*@OFWE_D{B^_#_֟$2@ @B؎=qTȒ ?9qTiRI r  } IJf fX  ) (# $@$@  q}*** @kaT ի$@ @!?#^{CWOA8B*`@R`RhRR9(4`VhVR94`@RqTqAT* `@RUA8B@ T*OCWB{A^_#_`v@@ R`7*`v@@ R 7*@`ZqtZ9@bR7* յ$!R*@@!***@@!**$@@@!B$@@@!B?#^{ *q @{¨^_#_?#C^{C_WOA8*B*~t~hDkT`hDkT.kUZ%qT`u@(Ru AR7`u@(R5 AR7`xwA8B@ TODWC_B{A^_C#_*@@!**@@!*$@@@!B$@@@!B?#^{ `bsN@`@R`VV9`@R @*{¨^_#_?#^{ `bsN@`@R`V(RhV9`@R @*{¨^_#_?#^{!{^_#_?#^{{^_#_DP\xld8h(TDpgoogle,dual_batt_gaugedescription=Google Dual Gauge Driverauthor=Jenny Ho license=GPLvermagic=5.10.177-android13-4-gebc441967af0-ab11066595 SMP preempt mod_unload modversions aarch64name=google_dual_batt_gaugedepends=gvotable,google-bms,logbufferalias=of:N*T*Cgoogle,dual_batt_gaugealias=of:N*T*Cgoogle,dual_batt_gaugeC*scmversion=ga9fbd11f076c.3 Jgoogle,vsec-offset3google_dual_batt_gauge: cannot read chg-pack-cc-limits table, ret=%d %s: battery OC base:%d/%d sec:%d/%d cc_offset:%d->%d cc_max:%d (%d/%d)gdbatt_get_propertygdbatt_ov_handlergetting unsupported property: %d 6google_dual_batt_gauge: failed to get "%s" power supply, retrying... error %d reading first fg prop %d case %d not align: %d/%d6google_dual_batt_gauge: google,first-fg-psy-name=%s 6google_dual_batt_gauge: %s: temp:%d/%d(%d/%d), vbatt:%d/%d(%d/%d), cc_max:%d/%d(%d) 3google_dual_batt_gauge: %s: invalid params, %d, %d, %d PRESENT different: %d/%d3google_dual_batt_gauge: failed to set %s for '%s', ret=%d 6google_dual_batt_gauge: google_dual_batt_gauge_probe done 4google_dual_batt_gauge: base battery not present, no default capacity, zero charge table name=%s evt=%lu google_dual_batt_gauge: error %d reading second fg prop %d google,dual_batt_gaugeerror %d reading single prop %d google_dual_batt_gauge: error %d reading single prop %d google_dual_batt_gauge: Couldn't set vsec_offset (%d) MSC_FVgdbatt_check_currentgoogle_dual_batt_gauge: gdbatt: set_prop cannot write psp=%d google,second-fg-psy-nameSecond battery not PRESENT %s: battery OV cc_max:%d->%d (%d)gdbatt_ov_last_tiererror %d reading second fg prop %d Couldn't create debugfs, (%ld) google,batterygoogle,chg-base-battery-capacityPOWER_SUPPLY_PROP_CURRENT_AVGgoogle_dual_batt_gauge: get %s for '%s' => %d %s: skip ov for tier %d/%dget %s for '%s' => %d google,cc-balance-ratiogoogle_dual_batt_gauge: name=%s evt=%lu ../google-modules/bms/google_psy.hgoogle_dual_batt_gauge_probe%s: battery over max fv:%d->%d%s: %d, %d, %dgpsy_set_propdebug_leveldual_batt_balancegoogle_dual_batt_gauge: case %d not align: %d/%d6google_dual_batt_gauge: google,second-fg-psy-name=%s fail to init chg profile (%d) POWER_SUPPLY_PROP_VOLTAGE_NOWGBMS_PROP_FG_REG_LOGGINGdual_battpsp3google_dual_batt_gauge: Cannot set the first BATT_CE_CTRL, ret=%d failed to get "%s" power supply, retrying... 4google_dual_batt_gauge: secondary battery not present, no default capacity, zero charge table ../google-modules/bms/google_dual_batt_gauge.cgoogle,vfloat-offset-max-idxCouldn't register logbuffer, (%ld) 4google_dual_batt_gauge: battery not present, no default capacity, zero charge table daul_batt_tempgoogle_dual_batt_gauge: getting unsupported property: %d google,psy-type-unknownFirst battery not PRESENT dualbattgoogle,first-fg-psy-nameupdate base_charge_full:%d->%d, sec_charge_full:%d->%d %s: battery OV v_base:%d, v_sec:%d3google_dual_batt_gauge: failed to get %s from '%s', ret=%d gpsy_get_propgoogle,chg-pack-cc-limitsset %s for '%s' to %d google_dual_batt_gauge: set %s for '%s' to %d &dual_fg_drv->fg_lockCouldn't register as power supply, ret=%d gdbatt_select_cc_maxgoogle_dual_batt_gauge: check done. cable_in=%d (%d) 3google_dual_batt_gauge: cannot register power supply notifer (%d) gdbatt_set_propertyCouldn't set vsec_offset (%d) MSC_FCCgoogle_dual_batt_gauge: %s: %d, %d, %dgoogle,chg-battery-capacitygoogle_dual_batt_gauge: PRESENT different: %d/%dgoogle,chg-sec-battery-capacitycheck done. cable_in=%d (%d) google_dual_batt_gauge_init_work done google_dual_batt_gauge: %s: skip ov for tier %d/%dpsy_changedPOWER_SUPPLY_PROP_CHARGE_FULL_DESIGNgoogle_dual_batt_gauge: error %d reading first fg prop %d 3google_dual_batt_gauge: no dual gauge setting gdbatt_oc_cc_offset3google_dual_batt_gauge: Cannot set the second BATT_CE_CTRL, ret=%d google_dual_batt_gaugegoogle_dual_battgdbatt: set_prop cannot write psp=%d x C"5F!sLinuxgoogle_dual_batt_gaugelumodule_layoutf=power_supply_set_property)__pm_runtime_idleڗ,__pm_runtime_resumeLBpower_supply_get_drvdata$bgvotable_cast_vote۔ogbms_logbuffer_prlogvLgvotable_election_get_handlegbms_msc_temp_idxE:#__kmalloc~)Hmemcpycpower_supply_changedZ%strcmphmutex_unlocks}=F__hwasan_load1_noabortemutex_lock!rmod_delayed_work_on__hwasan_store1_noabort bpower_supply_reg_notifier\#gbms_init_chg_tablet_A__hwasan_load4_noabort]gbms_init_chg_profile_internal|;^3of_find_node_by_name.ێ&_dev_infoU power_supply_get_propertyB>power_supply_get_by_name Ylogbuffer_unregister zkfreeL,gbms_free_chg_profile {{__dynamic_pr_debug__stack_chk_failWqueue_delayed_work_onӅ3-system_wq 6 debugfs_create_u32xwdebugfs_create_dirwologbuffer_registerYP_dev_err8kdevm_kstrdupprintk`<;devm_power_supply_registerof_find_propertywJW__mutex_initYyinit_timer_key=:%delayed_work_timer_fn__hwasan_store4_noabortC60of_property_read_variable_u32_array[_|of_property_read_stringh'J__hwasan_load8_noabort\__hwasan_store8_noabort.3odevm_kmalloccplatform_driver_unregisterhZ __platform_driver_register1[__sanitizer_cov_trace_pcGNUd$ʞuY'GNU4|\hx|y y |ytyt||||yy |4H\htx|``` ` y gy g $(y_ 0y_ <D|HeLeT`|hlete||ynyn(|0y8y<LXd|l|t||y y yy||y~y~|| ym$ym(8H|P\`yhypx|y y |yeXyeX|yy yy$|0|<|@y? Hy? PX|\f`ydfhyp|||8|LX|dx|(8L\|d|x|yy|||||yy|| y$y$ ,8DTy Xy dl|x|y y |yy|y3y3|yy|y; y;   | y$ y( 0 |8 H T t |  |  y y   ` `  | yG yG  |  ( 4 8 @ H \ d h yy p yy t | |   y y  | |  yw yw    $ |0 < L T x   | | | |   |   $ , l |t   y y y y  |   y y y y  |    y  y $ , 8 D L |T ` d fh yrl y x f| yr y  |   f yr y f yr y  | 4@|HT`p|x||||||| |(48f8<yDf8HyP|y[ y[  4Lhx|||||||$|(y0y4<DL||| |4|<|L|`|h|||$|4|@L\|h|||| |8H|`x||||||y y6 y y6 |,|<T|d||||||| $|0|<Pt|||||||0X|lxy |y |eXeXy y y y ||$|,|48y@yPXy\y `yly y y || $|0|D\|h|t||||||0|@|L|\x|||||||$|0|@|H|P|\|dptfxyr|y6fyry6|||fyry6fyry6|||px|fpy fpy |||||yy |(<|HXdylyeXeXyTyyTy||8|@Ph|p||||fy yfy yy y |(0y4yX`deXleXtxy|yyy|0 |8 L d |l   |    y y    |  !|!|,!|4!d!|l!x!!!!!!!!"8"|P"h""|"|"|"|"##y#y(#0#4#eX<#eXD#P#\#d#y[l#y!t#y[|#y!####$| $|0$|8$D$H$y L$yTT$y X$yT`$l$|t$$$y $yT$y $yT$$|$y$yp $y$yp $$$|$$$f$yr$yT%f %yr%yT% %|(%4%8%f<%yr@%yTL%fP%yrT%yTX%l%|p%ft%y x%yp |%f%y %yp %%|%%%&&$&0&<&L&d&l&|&&|&fP&y &fP&y &|&|&&&|&|&&'| ''|('4'<'|D'|T'|X'fh\'y`'fhd'yp'|'''|'f'y6'f'y6''|'|''c'c (|(|$(|4(|@(|P(|`(|l(||(|(|(|((|(|(|(|(| )|)| )f0$)y% ()f0,)y% 4)@)|L)|X)|d)|)))|)|*|*$*|,*|<*|@*fD*yL*fT*y\*h*|t*|*|*|**+(+p+|+|+|+|+|++|+,|,| ,|$,f(,y 0,f8,y <,D,|,|,,,,,,,,|,|,|,-H-X-t-|-|-|-|----|-|--.. . .(.|4.|D.|H.fL.y6P.fT.y6\.h.|p.|..yO.yw.yO.yw..y{.y{..|...yO.yw.yO.yw..y .y ../| ///f /y $/yw0/f4/y 8/yw8KP {^  xB 8u0~h hX<xX \` D: 8 O  0884 0 @ PoL`p84p 8  !q   " 8i"I%P8}& h8L't 8 'k  08 )%8c4**/d8w, H,@ 8n h-  R - 0w 8<./8]@p0qP 0$2tm2x %z %( M h   rL \@  Tc zYb YIG @ &\%"'vIO8-[ 0F !u]@avX 1+/B9UPhnS&Z]Ci .note.gnu.property.note.Linux.rela.exit.text.rela.init.text.rela.text.comment.init.plt.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.rela.rodata.rela.data.rodata.str1.1power_supply_set_propertygdbatt_set_propertypower_supply_get_propertygdbatt_get_propertyof_find_propertymemcpyinit_timer_keygoogle_dual_batt_gauge_probe.__keyof_property_read_variable_u32_arraygbms_msc_temp_idxgdbatt_select_cc_max__hwasan_store8_noabort__hwasan_load8_noabort__hwasan_store4_noabort__hwasan_load4_noabort__hwasan_store1_noabort__hwasan_load1_noabortgdbatt_check_current__mutex_initgdbatt_fg_propsgoogle_dual_batt_pm_ops____versions_dev_errdebugfs_create_dirgoogle_dual_batt_gauge_driverplatform_driver_unregisterlogbuffer_unregisterdevm_power_supply_register__platform_driver_registerlogbuffer_registergdbatt_ov_handlergdbatt_ov_last_tierpower_supply_reg_notifiersystem_wqdevm_kstrdupstrcmp_dev_infoqueue_delayed_work_onmod_delayed_work_ondelayed_work_timer_fn__stack_chk_failgbms_init_chg_profile_internalprintkgoogle_dual_batt_workgoogle_dual_batt_gauge_init_workmutex_unlockmutex_lockgoogle_dual_batt_gauge_of_match__dynamic_pr_debuggbms_logbuffer_prlogdebug_printk_prlogof_property_read_stringgdbatt_fg_logginggoogle_dual_batt_gauge_removegvotable_cast_votegoogle_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_profilegvotable_election_get_handle__pm_runtime_idlegbms_init_chg_table__mod_of__google_dual_batt_gauge_of_match_device_tablegdbatt_property_is_writeablekfreegoogle_dual_batt_gauge_probegoogle_dual_batt_pm_suspendpsy_changedpower_supply_changedgdbatt_psy_desc__sanitizer_cov_trace_pcdevm_kmalloc__kmallocpower_supply_get_drvdata__UNIQUE_ID_scmversion269$d.59$d.49$d.39$x.29__UNIQUE_ID_description319$x.19gdbatt_get_property.__UNIQUE_ID_ddebug309$x.9__UNIQUE_ID_alias268$x.48$d.38$d.28$d.18gdbatt_get_property.__UNIQUE_ID_ddebug308$d.8_note_7__UNIQUE_ID_alias267$d.47$x.37$x.27$x.17gdbatt_get_property.__UNIQUE_ID_ddebug307$x.7__UNIQUE_ID_depends266$x.46$d.36$d.26google_dual_batt_gauge_probe.__UNIQUE_ID_ddebug316$d.16gdbatt_get_property.__UNIQUE_ID_ddebug306$d.6__UNIQUE_ID_name265$d.45$x.35$x.25$x.15$x.5__UNIQUE_ID_vermagic264$x.44$d.34$d.24psy_changed.__UNIQUE_ID_ddebug314$d.14gdbatt_select_cc_max.__UNIQUE_ID_ddebug304$d.4$d.53$d.43$x.33$x.23$x.13gdbatt_ov_handler.__UNIQUE_ID_ddebug303$x.3$d.3$d.52$x.42debugfs_create_u32$d.32$d.22gdbatt_set_property.__UNIQUE_ID_ddebug312$d.12gdbatt_oc_cc_offset.__UNIQUE_ID_ddebug302$x.2$d.2$d.51$d.41$x.31__UNIQUE_ID_license321$x.21gdbatt_get_property.__UNIQUE_ID_ddebug311$x.11gpsy_get_prop.__UNIQUE_ID_ddebug301$x.1$d.1$d.50$x.40$d.30__UNIQUE_ID_author320$d.20gdbatt_get_property.__UNIQUE_ID_ddebug310$d.10gpsy_set_prop.__UNIQUE_ID_ddebug300@`YTE3@@`a5480@%40 @` @0 5h@( n:b+;&@12=K@@^NK0Lo<NO@@0cS@ @`$h` w {@