ELF@@*'MzR| (,D-DD T DD-(D$D-DD L DD-Lpx D-D\ `   \D-D (DD-D H  d  HD-0D-D0L   h 0LD-D , D-D0L   h 0LD-D (P<D-D H  \  HD-(|,D-DD T DD-\L D-D\ `   \D-D 4 $D-D0L 0  0LD-D 0DhD-D0L   < 0LD-D 0xD-D0L 0 d 0LD-4D-D0L 0 ` 0LD-HD-Dp\ `  P p\D-D 00D-D0L    0LD-D (dHD-DD p DD-8D-D@P @  h @PD-D 4D-D@P 0  @PD-D ($D,D-DPT P   PTD-D 0ttD-D H   P  HD-D LD-D\ `  d \D-D 4D-D0L 0  0LD-D (00D-DD X DD-8\D-DPT @   PTD-D 4<D-D0L 0  0LD-D 8D-D@P 0  @PD-D c?#{ o g_WOA8@C{RR@`n@*:@ )hj@@ T*hh?`Txhh`"@94!***%R`?BT~A*`V@7!?`&T*5`4`b!BtV``B ) Jsh %Rh@jJ RcijuAhAccc_r|rk@TE0?@!s#R %Sifhbq 7@ibB kT!s#Rhbq@7@ifB kTibBhf: _;qmTdg!xAah )R1)h )R1)Y@!q7!q@7!q 7!C@6hZB*)Ri r k$Tc!c3!C+Cc!#c!c!c_q+Th^ ѫѬѭC?9!TNii8oii8ii8ii88hi88oki88ki88ki88ji88/_888!T5iAHcH RhZ@h@h0_r|rk@T E0 ?@ RIr*R*in Rj Jh&)iAjz@h@vb h0_r|rk@T E0 ?aVBc$R5~A!Rq`^T*cR`5A5w"!RhfBibB7 R~@ }ɛ a Tx@~x!R ` qT @R{9R*@ hf_눳  R ZaT`@! @**5@B!@}S]S=wR!R6R*@)Ri r kThAc R_r|rk@TE0?@qATvR9a@` R* xs&AA8C_ T*OQWP_OgNoM{L#_*!*!**!@*h  }_)@ } Ȫ5zh  }_)@ } Ȫ5wc?#{ T@s&A* @{¨#_T{?#{OCA8CR@R 7!RR|S@RA8C@ TOB{A#_V1?#{CA8ՃRC@)R`4@R !RRqySA8C@ T{A@#_T{?#{ @!**h @{¨#_V1?#{@*!*{#_ك@  T*R@ Tl ^@ T\AqT 1J9qT9>)l ]@ T A @T^@J T\:qT 1E4?BqT" *_=qT*1L1!J9!A!J9!"J9!&J9!6J9!*J9!.J9A!:J912J9?q T1߁E>)*_@*?#{og_ W O A8C4$AC5`4hA@R_r|rk@TE0?֨]jiBk|buj"6 t";R(RShA]AR_Ѫr1Frk@TE0?hA@R_r|rk@TE0?֨]iB6j=T!5hByhABRb_Ѫr1Frk@TE0?FTh#ך q Tq( T k jy) hAR_r|rk@TE0?hCC] k@ThAcR_r|rk@TE0?֨^4R S S Shi %Sj - Sk 5 Si =Sj ESki MSj US]Sijh q T@qTq T @q@Tq TqTqT!`5hBy TA@qT!5hAaR_r|rk@TE0?!4`@!'hAcR_r|rk@TE0?֨^ ?!qT(RhAaR_r|rk@TE0?!4`@!]BW @ThAaR_r|rk@TE0?! 5hAaR"R7!5hBy* ?qaTHRa ?qaThR\ ?qaTRW ? qTRRhAaR_r|rk@TE0?`@! `@!B`@!]B`@!BX`@!B`@!]BU ? @qaTR ?!@qaTR ?@qaTR ?BqaT(R   ?HqaTHR `qThRh IR !4`@!@I 1*}_J*} ȫ5c2`Th Ch4rShAs_r|rk@TE0?hA_r|rk@TE0?֩#|)  * 4* HJP) Zp)}S =HLhcщ ) !y@?T^#9@5hA3RC_r|rk@TE0?֨C_zS%qCTZ[yFh#Ԛ#@I ?1(hA3RC_r|rk@TE0?֨C_zS%qC!TFh#Ԛ@I ?1(@I 1*}_J*} ȫ5@@/s&AA8C_ aT@OKWJ_IgHoG{F#_?#{ O5@R`6*A4"Q  ** *?k*`T *}_ J5 5;61T`^BqT@ @9h7`^Bt@R`@4R*OB @{è#_!4`@!B*?#{OCA8ChB lB@ 43hAR*_Ѫr1Frk@TE0?hAR"R_Ѫr1Frk@TE0?iA@Rh0_Ѫr1Frk@T E0 ?hA R_r|rk@TE0?@ R2hA_Ѫr1Frk@TE0?hARBR_Ѫr1Frk@TE0?hZB RjAbR kR2"P_Ѫr1Frk@T@E0@?hARbR_Ѫr1Frk@TE0?h@hABR_Ѫr1Frk@TE0?hA R_r|rk@TE0?@ MS9 SihA8C@ TOB{A#_?#{ O cYɿIIB4Rh@1*cR*OB @{è#_?#{WO* cYɿII*6cR2ucROBWA{è#_X?#{og_WOCA8C(@9 4q&T@y&4ux R@y%T@@y@9iw8) ??qT)=(a*2jJ9_=qaTR_9q'jJ=Sk 9)=(a*Q* *hAaR_r|rk@TE0?@iC1S kCT>R?RBRZ1cThCk@ T??qAThA`R*_Ѫr1Frk@TE0?hZBkTRaRBR??qAT!R5@yI4*cJ9*K@9_q@y[@j_=qaTR_9q'jJ=Sk 9 / S) }@ha*9= **hAaR_r|rk@TE0?@iC1S kT>R?RBR1cThCkT!5 R! RBRhA`R*_Ѫr1Frk@TE0?@RRBRhAaR_r|rk@TE0?@9rT>R?RBR1TwhAcR_r|rk@TE0?@k78cJ9-Sk T>R!?RBRhAaR"R_Ѫr1Frk@TE0?hA`R*_Ѫr1Frk@TE0?hAcR_r|rk@TE0?@k78cJ9-SkT>R!?RBRhAaR"R_Ѫr1Frk@TE0?hA`R*_Ѫr1Frk@TE0?hAcR_r|rk@TE0?@k78cJ9,SkaT@y*h  kKT`@!Bc*!5R!5 RA8C@ TOFWE_DgCoB{A#_`@!B`@!B`@!**ك?#{OCA8ՉRC@4 A*_r|rk@TE0?@ijB*jnB]hA" 3B3_Ѫr1Frk@TE0?A8C@ TOB{A#_jP?#{)(@)R A! BQp_Ѫr1Frk@T`E0`?{#_?p6?#{ WO5@BqTVdS" RA J9"J9J9]SA * *A_Ѫr1Frk@TE0?4OCWB @{Ĩ#_:J9_qT@ R"  hA_Ѫr1Frk@TE0?@5w6J9_qT@ R"  hA_Ѫr1Frk@TE0?5*J9qTi )-J9?q T@ *hAR" A @RR"  hA_Ѫr1Frk@TE0?5h%J9_qT@ R"  hA_Ѫr1Frk@TE0?֥*@*ԃʭ?#{OCA8IdSC(@(! R A*_r|rk@TE0?֨"@94@@"a*@]hA*_Ѫr1Frk@TE0?A8C@ TOC{A@#_*L@=qT @*)M@( _@*Nc+@=qT @)M@( A_@*ԡ^?#{g_WO(@@RM@@`6*A4"Q  ** *?k*`T *}_ J5 5;61T`@@h @=q T( @ )@4*( @ )@Z_ kT @*CI WYiw@)9@))@>@0_QErIrk@T E0 ?6*01T` @!@*u@`R@! 5*ODWC_BgA{Ũ#_@!B*@*+S?#{O(@=qT)@4M@Ah @9qT@`R@OA{¨#_@*cq?#C{og_WOA8CH@=qBTI@ 3M@hA <@`b     BTi j * LRLR5RO' C LRLRB@k@T#n ^h_'q8 Tyj+@@'@ TzA_ T*:qRt^R< +H\=qBT E5|@kLT Fө"Ț  _1)@T?HT(T(TTHC\j<#Z@_T  QK}_k K} Ȭ5T@*@!@qKT~@)}+R@T TLihFl!̚  ,!?T  }_,}ȯ5@B@(@T)R@TK _L^q  Tm\F-!͚ -k@ }_-}Ȱ5*@c*?q@@))A )[@*A8C_ aTOTWS_RgQoP{OC#_ ^?#{ O(@=qT)@3M@hubA B?Tj k ,R)@?T _^qO T\FӐ!К ?0@ 1 ~_0 ~ȡ5*OB @{è#_@*U?#{\A!{#_r?#C{WOCA8CR@@v@7uRhA*_r|rk@TE0?@*kTt@R`@*A8C@ AT*ODWC{A@C#_*A4"Q  ** *?k*`T *}_ J5 5;661`T!`4`@!B*_eE??#{ OL@hRO95hB@RyhAb_Ѫr1Frk@TE0?hAbBBR_Ѫr1Frk@TE0?6*1T6*1Tt&A%R!&RBR`^BqT@ @9h6`^B**OB @{è#_!!*_eE??#{OCA8CL@`^BqT@ @9h7`^Bt&A5`4hRO9( 4hAR"Rt"_Ѫr1Frk@TE0?ր R! RBR R! RBR hAR_r|rk@TE0?@97>R?RBR1T@ ) J`@r!CB`@!!RhAR_r|rk@TE0?@a" S S Shi %Sj - Sk 5 Si =Sj ESki MSj US]Sijh^`@hARBR_Ѫr1Frk@TE0?hAARR_Ѫr1Frk@TE0?hB@R2hAb_Ѫr1Frk@TE0?hAbBBR_Ѫr1Frk@TE0?ր R! RBR hAR_r|rk@TE0?@97>R?RBR1T@ ) J`@r!CB`@!7A8C@ T*OC{A@#_*`@!h߈ű6?#{!{#_ g@?#{{#_XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXPqcom,soundwire-v1.3.0qcom,soundwire-v1.5.1qcom,soundwire-v1.6.0022description=Qualcomm soundwire driverlicense=GPL v2vermagic=6.1.78-android14-11-g1a72e2f692ac-ab12000080 SMP preempt mod_unload modversions aarch64name=soundwire_qcomintree=Yscmversion=g1a72e2f692acdepends=soundwire-bus,slimbusalias=of:N*T*Cqcom,soundwire-v1.3.0alias=of:N*T*Cqcom,soundwire-v1.3.0C*alias=of:N*T*Cqcom,soundwire-v1.5.1alias=of:N*T*Cqcom,soundwire-v1.5.1C*alias=of:N*T*Cqcom,soundwire-v1.6.0alias=of:N*T*Cqcom,soundwire-v1.6.0C*|             swrm_wait_for_rd_fifo_availswrm_wait_for_wr_fifo_availqcom,din-portssoundwireFailed to request soundwire irq &x->waitqcom,ports-hstopswrm_reg_show%s err read underflow %s: SWR write FIFO overflow fifo status %x link failed to connect %s: link status not %s connectedprepare clock stop failed %d%s err write overflow Failed to set sdw stream on %s swr_audio_cgcrswr_wake_irqqualcomm-sdwqcom,ports-block-group-count%s: SWR CMD error, fifo status 0x%x, flushing fifo %s: SWR unknown interrupt value: %d All ports busy bus clock stop failed %dqualcomm-registers%s: SWR read FIFO overflow fifo status 0x%x qcom_swrm_wake_irq_handlerqcom-soundwireifaceQualcomm Soundwire controller v%x.%x.%x Registered qcom,ports-block-pack-mode%s: SWR read FIFO underflow fifo status 0x%x qcom,ports-offset2qcom_swrm_startupswrm_wait_for_frame_gen_enabledqcom,ports-word-lengthfailed to read fifo: reg: 0x%x, rcmd_id: 0x%x, dev_num: 0x%x, cmd_data: 0x%x Failed to get cgcr reset ctrl required for SW gating qcom,ports-offset1qcom,dout-portsFailed to request soundwire wake irq qcom,ports-hstart%s: SWR bus clsh detected %s: SWR read enable valid mismatch &ctrl->port_lockqcom_swrm_irq_handlerSDW Pin%dqcom,ports-sinterval-low%s: SWR Port collision detected bus failed to exit clock stop %d qcom,ports-lane-controlno slave alert found.spurious interrupt Failed to register Soundwire controller (%d) pm_runtime_resume_and_get failed in %s, ret %d 0x%.3x: 0x%.2x disconnectedLinuxLinuxsoundwire_qcom:CL__platform_driver_registercUplatform_driver_unregisterndevm_kmalloc>Kof_device_get_match_dataasdw_find_row_index`sdw_find_col_index8ˮslimbus_busl2devm_platform_ioremap_resourceKC dev_get_regmapo__devm_reset_control_getO|gof_irq_getg<]devm_clk_getqs|clk_prepareUclk_enable wclk_unprepareq__mutex_initA`__init_swait_queue_headof_property_read_variable_u32_array ~_dev_errdHalt_cb_patch_nops>VIof_property_read_variable_u8_arraypdevm_request_threaded_irq}G\sdw_bus_master_add:Jwait_for_completion_timeoutl-devm_kasprintfvdevm_snd_soc_register_component<_dev_infoیKpm_runtime_set_autosuspend_delay'UlD__pm_runtime_use_autosuspendo6nktime_get_mono_fast_nsj"__pm_runtime_set_status,jpm_runtime_enableOddebugfs_create_dirͭrdebugfs_create_filer,Jsdw_bus_master_deleteclk_disableғ__stack_chk_failrbregmap_bulk_write/regmap_bulk_read$___ratelimit/z%completeUmutex_unlock~-osdw_slave_add=sdw_extract_slave_id99sdw_compare_devid{mutex_lock1sdw_handle_slave_status __pm_runtime_resume!)irq_get_irq_data!'disable_irq_nosyncؑ|__pm_runtime_suspend9$reset_control_reset!rklog_read_mmio^ log_post_read_mmio+@log_write_mmio$# v[ 06#0 7^@L# $[#}e#} o#0@{#0`0n0Yf0# # #PL# #@#`####@ #`#%#^3#A#K#^L@W#01 ,#v@G@a# GG D i#D(t#D0D8@#^z^ LmL m###### m m0 m m###$#8#K#_#u##########!#.#;#M#`#s##########"#2#E#_#w###"$!n C n@ 5 #  v@ #v@#@1[6#@#D#DH2  0) # # # @!# `,# ;# *I#D Q#D(Y#0a#0&@jjj#@w#`##^ #  2HD#D#D#D"D "D(#D0#D8#D@ #8 @h]#!# '# D-09#0 0@     B#X$!m@39#0U#!n1!@c#!o#!@x#P_ 6# #|@#xi!#0>3@9#0`#!n1!#l D@0&$!my@ !@ # #/ G1#G1^1#v2#v3#4/#^ 4D#^(4U#6@4b#1SHVHE BE(o#E0{#X#^ #^(#^0#^8"@#`##^#^#^!#,#^A#N# [#@f#o#|##D@`#^# ## #@ #^#^#^ #h_# #@#` ] ##^# #@w` #j`;# #7 #@G #X #^h #^} # # # 8 # # #@ #{N_N #@ # #v   #_06#0 # #09#0 0@3`]g* # : # #P # # B#Lk #  } # #   #  #  # / #  # / #  #  #  $!m #  $!mG) # < #  $!mV #w5 0_ #  $!m{5 }u #  $!m #5 0 #  3 #  3 #  B#L #  #  #  # ) # '#> # '# H Fqcom_swrm_datadefault_colsdefault_rowssw_clk_gate_requiredsdw_master_opsread_propoverride_adrxfer_msgxfer_msg_deferreset_page_addrset_bus_confpre_bank_switchpost_bank_switchread_ping_statussdw_busassignedmsg_lockcompute_paramsm_rt_listdefer_msgclk_stop_timeoutbank_switch_timeoutmulti_linkhw_sync_min_linksdev_num_ida_minsdw_master_devicesdw_master_port_opsdpn_set_port_paramsdpn_set_port_transport_paramsdpn_port_prepdpn_port_enable_chsdw_port_paramsflow_modesdw_transport_paramsblk_grp_ctrl_validblk_grp_ctrloffset1offset2hstarthstopblk_pkg_modelane_ctrlsdw_reg_bankSDW_BANK0SDW_BANK1sdw_prepare_chch_masksdw_enable_chsdw_bus_paramscurr_banknext_bankmax_dr_freqcurr_dr_freqs_data_modem_data_modesdw_master_propclk_stop_modesmax_clk_freqnum_clk_gearsclk_gearsnum_clk_freqclk_freqdefault_frame_ratedefault_rowdefault_coldynamic_frameerr_thresholdmclk_freqhw_disabledsdw_defersdw_msgaddr_page1addr_page2ssp_syncsdw_command_responseSDW_CMD_OKSDW_CMD_IGNOREDSDW_CMD_FAILSDW_CMD_TIMEOUTSDW_CMD_FAIL_OTHERsdw_stream_stateSDW_STREAM_ALLOCATEDSDW_STREAM_CONFIGUREDSDW_STREAM_PREPAREDSDW_STREAM_ENABLEDSDW_STREAM_DISABLEDSDW_STREAM_DEPREPAREDSDW_STREAM_RELEASEDsdw_stream_typeSDW_STREAM_PCMSDW_STREAM_PDMsdw_slave_statusSDW_SLAVE_UNATTACHEDSDW_SLAVE_ATTACHEDSDW_SLAVE_ALERTSDW_SLAVE_RESERVEDMASTER_ID_WSAMASTER_ID_RXMASTER_ID_TXSDW_MSG_FLAG_READSDW_MSG_FLAG_WRITEsdw_data_directionSDW_DATA_DIR_RXSDW_DATA_DIR_TXsdw_clk_stop_reset_behaveSDW_CLK_STOP_KEEP_STATUSsdw_p15_behaveSDW_P15_READ_IGNOREDSDW_P15_CMD_OKsdw_dpn_typeSDW_DPN_FULLSDW_DPN_SIMPLESDW_DPN_REDUCEDsdw_port_data_modeSDW_PORT_DATA_MODE_NORMALSDW_PORT_DATA_MODE_PRBSSDW_PORT_DATA_MODE_STATIC_0SDW_PORT_DATA_MODE_STATIC_1qcom_swrm_ctrlaudio_cgcrenumerationslave_workhclkwr_cmd_idrd_cmd_idnum_din_portsnum_dout_portscols_indexrows_indexdout_port_maskdin_port_maskrcmd_idwcmd_idpconfigsruntimeslave_statuswr_fifo_depthrd_fifo_depthclock_stop_not_supportedqcom_swrm_port_configoff1off2bp_modeword_lengthblk_group_countlane_controlsdw_stream_runtimemaster_listm_rt_countsdw_stream_paramsch_countsdw_master_runtimeslave_rt_liststream_nodebus_nodesdw_port_runtimetransport_paramsport_paramssdw_slave_runtimem_rt_nodesdw_slaveport_readym_port_mapdev_num_stickyenumeration_completeinitialization_completeunattach_requestfirst_interrupt_doneis_mockup_devicesdw_dev_locksdw_slave_idsdw_versionsdw_slave_propmipi_revisiontest_mode_capableclk_stop_mode1simple_clk_stop_capablech_prep_timeoutreset_behavehigh_PHY_capablepaging_supportbank_delay_supportp15_behavelane_control_supportmaster_countsource_portssink_portsdp0_propsrc_dpn_propsink_dpn_propscp_int1_maskis_sdcasdw_dp0_propmax_wordmin_wordnum_wordsBRA_flow_controlledsimple_ch_prep_smimp_def_interruptssdw_dpn_propmax_groupingmin_chnum_ch_combinationsch_combinationsmax_async_bufferblock_pack_moderead_only_wordlengthport_encodingaudio_modessdw_dpn_audio_modebus_min_freqbus_max_freqbus_num_freqbus_freqnum_freqprep_ch_behaveglitchlesssdw_port_configsdw_stream_configframe_rateqcom_swrm_probeqcom_swrm_irq_handlerqcom_swrm_wake_irq_handlerqcom_swrm_startups_fileswrm_reg_showqcom_swrm_initqcom_swrm_removeqcom_swrm_ahb_reg_readqcom_swrm_ahb_reg_writeqcom_swrm_cpu_reg_readqcom_swrm_cpu_reg_writeqcom_swrm_compute_paramsqcom_swrm_xfer_msgqcom_swrm_pre_bank_switchp_paramsqcom_swrm_port_paramsqcom_swrm_transport_paramsenable_chqcom_swrm_port_enableqcom_swrm_set_sdw_streamqcom_swrm_get_sdw_streamqcom_swrm_shutdownqcom_swrm_hw_paramsqcom_swrm_hw_freeswrm_reg_openswrm_runtime_suspendswrm_runtime_resumev@c^@h;tO2J@sH'& 5H00@Кx& %(I( @HH&q@@&LPIG@Н&iRd@&YRT@&RS~@x&2Vl\U0@H& Loa\0]@@@h0& @a@s$hs 30(!ȼ+e 4$