ELF @@'$Ӑţjdؽ2Mt "UszR| 8D-DP 0 | PD-D ,TD-D H  `  HD-4D-D0L 0  0LD-D ,D-D H  `  HD-<\D-D@P @ , @PD-L,pD-D\ `    \D-D ,|D-D H    HD-,tD-D H   x  HD-D ,D-D0L   p 0LD-D 4 D-D0L 0  0LD-D k$|?#{W O A8!RC*8R?cT*hr@qTur@ RJr R@ @yCx k Kz T@ TR @y R k KzxT@*ϊR @y rR k KzCy@T@ `R @ydR k; Kz{y T@ R @y fR k3 KzkyT@ R @yfR k+ Kz[yT@R @y rhR k Kz#KyT@R @yJrkhR k Kz;y`T@R @y `rfR k Kz+y!T Cx !@x>H@9h 7[B R1)!R* !RA8C_ !T*OJWI{H#_Rc#@_Qr1{rk@TE0?֠@ATѡ!RR8R@T*5!RB }_)y } Ȫ5eH?#{O!RR8R?cT*!R**OA{¨#_ֽV?#{ OR*8R?cT*hr@qThr@ @9i4!R*OB @{è#_ִ @9@9!R* gj?#{ORR8R?cT*!R**OA{¨#_,E?#{_WOR*8R?cTi*7!R@R@T@ @9T6@x*8R*?T!R T@R*i i****OCWB_A{Ĩ#_)0?#C{og_WOA8C=*`!C#R*7 @RY@ @w2kTR_Tjh8_qaTj(8aR*8R@Ti*/5!R R!R*8R?cTifs@%qTs@!R@yq@x@9( 4w 6hJA9 .R k R q k + *TL|,ilx k@Tj L\} )T,qJ`@Zi J_Y S3Sf/@9$5hJA9q!T2?#T*i!RR*8R@ITi*5&!R*8R@ITi*5r@ )j!%qTr@@9!RR*8R@Ti*W5h(s@ )j!qT(s@@9!RV:r@ )j!qaTr@!R>p@!R@x1@xBcR**R R@VBcR;R xv^**BcRzV*BcRZ*BcR#@44#`4[ qT#@4qT#@4@95:4S q Tq@T(R9@4*@*A8C_ T*OHWG_FgEoD{CC#_ ?#{OAR*8R?cThr@qT!ROA{¨#_)0?#{ (@94B5 hB @R1)* @{¨#_hB }_)w } Ȫ5k$|?#{CA8C*95@94*5hB @R1)*A8C@ T{A@#_hB }_)w } Ȫ5k$|?#{ OaR*8R@ITh*T5!R R!R*8R?#Thr@iqTr@@9Q@x!RAR*8R?#Thr@iqTr@@x1@x!RR*8R?#Thr@i%qTr@@9!RR*8R?#Thr@iqTr@!R hB @R1)**OB @{è#_hB }_)w } Ȫ5btbcm_check_bdaddrbtbcm_setup_applebtbcm_set_bdaddrbtbcm_finalizebtbcm_write_pcm_int_paramsbtbcm_setup_patchrambtbcm_patchrambtbcm_read_pcm_int_paramsbtbcm_initializebrcm/%s%s.hcdBCM4356A2BCM4354%s: BCM: Verbose config length mismatch %s: BCM: product %4.4x:%4.4x BCM4324B3BCM43341B0%s: BCM: Controller features length mismatch %s: BCM: Patch failed (%d) %s: BCM: firmware Patch file not found, tried: compatibleBCM4314A0BCM4335A0%s: BCM: Read PCM int params length mismatch BCM20702A0brcm/%s%s.%s.hcdbrcm/BCM%s.%s.hcd-%4.4x-%4.4xBCM20702B0BCM20703A1BCM4335B0BCM4373A0%s: BCM: Read verbose config info failed (%ld) nullBCM4335C0%s: BCM: Read USB product info failed (%ld) %s: BCM: Read controller features failed (%ld) BCM4345C0%s: BCM: Download Minidrv command failed (%d) %s: BCM: '%s' BCM43430B0%s: BCM: Patch command %04x failed (%d) BCM4334B0%s: BCM: chip id %u build %4.4u BCM4329B1%s: BCM: Local name length mismatch /%s: BCM: Reset failed (%d) %s: BCM: Reading local version info failed (%ld) BCM4330B1BCM4343A0%s: BCM: Reading local name failed (%ld) %s: BCM: Write PCM int params failed (%d) %s: BCM: Patch is corrupted %s: BCM: features 0x%2.2x BCM43430A1%s: BCM: Device address length mismatch %s: BCM: Change address command failed (%d) BCM%s: BCM: Read PCM int params failed (%d) %s: %s '%s' Patch BCM4349B1BCM20702A1BCM43142A0BCM2076B1%s: BCM: USB product length mismatch %s: %s (%3.3u.%3.3u.%3.3u) build %4.4u %s: BCM: Local version length mismatch %s: BCM: Reading device address failed (%d) %s: BCM: Using default device address (%pMR) brcm/BCM%s.hcdBCM4362A2BCM4324B5%s: BCM: chip id %u BCM4350C5%s: %s %s: BCM: Using EFI device address (%pMR) BCM4345C5BCM4359C0! !!!&!"#AA a afA AABDF a a"! "af#" BBBaA A!author=Marcel Holtmann description=Bluetooth support for Broadcom devices ver 0.1version=0.1license=GPLvermagic=6.1.75-android14-11-g3f139724700e-ab11895646 SMP preempt mod_unload modversions aarch64name=btbcmintree=Yscmversion=g3f139724700edepends=bluetoothsrcversion=A59EA948507C7323973AEDF tZaMC&#BDADDRLinuxLinuxbtbcmܟ__hci_cmd_sync2{bt_errݤefibt_infodHalt_cb_patch_nopskfree_skb_reason\{baswapғ__stack_chk_failmsleeptof_find_node_opts_by_pathqvof_property_read_string_helper`Ϙstrlenndevm_kmalloc9dstrscpynJnesnprintfskmalloc_cacheseQkmalloc_tracev* firmware_request_nowarnrelease_firmware zkfreeumodule_layoutGNUUxU8)sGNU<L|P|`|Md|Ml}}  | ||z |z(DP|T|d|h|lxx~~x $4|8|H|?L|?Thl|p||||||?|? hx||||p|p||||P`|d|t|x||||N|N (d||||||||H|L|dl|p| | |0|4|<PXp|||8|8SSSS | | | |X |\ |h |ll |l | |  | | |% |%   $ |( |8 |< |D h x || | | |  | | | |    | | |~$ |~, @ |D |` |d |l x  || || | |  | | | |    |q |q  @ @$ 8 |N< |NT h |l |p  | |  |_ |_  | |   8 X h |l |t x |}| |}  |} |}  |} |}  |} |}  | |  ||$,4|||||||||T`@|||| ||<|@|LT| X| \h|||I|I||,|0|8\|`|hp||t||x|~|~||||{{04{&8{$({,{TX{F\{{ { {7{HL{aP{<@{D{{v{R, RdR$R(||(|8|CH| X|h|x||~|||||j||q|(|g8|H|X|h|tx| |D|||||||&| |(|Android (10087095, +pgo, +bolt, +lto, -mlgo, based on r487747c) clang version 17.0.2 (https://android.googlesource.com/toolchain/llvm-project d9f89f4d16663d5012e5c09495f3b30ece3d2362)RXRR<R,R0RRR0RRdmnopqrstuILMNORSTUVYZ[ #$6TS7&00;$$F?TT`v0ys`,{/7  aHH<t<N+0m)8<(e,H% #p9 ,g0# h_B`d$aM4-Y-;h t <  T7  fKIs/~tkaN 1 x2@J #)]E<,\p0tdon~ wpub_TN@.note.gnu.property.note.Linux.hyp.text.rela.text.comment.init.plt.hyp.bss.rela.altinstructions__versions__ksymtab_strings.rela___ksymtab_gpl+btbcm_check_bdaddr.modinfo.rela___ksymtab+btbcm_patchram__ksymtab_gpl__kcrctab_gpl.note.GNU-stack.llvm_addrsig.text.ftrace_trampoline.init.eh_frame.rela.eh_frame.gnu.linkonce.this_module.note.gnu.build-id.shstrtab.strtab__ksymtab.symtab__kcrctab.hyp.rodata.rela.rodata.hyp.data.BTF.rodata.cst16.rodata.str2.2.rodata.str1.1strscpybtbcm_read_usb_productalt_cb_patch_nops____versions__kstrtabns_btbcm_write_pcm_int_params__crc_btbcm_write_pcm_int_params__kstrtab_btbcm_write_pcm_int_params__ksymtab_btbcm_write_pcm_int_params__kstrtabns_btbcm_read_pcm_int_params__crc_btbcm_read_pcm_int_params__kstrtab_btbcm_read_pcm_int_params__ksymtab_btbcm_read_pcm_int_paramskmalloc_cachesbt_errof_property_read_string_helper__kstrtabns_btbcm_set_bdaddr__crc_btbcm_set_bdaddr__kstrtab_btbcm_set_bdaddr__ksymtab_btbcm_set_bdaddr__kstrtabns_btbcm_check_bdaddr__crc_btbcm_check_bdaddr__kstrtab_btbcm_check_bdaddr__ksymtab_btbcm_check_bdaddrmsleepbaswapbt_infofirmware_request_nowarnkfree_skb_reasonstrlen__kstrtabns_btbcm_setup_patchram__crc_btbcm_setup_patchram__kstrtab_btbcm_setup_patchram__ksymtab_btbcm_setup_patchram__kstrtabns_btbcm_patchram__crc_btbcm_patchram__kstrtab_btbcm_patchram__ksymtab_btbcm_patchram__stack_chk_failefiof_find_node_opts_by_pathsnprintf__kstrtabns_btbcm_finalize__crc_btbcm_finalize__kstrtab_btbcm_finalize__ksymtab_btbcm_finalize__kstrtabns_btbcm_initialize__crc_btbcm_initialize__kstrtab_btbcm_initialize__ksymtab_btbcm_initializerelease_firmware__this_module__kstrtabns_btbcm_setup_apple__crc_btbcm_setup_apple__kstrtab_btbcm_setup_apple__ksymtab_btbcm_setup_applebcm_uart_subver_tablebcm_usb_subver_tablekfreekmalloc_tracedevm_kmalloc__hci_cmd_sync_note_9__UNIQUE_ID_license679$d.49$d.39$d.29$d.19$d.9__UNIQUE_ID_version678$d.48$x.28$x.18$d.8__UNIQUE_ID_description677__UNIQUE_ID_srcversion337$d.37$d.27$d.17$d.7__UNIQUE_ID_author676__UNIQUE_ID_depends336$x.36$x.26$x.16$d.6__UNIQUE_ID_scmversion335$d.35$d.25$d.15$d.5__UNIQUE_ID_intree334$x.34$x.24$x.14$d.4__UNIQUE_ID_name333$d.33$d.23$d.13$d.3$d.42__UNIQUE_ID_vermagic332$x.32$x.22$x.12$d.12$d.2$d.41$d.31$d.21$d.11$d.1$d.40$x.30$x.20_note_10$d.1011I  3 4n"n"G @3  ]  7@ 8 92X@ N  ! ) @3 h =!F!P![!f!p! 0N@:U II+o0I I0 @    @ & ;0 C0 ]I@ KFP ZFX S ` |:= k @v   @  FFFF F F(F0+F87I@8IPFI`OIpVyH2 e h k uw00 ^@    @   @00- ) @>0`K Vf" t# @' '# 0@0`% 0y) * @"  ,0 @ 7{@$F &U &g!@&q&U4'}!' '^' '^'@' (@(1 ( ( D)= EF> F0G,0 G9G@GFGPGS `GZ] pGd_ pIp` Jxb @Jc Je J^K0K0 K!@Kf Kh Lj @Lk Ln N  O  O5  OL o O L@O LO LOLP"L@P"LP"LP"LQ; < T = @@ = = B P@ R T @ V@# =5 XB XP X@] Zl \ ^ `@ b d f h@ j l n n@/ p> rN t^ v@r v x z |@ ~   @ v   !  3 @ A  O  b  w @    @    @     ' : @M b y  @    @ T@2AVe@v L L@ LL"L"L@"L"L> ?9A ?C ? ?g j@DEglq!ghSh #h f@H/h!Bh K ? M c7 O ^7 Q ? S G??U ? W ?Y ? [ ? ] ? ( _ ? a ? c ? e ?0g ? i ^7 k 7m % ?o ?Gq ? s ? GDu ? w ? ^y ? J { ? } ? Q  ? U  ?  ? [ [  ? L  ?a  ?d G ??  ?? ??^ ??S ?  ?  ? ? x U ?GG  x U ?G  x U ?G   ??U U ?G  ? G  ?  ? G ?^ ?  ?$U ?? ? ?  7 ? ?  ?  ??  ? ? ?  ?? 6 ? ^ ?Icc0 7 ?U F00 2?U U  ?U U  ?" U7 7 ??U U  U77 77 27 U7  7U n"n"n"n"n"n"] h ,!@Zq!!@o"o"D/o"=o" Lo"6@Zo"D8lo"^@o"^Ho"^Po"Xo"G`o"[y o" o" @o"H'_ o"o"o"p"+p"Ep"_p"@q!6 * @lH$!EK.Egp"np"yp"p"0 `p"E3$p"ǦX p" p"H02e@p"EXp"E`JjEhpp"0p"Epp"Exq"Eq""q"h0q"EH fAP>q"EPFq"H`Nq"Ep4fHVq"Haq"Hoq"Ewq"Hq"Hq"Eq"q"Eq"Hq"Hq"E q"E( r"H0r"H@3r"EP@r"H`Qr"Hp`r"Htr"Hr"Hr"Hr"Hr"Hr"Hs"Hs"H-s"HBs"H Rs"H0bs"H@ps"HPs"H`s"Hps"Hs"Hs"Es"Es"Hs"Ht"Ht"H-t"E>t"EOt"E\t"Ekt"E| yt"H@t"HPt"E`t"Hpt"Ht"Ht"Hu"Eu"H&u"H;u"EMu"H^u"Hru"H~u"H u"H0u"H@u"Pu"XhH`u"Hpu"HHv" v"H v"H3v"E>v"Kv" Vv"@fv"`rv"E{v"Hv"Hv"v"v"v"E@2v"0`2g 2v"2v"02v"03v"0 3w"0@3w"0`3w"03w"03w"03'w"030w"049w"0 4Aw"0@4Jw"H`4Tw"Hp4' H4^w"H4hw" 4tw" 5w" @5w"E5w"E5X_ 5w" 6@6J7w"<w"=w"!?w"6?w"6Ax"Bx"D.x"HE=x"EHx"Jv@NVx"Rax"Vix"@XZ Yrx"@[x"_x"'cx"'dx"'@ex"fx"@fA6fx"hx"hx"hx"ix"@ix"ix"iy" @ny"^`n'y" n=y"^nPy"Xnay"ooty"^o^oy"Doy"oy"Dpy"@py"!qy"!ry"!ry"!so"!sy"!ty"!ty"!uz"!u&z"!v5z"!vDz"!wSz"!waz"!xqz"!x~z"!yOty!zz"{z"@{{ D{"J@$]z"z"Șz"Иz"Ez"z"Ez"z"Ep{"!{"0&{"E 7{"H0L{"@`{"/q{"0@{"h`{"{"{"@{"{"{"{"!@{"^EM@ ~$Ǵ@{"A|"@|"|" =' %|"@8|" I|" L L@ LLE E _|"H Hi|"H q|"H0@E ||"(q!|"0|"0|"0|"0|"0|"0 |" (|"|" |"@|"`|"|"|"}" }"}" }"DE E    0 D ^      ^   E B*}"lEHH3}"E(=}"E0F}"_}"t}"}"}"}"}"~"!~"?~" a~" ~" ~" ~" ~"~"!"?"d""""""<"0&Egp"P" i E`" 0&E>q"EFq" Nq"E 4f (Vq" 8z""E^6E=EEiE    3#"k w" $ gp"" & Ѐ" ( w" * " ,  "-"^," . =" 0T" .c" (x" (6  yFbcm_subver_tablesubverDISCOVERY_STOPPEDDISCOVERY_STARTINGDISCOVERY_FINDINGDISCOVERY_RESOLVINGDISCOVERY_STOPPINGdiscovery_statelast_adv_addrlast_adv_addr_typelast_adv_rssilast_adv_flagslast_adv_datalast_adv_data_lenreport_invalid_rssiresult_filteringlimitedrssiuuid_countuuidsscan_durationname_resolve_timeoutbdaddr_tBT_RUNNINGBT_SUSPEND_DISCONNECTBT_SUSPEND_CONFIGURE_WAKEINTERLEAVE_SCAN_NONEINTERLEAVE_SCAN_NO_FILTERINTERLEAVE_SCAN_ALLOWLISThci_devbdaddrsetup_addrpublic_addrrandom_addradv_addr_typeshort_nameeirappearancemajor_classminor_classle_featuresle_accept_list_sizele_resolv_list_sizele_num_of_adv_setsle_statesmesh_ad_typesmesh_send_refhci_verhci_revlmp_verlmp_subvervoice_settingnum_iacstored_max_keysstored_num_keysio_capabilityinq_tx_powererr_data_reportingpage_scan_intervalpage_scan_windowpage_scan_typele_adv_channel_maple_adv_min_intervalle_adv_max_intervalle_scan_typele_scan_intervalle_scan_windowle_scan_int_suspendle_scan_window_suspendle_scan_int_discoveryle_scan_window_discoveryle_scan_int_adv_monitorle_scan_window_adv_monitorle_scan_int_connectle_scan_window_connectle_conn_min_intervalle_conn_max_intervalle_conn_latencyle_supv_timeoutle_def_tx_lenle_def_tx_timele_max_tx_lenle_max_tx_timele_max_rx_lenle_max_rx_timele_max_key_sizele_min_key_sizediscov_interleaved_timeoutconn_info_min_ageconn_info_max_ageauth_payload_timeoutmin_enc_key_sizemax_enc_key_sizepairing_optsssp_debug_modehw_error_codeadvmon_allowlist_durationadvmon_no_filter_durationenable_advmon_interleave_scandevid_sourcedevid_vendordevid_productdevid_versiondef_page_scan_typedef_page_scan_intdef_page_scan_windowdef_inq_scan_typedef_inq_scan_intdef_inq_scan_windowdef_br_lstodef_page_timeoutdef_multi_adv_rotation_durationdef_le_autoconnect_timeoutmin_le_tx_powermax_le_tx_poweresco_typelink_policyidle_timeoutsniff_min_intervalsniff_max_intervalamp_statusamp_total_bwamp_max_bwamp_min_latencyamp_max_pduamp_typeamp_pal_capamp_assoc_sizeamp_max_flush_toamp_be_flush_toloc_assocflow_ctl_modeauto_accept_delaycmd_cntacl_cntsco_cntle_cntiso_cntacl_mtusco_mtule_mtuiso_mtuacl_pktssco_pktsle_pktsiso_pktsblock_lenblock_mtublock_cntacl_last_txsco_last_txle_last_txle_tx_def_physle_rx_def_physreq_workqueueerror_resetcmd_sync_workcmd_sync_work_listcmd_sync_work_lockunregister_lockcmd_sync_cancel_workreenable_adv_workdiscov_timeoutdiscov_offservice_cachencmd_timerrx_workcmd_workle_scan_disablele_scan_restartrx_qraw_qcmd_qsent_cmdrecv_eventreq_wait_qreq_statusreq_resultreq_skbsmp_datasmp_bredr_datadiscoverydiscovery_old_statediscovery_pausedadvertising_old_stateadvertising_pausedsuspend_notifiersuspend_state_nextscanning_pausedwake_reasonwake_addrwake_addr_typeconn_hashmesh_pendingmgmt_pendingreject_listaccept_listlink_keyslong_term_keysidentity_resolving_keysremote_oob_datale_accept_listle_resolv_listle_conn_paramspend_le_connspend_le_reportsblocked_keyslocal_codecshw_infofw_infoconn_flagsadv_tx_poweradv_dataadv_data_lenscan_rsp_datascan_rsp_data_lenper_adv_dataper_adv_data_lenadv_instancesadv_instance_cntcur_adv_instanceadv_instance_timeoutadv_instance_expireadv_monitors_idradv_monitors_cntirkrpa_timeoutrpa_expiredrpamesh_send_doneinterleave_scan_stateinterleave_scanmonitored_devicesadvmon_pend_notifyhw_errorset_diagset_bdaddrcmd_timeoutset_quality_reportget_data_path_idget_codec_config_dataamp_assocrem_lenlen_so_farhci_conn_hashacl_numamp_numsco_numiso_numle_numle_num_peripheralhci_dev_statserr_rxerr_txcmd_txevt_rxacl_txacl_rxsco_txsco_rxbyte_rxbyte_txhci_conn_flags_tbt_codecdata_pathnum_capsHCI_QUIRK_RESET_ON_CLOSEHCI_QUIRK_RAW_DEVICEHCI_QUIRK_FIXUP_BUFFER_SIZEHCI_QUIRK_FIXUP_INQUIRY_MODEHCI_QUIRK_BROKEN_LOCAL_COMMANDSHCI_QUIRK_BROKEN_STORED_LINK_KEYHCI_QUIRK_EXTERNAL_CONFIGHCI_QUIRK_INVALID_BDADDRHCI_QUIRK_USE_BDADDR_PROPERTYHCI_QUIRK_STRICT_DUPLICATE_FILTERHCI_QUIRK_SIMULTANEOUS_DISCOVERYHCI_QUIRK_NON_PERSISTENT_DIAGHCI_QUIRK_NON_PERSISTENT_SETUPHCI_QUIRK_WIDEBAND_SPEECH_SUPPORTEDHCI_QUIRK_VALID_LE_STATESHCI_QUIRK_BROKEN_ERR_DATA_REPORTINGHCI_QUIRK_NO_SUSPEND_NOTIFIERHCI_QUIRK_BROKEN_READ_TRANSMIT_POWERHCI_QUIRK_BROKEN_FILTER_CLEAR_ALLHCI_QUIRK_BROKEN_ENHANCED_SETUP_SYNC_CONNHCI_QUIRK_BROKEN_EXT_SCANHCI_QUIRK_BROKEN_MWS_TRANSPORT_CONFIGHCI_QUIRK_BROKEN_LOCAL_EXT_FEATURES_PAGE_2HCI_QUIRK_BROKEN_SET_RPA_TIMEOUThci_rp_read_bd_addrhci_command_hdrhci_rp_read_local_versionbcm_set_pcm_int_paramsroutingbcm_fw_namebtbcm_read_pcm_int_paramsbtbcm_set_bdaddrbtbcm_check_bdaddrbtbcm_write_pcm_int_paramsbtbcm_patchramfw_load_doneuse_autobaud_modebtbcm_initializebtbcm_read_usb_productbtbcm_finalizebtbcm_setup_patchrambtbcm_setup_apple@ L` V0C>  @@H@@@@@@%@@/@B\*@Hj#r2U@@#@0H#Q@x#2LV0\@@80#^C`2`50h4@(# Lo$`0C`@@gd@]j$(j 78%pzztD0 *H 01 0  `He0  *H 1o0k0F0.1,0*U #Build time autogenerated kernel key2b>!فWch0  `He0  *H t ]I|v&w869Cן@ ˑ!̅G2! &g"pHʠՀpbB ͻ`&o6]dq9ɀ2b1=o9-oE1x WZf:'D{ qaMag䮵#˯_ n