ELF@@ _N N { WORlR(r `fA"#R@ 7@9H 7B  {{  R 26:> R"Nt^*`4*w*^*OCWB @{Ĩ_@{O\@B ^OA*{¨_{WO @@^@R!r"R&7b R**b R*OBWA{è_C{_WOC@  )\@ (@9*ԪA*7R*R^*2 ZRRbߖy~ؒ @)@?!TODWC_B{AC_**@{WO\@abH@h?@4*'h@ 9?q}h h@ 9?q}h?` T*ҕ^@@(T$RAb 4RAr 4RA$R tb R*uBhtth:h>6utR ut R*ubhtrtvhh6uvturuv@v6vvt!R R(rR`!R R(rR``*`Au*OBWA{è_{ O\@`A`B6i"M(  Ҵ`btV 6iY( `t6i_( `At`AOB @{è_{ WOC@!RBR\@ 7h^@RA R*b 9)R 337_cA67[3*7 @ @RRr @ RRR**BR**BR** _)@?T*OOWN{M_{\@ @*{_C{WO@  (@9\@* 7QAqH T +ih8J @BR*9*@6!RBR+*6*t^@@9' (7@ @*6 @W *@6h^@2@ @ @W@97"R*6*@96*  B.A6u^@R!r"R6*b RR*HBRB@qlT.Ah6@B.AH6Ղ "R54@9H 7*    *"  _)@? T*ODWC{BC_ R*@@*#{og_WO@ \@ 4C _q**X#SBc7#57    r$?S@9$7 _)@?(T*OSWR_QgPoO{N_56(/A7 )SB*((S(/A)57z^@)RHA R*b9' ' ' ' ''7#7;cgA6;7@7{^@H[RrvARkR>Racv|hy7h^@)R RA*b9' ' ' ' ''7#7;cgA6;7*7{^@R*RRwAhA*R 9'yhj[ay| 7@9@7 4Ac ROhq(ST*J>qT@" RR*1w^@R!r"R*7b R%*(*b R*** $SB   r %F Zw5{ O@97"R    "OB @{è_ 4@@{ O@97*    "OB @{è_ 4@@{og_WOC#@rTR#@@TR^@*uBh.A7` @T@@4 D@97@@*;44:R4**6B"@*n*7{q9TZ5RkTR:R3rR*4*6AG*7|  9kZ*TB@F@**?qCqT@m_qk T**4>   q (   q#**y   q (   q#**o@]@*`7KV 9@qK T:R4*h*6"@**7sQ9qZT;   q (   q#**   q (   q#**@*OFWE_DgCoB{A_C{_WOC@ \@ (@9AA*7@^ `R(* * ZR'y[RhRy[*4*!R*v @)@?T*ODWC_B{AC_{_WOC@ \@ )@9A** 7^ *2 ZRcy* 6* v @)@?aT*OEWD_C@{A_*@{_WOC )@ \@ I@96A8A** 7^(* `R * ZR??y?N!c6c(*`4*    #vO @)@?aT*OEWD_C@{A_*@{WO(@h*!RBR; 7*M*6   @@ ҿq (q C*"R*6* ***OBWA{è_(@QAqTR(%_ R_?q RT*)R(!Ț )  !T(0Q1qT)R(!) R j@T_*_{ \@" B) B) ?T!Ԡ{_#{_{ g_WOC@h^@ B?AT B?TAR*RHR9@9(8  R* 3b37_cA67W3 _)@?TOQWP_OgN{M_{g_WOuy^@( BT(BT8A7AR*R(R9@9!9?'y8:[?y?4*4* *ODWC_BgA{Ũ_{tA{_{L@ ]@ -A ҿ A B aA QB !1?!1*{_{g_WO@@v^@# h@hCC44UR(rWC)s@9 7"RI7  _)@?TOFWE_DgC{B_u**U@@4*{WO\@BRB@q,T.A7ȂAȆA@HȆAA@?*4@9h6* *OBWA{è_b @R*{O\@Bb @R OA*{¨_ ?aaaaawaqcom,wcd-spi-v2ᆳP   $,048<@DLPTX\%s: Missing %s DT entry&wcd_spi->xfer_mutex&wcd_spi->clk_mutexwdsp_spi_initwcd_spi_transfer_split&x->waitwcd_spi_cmd_rdsrwdsp_spi_event_handler__wcd_spi_data_xferqcom,mem-base-addrwdsp_spi_dload_sectionwdsp_spi_read_sectionwcd_spi_dlkmwcd_spi_clk_ctrlwcd_spi_clk_workwcd_spi_write_multiwcd_spi_read_multiwcd_spimsgtx_bufrx_bufsizewcd_spi_bus_gwritewcd_spi_bus_writexfer_writewcd_spi_data_writestateimmediatewcd_spi_wait_for_resumewcd_spi_write_singlewcd_spi_read_singlewcd_spi_clk_disablewcd_spi_clk_enablespi devicewcd_spi_probe%s: Invalid input, reg_len = %zd, val_len = %zdwcd_spi_component_bindwcd_spi_can_suspendwcd_spi_suspendxfer_invaliddelayeddisabledenabledunlockedwcd_spi_bus_readxfer_readwcd_spi_debugfs_mem_readwcd_spi_data_readtechpack/audio/asoc/codecs/wcd-spi.cwcd-spi-v2%s: addr = 0x%x, size = 0x%zx %s: mem_base_addr 0x%x %s: Failed to read %zu bytes from addr 0x%x %s addr 0x%x is not aligned to 0x%x %s: remote_addr = 0x%x %s: Invalid request, size = %u, addr = 0x%x %s: remote_addr = 0x%x, val = 0x%x %s: RDSR success, value = 0x%x %s: addr = 0x%x,len = %zu %s: addr = 0x%x, len = %zu %s: Failed debugfs init %s: updated clk_users = %d, request_%s %s %s: Unbalanced clk_users %d for %s 3%s: Invalid %s clk_state = %s clk_users = %d clk_mutex = %s xfer_mutex = %s %s: SPI suspended, cannot perform transfer %s: RDSR status is zero %s: resume successful %s: SPI suspended, cannot enable clk %s: Invalid size %zd %s: addr = 0x%x len = %zd %s: addr 0x%x, len = %zd %s: Failed, addr = 0x%x, len = %zd %s: %s not allocated %s: tx_buf not allocated %s: Unhandled event %d %s: spi_sync failed, err %d %s len 0x%zx is not multiple of %d %s: event type %d %s: clk_req failed %d %s: clk unvote failed %d %s: clk disable failed %d %s: clk enable failed %d %s: cannot suspend, clk_users = %d %s: Failed to disable clk err = %d %s: component_add failed err = %d %s: Failed %s, addr = 0x%x, size = 0x%zx, err = %d %s: Failed to allocate regmap, err = %d %s: Failed to disable clk, err = %d %s: cannot suspend, err = %d %s: Init failed, err = %d %s: register_cmpnt_ops failed, err = %d %s: RDSR failed, err = %d %s: CLK_REQ failed, err = %d %s: failed, err = %d %s: NOP2 failed, err = %d %s: NOP1 failed, err = %d %s: Failed, err = %d %s: failed to resume in %u msec %s: invalid data %s: fail addr (0x%x) size (0x%zx) %s: %s fail iter(%d) max-write addr (0x%x) %s: %s fail iter(%d) end-write addr (0x%x) %s: %s fail iter(%d) start-word addr (0x%x) %s: %s fail write addr (0x%x), size (0x%x) {{_{{_+ description=WCD SPI driverlicense=GPL v2vermagic=4.14.212-g5c4f51c03984-ab7264867 SMP preempt mod_unload modversions aarch64name=wcd_spi_dlkmintree=Ydepends=alias=of:N*T*Cqcom,wcd-spi-v2alias=of:N*T*Cqcom,wcd-spi-v2C*L2h%mAndroid (6443078 based on r383902) clang version 11.0.1 (https://android.googlesource.com/toolchain/llvm-project b397f81060ce6d701042b782172ed13bee898b79)wcd_spi_dlkmB+module_layoutsimple_openNPsingle_releaseseq_read>seq_lseekxmcompleteݷasimple_read_from_buffer地__kmallocJseq_printf7single_openX___ratelimitXUprintk uqueue_delayed_work_onӅ3-system_wq Mset_bit{Cwait_for_completion_timeoutGgdcancel_delayed_work_sync'hregcache_mark_dirtyregmap_update_bits_baseRMregmap_write%3regcache_syncUrS__list_del_entry_valid@debugfs_remove_recursive zkfreekmalloc_order_traceh__list_add_validvdebugfs_create_u32~9debugfs_create_fileRdebugfs_create_dir%n__devm_regmap_init__stack_chk_fail?Ct=spi_sync~)Hmemcpydmemsetg__stack_chk_guardQmutex_unlock|clear_bitSLLmutex_lockc)component_delm@__dynamic_dev_dbgdevm_kfree ~mutex_destroyqX'udev_err)component_add#\__init_waitqueue_headkdelayed_work_timer_fn" ^init_timer_keyf\__mutex_initof_property_read_variable_u32_arrayMedevm_kmallociDdriver_unregister<__spi_register_driverGNU)cM  \!(:Ndu `\XD((D p1 < J cq<  p((p ("|"(G(jP|`P(x((80(08/C(b!uP@(h((t$$$T$p'*\%='8NH(,at(t )T`+,X(,H ' ' ' p' ('(  .*UE'X m 'z     4 $5BQg}(;Nbu*FNXnu $xwcd_spi_driverwcd_spi_probewcd_spi_probe.descriptorwcd_spi_probe.__keywcd_spi_probe.__key.7wcd_spi_clk_work__init_completion.__keywcd_spi_component_opswcd_spi_removewcd_spi_write_singlewcd_spi_write_single.descriptorwcd_spi_component_bindwdsp_spi_opswcd_spi_regmap_cfgwcd_spi_regmap_busstate_fopsmem_read_fopswcd_spi_component_unbindwdsp_spi_initwcd_spi_clk_ctrlwdsp_spi_deinitwdsp_spi_event_handlerwdsp_spi_event_handler.descriptorwdsp_spi_dload_section.descriptor__wcd_spi_data_xferwdsp_spi_read_section.descriptorwdsp_spi_event_handler.descriptor.39wcd_spi_wait_for_resume.descriptorwcd_spi_data_readwcd_spi_data_writewcd_spi_clk_ctrl.descriptorwcd_spi_cmd_rdsr.descriptorwcd_spi_data_read.descriptorwcd_spi_data_read._rswcd_spi_data_write.descriptorwcd_spi_data_write._rswcd_spi_read_single__wcd_spi_data_xfer.descriptorwcd_spi_read_multiwcd_spi_write_multiwcd_spi_read_single.descriptorwcd_spi_write_multi.descriptorwcd_spi_read_multi.descriptorwcd_spi_is_readable_regwcd_spi_is_volatile_regwcd_spi_bus_write$dwcd_spi_bus_gwritewcd_spi_bus_readwcd_spi_state_openwcd_spi_state_showwcd_spi_debugfs_mem_readwcd_spi_suspendwcd_spi_suspend.descriptorwcd_spi_resumewcd_spi_of_match__UNIQUE_ID_description83__UNIQUE_ID_license84wcd_spi_pm_opswcd_spi_defaults.L21__UNIQUE_ID_vermagic59__UNIQUE_ID_name60__UNIQUE_ID_intree61____versions__module_depends__UNIQUE_ID_alias62__UNIQUE_ID_alias63init_module__this_module__spi_register_drivercleanup_moduledriver_unregisterdevm_kmallocof_property_read_variable_u32_array__mutex_initinit_timer_keydelayed_work_timer_fn__init_waitqueue_headcomponent_adddev_errmutex_destroydevm_kfree__dynamic_dev_dbgcomponent_delmutex_lockclear_bitmutex_unlock__stack_chk_guardmemsetmemcpyspi_sync__stack_chk_fail__devm_regmap_initdebugfs_create_dirdebugfs_create_filedebugfs_create_u32__list_add_validkmalloc_order_tracedebugfs_remove_recursive__list_del_entry_validregcache_syncregmap_writeregmap_update_bits_baseregcache_mark_dirtycancel_delayed_work_syncwait_for_completion_timeoutset_bitsystem_wqqueue_delayed_work_onprintk___ratelimitsingle_openseq_printf__kmallocsimple_read_from_buffercompleteseq_lseekseq_readsingle_releasesimple_open__mod_of__wcd_spi_of_match_device_tableJJ\ I9HIIJJ J Jt$J$8IpJ$J\%J'$f,I8 I< ID IXg`K"d K"h K"l K"xI-|G I- G I- G I- GhIG I G I G I GhJ J J J ijIfG j  If$ G( j, If0 G4 j< If@ GPkTI`X I`\ I`` I`pl|I I& I  I& I  I& I  I&mnnII& I I& I I& I I&mo K$Ic(I&, K0 Ic4 I&8 K< Ic@ I&D KH IcL I&TphI`p I`t I`x I`qnnorsI I  I  I I  I  I $ I0m<s@I DI H I L I P I T I X I \ I hmptu u u uKJ KJ KJ KJvw(w@xDuH uL uP uK(I I K( I  I K( I  I K( I  IpyH H H HI^ Id  I^ $ Id( I^ 0 Id4 I^ <H@ HD HH HPHT HX Hx HzI Id I  Id I  Id I  IdmIA IA IA IA{II   I$ I ( I, I 0 I4 I @|HIL IP IX I`}hI[l I[p I[x I[}II I I I I I I|I Id I  Id I  Id I  Idmv~@vh~~$8`|u u u ud v ~ x    IC IA$ IC ( IA, IC 0 IA4 IC 8 IAD mH uL uP uT u y  u u u u K K K K I I I I< I @ ID I H IL I P IT I t I x I| I I I I I I m K K K K IU I IU I IU I IU ID KH KL KP Kt IUx I| IU I IU I IU I m K K K K K If I K If I K If I K If I p  r8 I < I@ I D IH I L IT I X I` ml sx t r I8 I{ I8 I{ I8 I{ I8 I{ m r trK K  K$ K8tDJPHJ`L JPP J`T JPX J`\ JP` J`tICxI| IC I IC I IC Imu u u uI"I I" I I" I I" Im KI I K I  I$ K( I , I0 K4 I 8 IDpTKXID\I` Kd IDh Il Kp IDt Ix K| ID IpKIDI K ID I K ID I K ID IpKI I K I  I K I  I K I  Ipy4u8 u< u@ uHILIP I\ I` Id Ip It IrII I II I I I I  I I I I  I I  ImKr Kr Kr Krtu u  u$ ultt|rv ~<xlwxv~0xpvxK K K KI I I  I I  I I  Im    ,`shI lIp I t Ix I | I I I I I  I I  I I  ImsI\ I I\  I I\  I I\  II I I  I I  I I I I I  I I  I$ I ( I4m<I @IoD I H IoL I P IoX I \ IodmhIq lIp Iq t Ix Iq | I Iq  IIII(KP I II  I(I I I I( KP I  I I I I( KP I  I KP I  IpKx I6 Io Kx I6  Io  Kx$ I6 ( Io0 Kx4 I6 8 Io@pLypK*t K*x K*| K*III I III I I II I  I I II I  I I  IIH I H  I H I H 0K4IV 8 K< IV @ KD IV H KL IV XpKR KR KR KRIII I III I I II I  I I II I  I I  I IH0 I H0 I  H0$ I( H00@K0DIq H K0L Iq P K0T Iq X K0\ Iq hpII I I I I I ImI I I  I I  I I  I m(r<rdK:h K:l K:p K:II I I I I I II IIIO I I IO I I IO I  IO4I8I< I@ ID IH IP IT I\I` IdIxhIOl Ip Ixt IOx I Ix IO Ix IOm4I8I< I@ ID IH IP IT I\I` IdIhIOl Ip It IOx I I IO I IOmII I I I I I II IIIO I I IO I I IO I IOm t(tPKTIE XI\ K` IE d Ih Kl IE p It Kx IE | Ipu u u uKb Kb Kb Kb0wTx`I~ dIh I~ l Ip I~ t Ix I~ | ImwK@II K@ I I K@ I I K@ I IpIL I IL  I IL  I IL  Imu u u uLylup ut ux uK K K Kww x I  I I $ I( I , I0 I 4 ID mL IL P IT IL X I\ IL ` Id IL h Ip mx u| u u u Kh I I Kh I I Kh I I Kh I I p!y !u$! u(! u,! u4!K8! K4e@ z>$u@x  ? @ 0?@@P0BC@P0G TTT@a Xb