ELF@@(&/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, %dgoogle_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_propertygoogle,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_property6google_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-name6google_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@CRR>@A!Cu 4A!c@ 4h@hh@HuA!#Rq6 jR{{h`bh:h>RhBh )`Rwzh~hi`!BA! ``@!?`T_1T@__R`` ^^R`sA8C_ !T*3@OHWG{EC#_`@!vRA!#R`6 RvA!#R@6vA!#R`6HRvA!#R`6w#A!#Rv#@6A!#R@6?`rT`@!rh@!4h@!?bTc4Rc#4R4R4R`@!RR@*h! c?#{ @``"`A`B`rC@ @*{¨#_Vn?#{@h{#_ֶ`?#C{WOA8C\u\5v\CR 7 @<`[ #aR`,1T @*5`Y!`[@ #aR`,1 T @*h4u\*CR `7 @6@*!@*u*T7V6RR@A8C_ aTODWC{BC#_`Y!bFdF**!tvhh@h hYtBA 6K@*!@*6`Y!b[a[bb!#R6br!#R6b!#R6bF` cF* 7`cFq6`Y!`hB6* RtiJҨIi`bA Ru}ɛK~zvrn2.*&" a Rv:( R b"Rhz y!@`Y!*`Y!@@!@B@@!@B`?#{og_ W O A8CX94xs R{`QRhX9(4hX94`QRhX94hShhT(vR`CR*7 ը_hiJҨIiu}ɛKhCy`S6bBc d5*7`Tbbcd,* 75`@R8hX94ws7CR 4*`7*CR*447*-*_vhX95`F@*"*`J@* R8R@A8C_ CTOKWJ_IgHoG{F#_ֺ_CR#7 շ_W7CR$7 ո_87hFF|bh7k˜#*{*@!*@~@*hhBF R)K}(!飐Ri=r}) e h@k,Ti@)Q?%q9TiK))A?kjT  *`Td*h@k,Th@Q%q6ThK(AkT***`@Q)qB4ThK(AkT* *k@hQ%q2ThK(Ak Th:F*Kh>F**kT****^Ch7Y7h@iVB^Q) i@e i@]?#*#_+Df?#C{_WOCA8C*@RȒ\9(4Ȗ\94@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*@R\9(4\94@RhQaqh T )* +yJ @֗@ @ !R* 6@!*@*I@RVA8C@ T*@ODWC{AC#_֗@w@ !R*@6@!*@* Ֆ*@@ !R6@*!@**+*@w@ !R*7@q9h4 RhJ Ih(}țKӈnR@v7* Ւ!*@!*@*!B*s@!B@*P@!B@*o@!B@*@!B@*t)?#(R?q$Hz#_?# H*?qT? qT*#_ *Q_A1T! Q_=1"TjRJ r)}*}*+)f) f *} ) @ #_H q}#_?#{_WOCA8ժRC**4|U| H8G?qXkTi>G?kTKh5h>G4?q(WZkTx@(R R 7x@(R R7hHt:u>4iHI4qCTq TkHR$@z*q(RbH_kTA8C@ TOEWD_C{A@#_`@!***v`@!****@*!@@*!@@!B@$R@!B@$R\C?#{WOJGRGNG(  +aTR*|@HHH(  +T" R* OBWA{è#_?#{ WO @9q T RiJIiA R" }ɛKӟfb^ZVRNJFB>:62.*&" a Rn @OCWB{Ĩ#__eE??#{ @R`@`@R9 @*{¨#__eE??#{ @R`@(R`@Rh9 @*{¨#_ű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_gaugec__platform_driver_registerMcplatform_driver_unregister@devm_kmallocof_property_read_strings:of_property_read_variable_u32_array=:%delayed_work_timer_fnYyinit_timer_keyq__mutex_initsof_find_property;(;devm_power_supply_register~_printkӷdevm_kstrdup:*_dev_errwologbuffer_register#device_create_fileQ7debugfs_create_dirJ6mdebugfs_create_u32Ӆ3-system_wqWqueue_delayed_work_onғ__stack_chk_faileb,__dynamic_pr_debugÁkpower_supply_unreg_notifier/gHgbms_free_chg_profile zkfree Ylogbuffer_unregistergbms_get_propertyv\power_supply_get_by_name!power_supply_get_property@~_dev_infoB7 of_find_node_by_nameqgbms_init_chg_profile_internal 7gbms_init_chg_table bpower_supply_reg_notifierktime_get_with_offset{mutex_lockC jgbms_tier_stats_initUmutex_unlock!rmod_delayed_work_onG__pm_runtime_resumeC 0__pm_runtime_idle$bgvotable_cast_vote_gbms_msc_temp_idx۔ogbms_logbuffer_prlogvLgvotable_election_get_handleհpower_supply_changedZ%strcmp~)HmemcpyE:#__kmallocgbms_stats_update_tier#;power_supply_get_drvdataJgbms_set_propertyG)gbms_tier_stats_cstrmodule_layoutGNU8gY {GNUTd*h*t| | @@$ ( PX \ `dhpt\V`Vdp t - - 66  4DD HD XdYhYl( ( ffp p (((,0@LPX\lpx | ,  Px| ''$<@Phlpt  CCF F  (0? 4? 8H              $ 8 @ 8D 8L P X \ ` l 8p 8x |       0 4 8 X    0 X  U U     0 T       Y Y    @ D Ld 660UU    $ (LUPUltx|^ ^ (,048x<xDTX\lUpUiixxpHULU\`p t x    ,p0p48HT`dhYlYt55YY88^ ^ 88^ ^ 88 $,04@8D8LPX\`hPlPptx|,LpPpTb Xb d  pDtDx(H 77 $(O ,O 8HLP%T%`d h p|887788O O 88%%<<@x|hh00  $ ,48<@H   < <0 P |            !8!8!!$!(!,!P!l!p!t!x!!!!!!!!8!8!!!!!!!!!!"8"8""" "$"""H"H"w"w" " "4#D#`#p#0t#0#######G#G##X$h$l$p$t$$$$$$$$$$$$6$6%4%H%d%%%%%%(%(%%%%%%%%%[%[& &&&&& &q $&q ,&<&@&D&,H&,L&P&\&h&l&p&,t&,x&|&&&&&,&,&&&&&&,&,&&&T(|()),)<)@)T)d)h)l)p)x)))))))))),),)))))),),))) *0*d****++,,,d,t,,, (< ` X$h (`0d 4|8@ D\HP8 TX``\ dh`p t(x@x`<`4hxH0`h``H0 l$t( 048@DHXP T!X`` d hp\ td x` !` !\!"`d!l!8""p#8&D$d&$&$& %& %$%(P0D(4)8@l(D)HH,,H,,H,,w**0 @X( (t0T8hh|p#x&<8@HPRpx;cR x(0wPX`h| |  | 08| @Hhp| xg| 9   ( HP X`  9  Z q z(0q 8@Android (10087095, +pgo, +bolt, +lto, -mlgo, based on r487747c) clang version 17.0.2 (https://android.googlesource.com/toolchain/llvm-project d9f89f4d16663d5012e5c09495f3b30ece3d2362) %Iadg A)-5<MSV]ZPmy|t J   Z S3  =8D@T l HX2f (=   <M @& o 88  7\Nl$% P 0 08 h | @ 8@   P < `*`  dp8J$*  | 3  ? P8 8$p8D$  4  l  Htlp ta 8> 1 8 L  8    8i p'f0 h8 @08  T P Th d h\|9 x`|P ` 8  [ p `   ~ 8Z `! 8 h!+ vH8 "s'T# # # 8T#pH$x  8 $ z $O  $% U (8N%+&7&&l0C H( @ p(#*S *, ** **pH,D=D,+H,,H_,6 ,O     %F d %(8 M  (  0<9 J V Ya Y   !@ _ ! &r%:'I!U :%,1h?$[c4uM +y kM8c.VAA3.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_unlockmutex_lockgoogle_dual_batt_gauge_of_match__dynamic_pr_debuggbms_logbuffer_prlogdebug_printk_prlogof_property_read_stringgdbatt_fg_logginggoogle_dual_batt_gauge_removegvotable_cast_votedbatt_stats_storegoogle_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_suspendpsy_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.29$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.117$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.115$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.113$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@Plo82PO,cG^GG@PhP'P`PJ@i?%5P00@Ȩx%%0P( @@H%@h %3@%UXPP@ȴ%E`P@@%|hPaj@h%Q`@`%U0LoT0V0V@@0%q[@ h$h   x' u s